Orc コンパイラの脆弱性 CVE-2024-40897:任意のコード実行が生じる恐れ

CVE-2024-40897: Vulnerability in Orc Compiler Opens Door to Code Execution Attacks

2024/07/26 SecurityOnline — Orc Compiler は単純なデータ配列プログラムのためのツールであるが、このコンパイラーに重大な脆弱性 CVE-2024-40897 が存在することが、セキュリティ研究者たちにより公表された。この脆弱性はスタック・ベースのバッファ・オーバーフロー・エラーに起因しており、悪用に成功した攻撃者は、コンパイラと同じ権限で任意のコード実行を可能にする。


Orc Compiler (orcc) を使用している開発者や CI 環境にとって、この脆弱性は懸念されるべきものである。脅威アクターは、コンパイル時にバッファ・オーバーフローを引き起こし、コード実行につながる悪意の Orc ソースファイルを作成することで、この脆弱性を悪用できる。それにより、開発環境や CI パイプラインの完全性とセキュリティが損なわれ、機密データの流出や、さらなる攻撃が生じる可能性がある。

この欠陥により、liborc ランタイム・ライブラリのユーザーが、ダイレクトな影響を被ることはないが、下流への影響の可能性は大きい。危殆化した開発環境は、エンドユーザーに配布される悪意のバイナリの作成につながる。

すでに Orc プロジェクトのメンテナは、この脆弱性に対処したバージョン 0.4.39 をリリースしている。Orc を使用している開発者や組織に強く推奨されるのは、このバージョンへと直ちにアップデートすることだ。また、古いブランチを使用している場合には、利用可能なパッチを適用し、コードベースを再コンパイルする必要がある。

バージョン 0.4.39 のハイライト
  • セキュリティ: 特定の入力ファイルを持つ orcc において、コード実行の可能性につながるバッファ・オーバーフローを示すエラー・メッセージを修正した (CVE-2024-40897)。これは、orcc を使っている開発者と CI 環境にのみ影響し、 liborc のユーザには影響しない。
  • div255w:実装における、Off-by-one エラーを修正した。
  • x86:xgetbv が利用可能な場合にのみ、AVX 検出を実行するようにした。また、Intel が推奨するチェックを実装することで AVX 検出を修正した。
  • macOS 上で実行する場合、Apple arm64 上での JIT コンパイルのみを有効にし、iOS 上でのクラッシュを修正した。
  • ロギングが有効になっている場合において、エミュレーション・モードでのクラッシュの問題が修正された。
  • 未定義の TARGET_OS_OSX を正しく処理するように修正した。
  • orconce:STDC_NO_ATOMICS__ の使い方と、GCC __sync ベースの実装の typo が修正された。
  • MSVC 17.10 + C11でのビルドが修正された。
  • Windows で stack unwinding をサポートした。
  • 主要なオペコードと命令セット・コードのクリーンアップとリファクタリング。
  • コード領域の割り当てとチャンクの初期化のリファクタリング。
  • JIT サポートが利用できない場合に (SELinux サンドボックスや noexec マウントなど)、Linux 上でエミュレーションにフォールバックする。