Операция может привести к уязвимостям безопасности или сбою системы
Этот дефект возникает, если не проверить, ссылается ли параметр имени файла на файл устройства, прежде чем передать его следующим функциям:
fopen()
fopen_s()
freopen()
remove()
rename()
CreateFile()
CreateFileA()
CreateFileW()
_wfopen()
_wfopen_s()
Файлы устройств - это файлы в файловой системе, которые обеспечивают интерфейс с драйверами устройств. Эти файлы можно использовать для взаимодействия с устройствами.
Неподходящая операция ввода-вывода в файлах устройств не приводит к возникновению дефекта в следующих случаях:
Вы используете stat или lstat-family для проверки параметра имени файла перед вызовом ранее перечисленных функций.
Функция сравнения строк используется для сравнения имени файла со списком имен файлов устройств.
Операции, подходящие только для обычных файлов, но выполняемые с файлами устройств, могут привести к атакам типа «отказ в обслуживании», другим уязвимостям безопасности или сбоям системы.
Перед выполнением операции ввода-вывода для файла:
Использовать stat(), lstat()или эквивалентная функция для проверки того, ссылается ли параметр имени файла на обычный файл.
Используйте функцию сравнения строк для сравнения имени файла со списком имен файлов устройств.
| Группа: Безопасность |
| Язык: C | C++ |
| По умолчанию: Откл. |
Синтаксис командной строки:
INAPPROPRIATE_IO_ON_DEVICE |
| Воздействие: среднее |
| ИДЕНТИФИКАТОР 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