arXiv論文メモ
新着一覧
cs.CR · 査読状況未確認

JavaScriptエンジンの内部状態を使って不具合を探す

State-Aware Fuzzing of JavaScript Engines with LLM-Guided Instrumentation

Wai Kin Wong, Dongwei Xiao, Anthony Cheuk Tung Lai, Ping Fan Ke, Shuai Wang

この論文をやさしく読む

ひとことで言うと

同じコード経路を通っていても、JavaScriptエンジン内部の状態が違えば別の不具合が起こり得ます。その違いを観測する場所をLLMに選ばせ、テスト入力の探索に使う方法です。

何に役立つ?

JSエンジンの品質検証で、経路の網羅率が伸びなくなった後も新たな振る舞いを探索する用途が考えられます。要旨では既存ファザーとの比較と、新たな68件の不具合の発見を報告しています。

この研究の面白いところ

LLMにテスト入力を作らせるだけではなく、何を観測すると探索の手掛かりになるかを選ばせています。全状態を記録する負荷を避けながら、制御フローでは区別できない状態差を捉えます。

どこまで分かった?

68件は要旨で報告される不具合数で、すべてが悪用可能な脆弱性であるとは記載されていません。対象エンジンの内訳、比較の具体的な倍率、計測負荷、修正状況は要旨にはありません。

v1のアブストラクトに基づくAI解説。日本語訳とは別に、用途の解釈を含みます。

アブストラクトの日本語訳

現代のウェブの安全性はJavaScript(JS)エンジンの正しさに依存するが、この複雑なシステムには依然として重大な影響を及ぼす不具合が存在する。最先端のファザーの重要な限界は、カバレッジの頭打ちである。ファザーが制御フローグラフを十分に探索すると、辺のカバレッジは発見を導く力を失う。JIT最適化の階層や隠れクラスの遷移など、複雑なエンジンの振る舞いは、しばしば同じ辺カバレッジを共有する。そのため標準的なカバレッジ指標では、深い不具合の発生に必要な内部状態の違いを識別できない。 この不足を補うため、大規模言語モデル(LLM)を利用して深部の内部状態の発見を自動化する枠組みStateLensを提案する。状態空間の広さと実行時の高い負荷のため、すべての状態に無差別に計測プローブを置くことは現実的でない。StateLensは、セキュリティ研究者の直観を模倣する、新しいエージェント型の推論パイプラインを導入する。エージェントはコードと開発者コメントを繰り返し調べ、有用性の高い計測対象を選び、ロジックの動作を左右する状態変数を無関係なデータから区別する。これにより、エンジンの隠れた構成を捉える、合成可能で有用な情報を多く含むフィードバック用プローブが得られる。 この計測結果を二重のフィードバック機構へ渡すことで、ファザーを未探索のエンジンの意味的な振る舞いへ効果的に導く。評価では、StateLensが最先端のファザーを大幅に上回り、新たな不具合を68件発見したことを確認した。

v1の要旨から自動生成。本文の精読・人による確認は未実施。

初稿
2026-09-21(UTC)
最新改訂
2026-09-21 · v1
査読・掲載
査読状況未確認
arXivで読むPDFDOI

更新履歴

取得できた版を表示。版の更新は査読済みを意味しません。過去版の本文差分は未解析です。

原文の要旨

The security of the modern web depends on the correctness of JavaScript (JS) engines, yet these complex systems remain vulnerable to high-impact bugs. A critical limitation of state-of-the-art fuzzers is the coverage plateau: once a fuzzer saturates the control-flow graph, edge coverage loses its ability to guide discovery. Because complex engine behaviors, such as JIT optimization tiers and hidden class transitions, often share identical edge coverage, standard coverage metrics are blind to the distinct internal states required to trigger deep errors. To bridge this gap, we present StateLens, a framework that employs Large Language Models (LLM) to automate the discovery of deep internal states. Blindly placing instrumentation probes at all states is infeasible due to the vast state space and the high runtime overhead. StateLens introduces a novel agent-based reasoning pipeline that emulates the intuition of a security researcher. By iteratively traversing code and developer comments, our agents intelligently select high-value instrumentation targets, effectively separating logic-driving state variables from irrelevant data. This results in synthesizable, high-signal feedback probes that map the engine's hidden configurations. This instrumentation feeds a dual-feedback mechanism, effectively guiding the fuzzer toward unexplored engine semantics. Our evaluation confirms that StateLens significantly outperforms state-of-the-art fuzzers and uncovering 68 new bugs.

著者のコメント

In ACM SIGOPS 32nd Symposium on Operating Systems Principles (SOSP'26)

arXiv ID: 2609.24550 / 要約の誤りについて