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

JIT スプレー

JIT スプレー とは何ですか?

JIT スプレーJIT コンパイラを悪用し、合法に生成された実行可能メモリページの中に攻撃者が選んだ実行可能バイト列を埋め込むエクスプロイト技法。


JIT スプレーは、JIT(Just-In-Time)コンパイラを備えるランタイム(V8、SpiderMonkey、JSC などの JavaScript エンジン、.NET CLR、JVM、ActionScript、eBPF など)を標的とするメモリ破壊系の攻撃技法です。攻撃者は高水準コードを巧みに記述し、JIT が出力するバイト列をそのまま解釈すると目的のネイティブ命令となるように仕向け、JIT が生成した RWX ページ内にペイロードを忍び込ませます。制御フローを奪うメモリ破壊バグと組み合わせれば、スプレーされたガジェットへ飛び込み、DEP/NX を回避して任意コードを実行できます(メモリは正規に実行可能だからです)。緩和策には、定数ブラインディング、コード領域のランダム化、W^X 分離、ASLR、CFI などがあります。

  1. 01

    JavaScript の即値定数にシェルコードを埋め込んだ乗算を大量にスプレーする。

  2. 02

    ActionScript の JIT で Flash Player の JIT 領域に NOP スレッドとシェルコードを配置する。

よくある質問

JIT スプレー とは何ですか?

JIT コンパイラを悪用し、合法に生成された実行可能メモリページの中に攻撃者が選んだ実行可能バイト列を埋め込むエクスプロイト技法。 サイバーセキュリティの アプリケーションセキュリティ カテゴリに属します。

JIT スプレー とはどういう意味ですか?

JIT コンパイラを悪用し、合法に生成された実行可能メモリページの中に攻撃者が選んだ実行可能バイト列を埋め込むエクスプロイト技法。

JIT スプレー はどのように機能しますか?

JIT スプレーは、JIT(Just-In-Time)コンパイラを備えるランタイム(V8、SpiderMonkey、JSC などの JavaScript エンジン、.NET CLR、JVM、ActionScript、eBPF など)を標的とするメモリ破壊系の攻撃技法です。攻撃者は高水準コードを巧みに記述し、JIT が出力するバイト列をそのまま解釈すると目的のネイティブ命令となるように仕向け、JIT が生成した RWX ページ内にペイロードを忍び込ませます。制御フローを奪うメモリ破壊バグと組み合わせれば、スプレーされたガジェットへ飛び込み、DEP/NX を回避して任意コードを実行できます(メモリは正規に実行可能だからです)。緩和策には、定数ブラインディング、コード領域のランダム化、W^X 分離、ASLR、CFI などがあります。

JIT スプレー からどのように防御しますか?

JIT スプレー に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。

JIT スプレー の別名は何ですか?

一般的な別名: JIT スプレー攻撃。

関連用語