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