Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 564

JIT-распыление

Что такое JIT-распыление?

JIT-распылениеЭксплуатационная техника, использующая JIT-компиляторы для размещения выбранных атакующим исполняемых байтов внутри легально сгенерированных исполняемых страниц памяти.


JIT-распыление — техника эксплуатации повреждений памяти против сред выполнения с JIT-компиляцией: движков JavaScript (V8, SpiderMonkey, JSC), .NET CLR, JVM, ActionScript или eBPF. Атакующий пишет высокоуровневый код так, чтобы его JIT-вывод при чтении как сырых байтов декодировался в нужные нативные инструкции, в результате полезная нагрузка оказывается внутри RWX-страниц JIT'а. В сочетании с уязвимостью, перехватывающей поток управления, атакующий переходит к распылённым гаджетам, обходя защиту от выполнения данных, поскольку память легально помечена исполняемой. Современные меры включают constant blinding, случайные регионы кода, W^X-разделение, ASLR и CFI.

Примеры

  1. 01

    Распыление множества JavaScript-умножений, чьи константы кодируют shellcode.

  2. 02

    Использование ActionScript JIT для размещения NOP sled и shellcode в JIT-области Flash Player.

Частые вопросы

Что такое JIT-распыление?

Эксплуатационная техника, использующая JIT-компиляторы для размещения выбранных атакующим исполняемых байтов внутри легально сгенерированных исполняемых страниц памяти. Относится к категории Безопасность приложений в кибербезопасности.

Что означает JIT-распыление?

Эксплуатационная техника, использующая JIT-компиляторы для размещения выбранных атакующим исполняемых байтов внутри легально сгенерированных исполняемых страниц памяти.

Как работает JIT-распыление?

JIT-распыление — техника эксплуатации повреждений памяти против сред выполнения с JIT-компиляцией: движков JavaScript (V8, SpiderMonkey, JSC), .NET CLR, JVM, ActionScript или eBPF. Атакующий пишет высокоуровневый код так, чтобы его JIT-вывод при чтении как сырых байтов декодировался в нужные нативные инструкции, в результате полезная нагрузка оказывается внутри RWX-страниц JIT'а. В сочетании с уязвимостью, перехватывающей поток управления, атакующий переходит к распылённым гаджетам, обходя защиту от выполнения данных, поскольку память легально помечена исполняемой. Современные меры включают constant blinding, случайные регионы кода, W^X-разделение, ASLR и CFI.

Как защититься от JIT-распыление?

Защита от JIT-распыление обычно сочетает технические меры и операционные практики, как описано в определении выше.

Какие есть другие названия JIT-распыление?

Распространённые альтернативные названия: JIT Spray.

Связанные термины