...
Рекомендации для разработчиков
- При сборке ПО не использовать параметр компиляции -z execstack. Этот параметр, передаваемый компоновщику. означает, что инструкции, расположенные в стеке, могут быть выполнены.
- Ошибка "cannot enable executable stack as shared object requires: Permission denied" возникает при попытке установки флага разрешения исполнения на область памяти, т.е. при попытке исполнения системного вызова mprotect(). Для предотвращения возникновения ошибки
...
- При сборке ПО не использовать параметр компиляции -z execstack. Этот параметр, передаваемый компоновщику. означает, что инструкции, расположенные в стеке, могут быть выполнены.
- следует исключить такие вызовы. Для выявления попыток установки флага исполнения (выявления обращений к системному вызову mprotect()) использовать инструмент strace.