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 上でエミュレーションにフォールバックする。
Orc Compiler (orcc) は、このブログでは初登場となります。CI パイプラインへの影響が懸念されるとのことなので、ご利用のチームは、ご注意ください。GitHub には、「Orc は、データの配列を操作する、きわめて単純なプログラムをコンパイル/実行するためのライブラリとツールのセットである。この “言語” は、SIMD アーキテクチャで使用可能な、数多くの機能を表現する汎用アセンブリ言語であり、サチュレーテッド加算/減算および、多くの算術演算を取り込んでいる」と記されていました。
You must be logged in to post a comment.