Apple macOS の脆弱性 CVE-2024-44236 が FIX:カラー・マネジメントを介したメモリ破損の恐れ

Researchers Uncover Remote Code Execution Flaw in macOS – CVE-2024-44236

2025/05/09 gbhackers — Apple の macOS Scriptable Image Processing System (sips) に存在するメモリ破損の脆弱性 CVE-2024-44236 に関する詳細を、Trend Micro のセキュリティ研究者 Nikolai Skliarenko と Yazhi Wang が公開した。Trend Micro の Zero Day Initiative を通じて Hossein Lotfi が発見した、この脆弱性は、悪意を持って作成された ICC プロファイル・ファイルを介して、任意のコード実行を可能にするものだ。

2024年10月に修正された、この脆弱性が浮き乗りにするのは、Apple のエコシステム全体で広く使用されるカラー・マネジメント・ユーティリティにおけるシステム・リスクの存在である。

この脆弱性は、International Color Consortium (ICC) プロファイル・ファイル内の、lutAToBType タグと lutBToAType タグの不適切な検証に起因する。

デバイス間でのカラーの一貫性を確保するために使用される、これらの標準化されたデータ構造に含まれるものには、ヘッダー/タグテーブル/タグ付き要素データなどがある。

すべての macOS システムにプリ・インストールされている、sips コマンドライン・ツールを悪用する攻撃者は、不正な ICC プロファイルを送信することで、ヒープメモリへ向けた境界外 (OBB:out-of-bounds) 書き込みをトリガーできる。

Trend Micro の分析によると、sub_1000194D0() 関数が、lutA/B タグ内の Offset to CLUT フィールドを処理する方法に、この脆弱性は存在する。このオフセットが、タグ付き要素データの合計長に等しい場合、関数は割り当てられたバッファ境界を超えたメモリに、最大で 16 Byte を書き込む。

このメモリ破損により、隣接するメモリ構造が上書きされ、攻撃者が指定したコードが実行され、制御フローの乗っ取りにいたる可能性が生じる。

研究者たちは、「CLUT オフセット値の境界チェックが欠如しているため、容易なパスでメモリ操作が生じる。したがって、不正な ICC プロファイルが1つ存在するだけで、画像プレビューや自動処理サービスなどの、一般的なワークフローを通じたシステム侵害の可能性が生じる」と述べている。

CLUT (Color Lookup Table Offsets) オフセットの悪用

この ICC プロファイルは、入力カラー・チャネルを出力値にマッピングするために、CLUT (Color Lookup Table Offsets) を使用する。この脆弱性は、CLUT 検証中の以下のシーケンスで発生する。

  1. タグ解析:sips ツールは、lutA/B タグヘッダーから CLUT_offset 値を抽出する。
  2. 境界チェックの失敗:関数は CLUT_offset をビッグ・エンディアン形式から変換するが、オフセットがバッファ・サイズを超えると検証に失敗する。
  3. OOBアクセス:_CLUT_offset がバッファ長 (Length) と等しい場合に、ポインタ CLUT_data_ptr は割り当てられた領域外のメモリを参照する。
  4. 強制 NULL 化:sub_1000194D0() のループは 16回繰り返され、input_channel が宣言された入力チャンネル数を超えると、CLUT_data_ptr[input_channel] のバイトを NULL 化する。
c// Vulnerable code snippet from sips-307  
CLUT_offset = bswap32(v11->CLUT_offset);  
if (_CLUT_offset > Length) goto LABEL_93;  
CLUT_data_ptr = &MutableBytePtr[_CLUT_offset];  // Points beyond buffer if _CLUT_offset == Length  
...  
if (input_channel >= number_of_input_channels) {  
    if (CLUT_data_ptr[input_channel]) {  
        CLUT_data_ptr[input_channel] = 0;  // OOB write  
    }  
}  

このコードにより、攻撃者は ICC プロファイル・バッファ外のメモリ書換えを達成し、関数ポインタやオブジェクト・メタデータを改変する可能性を手にする。したがって、悪意の CLUT のレンダリングなどの後続の操作により、挿入されたシェルコードの実行や、アプリケーション・クラッシュなどの可能性が生じる。

検出と緩和戦略

Trend Micro のレポートは、macOS 環境を監視する組織向けに、ネットワーク・ベースの検出手法の概要を説明している。疑わしい ICC プロファイルには、以下の特徴があるという:

  • ヘッダー署名:有効なプロファイルは、オフセット 0x24 に 4 Byte4 のシーケンス “\x61\x63\x73\x70” が含まれている必要がある。
  • CLUT オフセット検証:検出システムは、CLUT へのオフセットが lutA/B タグのタグ・データ・サイズと等しいファイルにフラグを立てる。
  • プロトコル監視:HTTP(S)/SMB/Mail Protocal (SMTP/POP3/IMAP) に加えて、ファイル共有サービス経由で転送された ICC プロファイルを検査する。

Apple は macOS 15.0.1 アップデートで、この脆弱性を修正している。ただし、パッチを適用していないシステムは、武器化された画像や文書を介したドライブ・バイ攻撃に対して、依然として脆弱な状態にある。

研究者たちは、「実環境でのエクスプロイトは確認されていないが、エクスプロイトの容易さから、直ちにパッチを適用する必要がある」と警告している。ユーザー企業は、以下の対策を講じるべきである:

  • 無効な CLUT オフセットを持つ ICC プロファイルをブロックする、ネットワーク侵入システムを導入する。
  • バッチ画像処理に sips を利用するワークフローを監査する。
  • 信頼できない画像ファイルを扱う macOS デバイスを、アップデートが適用されるまで隔離する。

今回の開示が浮き彫りにするのは、セキュリティが不十分な画像解析ツールのリスクである。それは、現代のオペレーティング・システムで、頻繁に発生する攻撃対象領域となる。

HDR や広色域ディスプレイの普及に伴い、カラー・マネジメントが複雑化するにつれて、グラフィック・サブシステムの厳格な検証による、メモリ破損エクスプロイトの阻止が不可欠となる。

macOS の脆弱性 CVE-2024-44236 の、技術的詳細が公開されました。この脆弱性は、すでに 2024年10月に修正済とのことです。ユーザーの皆さんは、いま一度、アップデートをご確認ください。なお、macOS の直近の脆弱性は、2025/04/01 の「Apple の深刻な3つの脆弱性:iOS 16.7.11/iPadOS 16.7.11/macOS 14.7.5 などにパッチ・バックポート」となります。よろしければ、macOS で検索と併せて、ご参照ください。