Используя аргумент библиотеки от внешне управляемого пути
Этот дефект происходит, когда библиотеки загружаются от фиксированных или внешне управляемых путей, и непреднамеренные агенты могут управлять одним или несколькими местоположениями на путях.
Если атакующий знает или управляет путем, который вы используете, чтобы загрузить библиотеку, атакующий может измениться:
Библиотека, что загрузки программы, заменяя намеченную библиотеку и команды.
Среда, в которой библиотека выполняется, давая непреднамеренные полномочия и возможности атакующему.
Когда возможно, используйте трудно закодированные или полностью определенные пути, чтобы загрузить библиотеки. Возможно, что трудно закодированные пути не работают над другими системами. Используйте централизованное местоположение в трудно закодированных путях, так, чтобы можно было легко изменить путь в рамках исходного кода.
Другое решение состоит в том, чтобы использовать функции, которые требуют явных путей. Например, 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