Описание проблемы
В Astra Linux реализован механизм для повышения безопасности, включающий в том числе запрета запрет на исполнение кода в стеке.В связи с этим возможно нарушение работы прикладного программного обеспечения, если такое программное обеспечение использует небезопасные конструкции. При этом сообщение об ошибке содержит следующую фразу:
| Блок кода |
|---|
cannot enable executable stack as shared object requires: Permission denied |
Начиная с оперативного обновления 1.7.6 (БЮЛЛЕТЕНЬ № 2024-0830SE17) указанный механизм включен по умолчанию.
Устранение проблемы
В случае возникновения нарушения работы установленного прикладного программного обеспечения, необходимо снять запрет исполнения кода в области памяти, выделяемой для стека.
| Предупреждение | ||
|---|---|---|
| ||
Описанные ниже действия следует выполнять только в случае некорректной работы легитимного прикладного программного обеспечения в информационной системе. Не рекомендуется применять указанные настройки в качестве типового решения (настроек по умолчанию). |
Чтобы снять запрет установки флага исполнения на область памяти, выделяемой для стека в пользовательском пространстве, необходимо:
- добавить параметр ядра
parsec.execstack=1в строку значений параметра GRUB_CMDLINE_LINUX_DEFAULT конфигурационного файла/etc/default/grub. Пример результирующей строки:Блок кода language bash GRUB_CMDLINE_LINUX_DEFAULT="parsec.mac=0 quiet net.ifnames=0 parsec.execstack=1"
- обновить конфигурацию загрузчика:
Command sudo update-grub - перезагрузить компьютер.