Операция может привести к уязвимостям системы обеспечения безопасности или системному отказу
Несоответствующая операция I/O на файлах устройств происходит, когда вы не проверяете, относится ли параметр имени файла к файлу устройств, прежде чем вы передадите его этим функциям:
fopen()
fopen_s()
freopen()
remove()
rename()
CreateFile()
CreateFileA()
CreateFileW()
_wfopen()
_wfopen_s()
Файлы устройств являются файлами в файловой системе, которые обеспечивают интерфейс к драйверам устройств. Можно использовать эти файлы, чтобы взаимодействовать с устройствами.
Несоответствующая операция I/O на файлах устройств не повышает дефект когда:
Вы используете stat
или lstat
- функции семейства, чтобы проверять параметр имени файла прежде, чем вызвать ранее перечисленные функции.
Вы используете функцию сравнения строк, чтобы сравнить имя файла со списком имен файла устройств.
Операции, подходящие только для регулярных файлов, но выполняемые на файлах устройств, могут привести к атакам "отказ в обслуживании", другим уязвимостям системы обеспечения безопасности или системным отказам.
Прежде чем вы выполните операцию I/O на файле:
Используйте stat()
, lstat()
или эквивалентную функцию, чтобы проверять, относится ли параметр имени файла к регулярному файлу.
Используйте функцию сравнения строк, чтобы сравнить имя файла со списком имен файла устройств.
Группа: безопасность |
Язык: C | C++ |
Значение по умолчанию: 'off' |
Синтаксис командной строки:
INAPPROPRIATE_IO_ON_DEVICE |
Влияние: носитель |
ID CWE: 67 |
File access between time of check and use (TOCTOU)
| Find defects (-checkers)
| Opening previously opened resource
| Resource leak
| Returned value of a sensitive function not checked
| Vulnerable path manipulation