Используя аргумент библиотеки от внешне управляемого пути
Этот дефект происходит, когда библиотеки загружаются от фиксированных или внешне управляемых путей, и непреднамеренные агенты могут управлять одним или несколькими местоположениями на путях.
Если атакующий знает или управляет путем, который вы используете, чтобы загрузить библиотеку, атакующий может измениться:
Библиотека, что загрузки программы, заменяя намеченную библиотеку и команды.
Среда, в которой библиотека выполняется, давая непреднамеренные полномочия и возможности атакующему.
Когда возможно, используйте трудно закодированные или полностью определенные пути, чтобы загрузить библиотеки. Возможно, что трудно закодированные пути не работают над другими системами. Используйте централизованное местоположение в трудно закодированных путях, так, чтобы можно было легко изменить путь в рамках исходного кода.
Другое решение состоит в том, чтобы использовать функции, которые требуют явных путей. Например, system()
не требует полного пути, потому что он может использовать PATH
переменная окружения. Однако execl()
и execv()
действительно потребуйте полного пути.
Группа: испорченные данные |
Язык: C | C++ |
Значение по умолчанию: 'off' |
Синтаксис командной строки: TAINTED_PATH_LIB |
Удар: носитель |
ID CWE: 114, 426 |
Command executed from externally controlled path
| Execution of externally controlled command
| Find defects (-checkers)
| Use of externally controlled environment variable