RSS Zero Day Initiative - ブログ フォロー CVE-2025-4919: Mozilla FirefoxのMath Spaceを介したデータ破損 マンフレッド・ポールは、Pwn2Own Berlin 2025で、FirefoxのIonMonkey JavaScript JITコンパイラの脆弱性(CVE-2025-4919、ZDI-25-291)を悪用しました。 この脆弱性は、線形式を簡略化するために使用されるExtractLinearSum関数内に存在していました。この関数は、Modulo数学空間を不正に処理し、境界チェックの問題を引き起こしました。 TryEliminateBoundsCheck関数は、ExtractLinearSumを使用して、境界チェックを結合しましたが、潜在的な整数オーバーフローを考慮していませんでした。この欠陥により、大きな型付き配列の境界チェックをバイパスすることができました。 この脆弱性を悪用するには、大きな型付き配列を作成し、インデックスを操作して、境界外の読み取りまたは書き込みをトリガーする必要がありました。 攻撃では、ビット演算を使用して、境界チェックの除去を誤導するためのラッピング加算を強制しました。 コンパイラの最適化が攻撃を妨げないように、BigIntを使用しました。 この脆弱性の根本的な原因は、ExtractLinearSum関数のさまざまな呼び出しサイトでの数学空間の不一致な処理にあります。 ExtractLinearSumをループ分析に使用するIonコンパイラの他の部分にも同様の脆弱性が存在する可能性があります。 Mozillaは、Firefox 138.0.4でこの脆弱性を修正しました。 この攻撃は、JITコンパイラでのチェックされていない整数演算の危険性を示しました。 CVE-2025-4919: Corruption via Math Space in Mozilla Firefox thezdi.com
ExtractLinearSum関数内に存在していました。この関数は、Modulo数学空間を不正に処理し、境界チェックの問題を引き起こしました。TryEliminateBoundsCheck関数は、ExtractLinearSumを使用して、境界チェックを結合しましたが、潜在的な整数オーバーフローを考慮していませんでした。この欠陥により、大きな型付き配列の境界チェックをバイパスすることができました。 この脆弱性を悪用するには、大きな型付き配列を作成し、インデックスを操作して、境界外の読み取りまたは書き込みをトリガーする必要がありました。 攻撃では、ビット演算を使用して、境界チェックの除去を誤導するためのラッピング加算を強制しました。 コンパイラの最適化が攻撃を妨げないように、BigIntを使用しました。 この脆弱性の根本的な原因は、ExtractLinearSum関数のさまざまな呼び出しサイトでの数学空間の不一致な処理にあります。ExtractLinearSumをループ分析に使用するIonコンパイラの他の部分にも同様の脆弱性が存在する可能性があります。 Mozillaは、Firefox 138.0.4でこの脆弱性を修正しました。 この攻撃は、JITコンパイラでのチェックされていない整数演算の危険性を示しました。