mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
3.2 KiB
3.2 KiB
WWW2Exec - sips ICC Profile Out-of-Bounds Write (CVE-2024-44236)
{{#include ../../banners/hacktricks-training.md}}
概要
Apple macOS Scriptable Image Processing System (sips
) ICCプロファイルパーサーにおけるバッファ外書き込みの脆弱性(macOS 15.0.1, sips-307)。これは、lutAToBType
(mAB
) および lutBToAType
(mBA
) タグの offsetToCLUT
フィールドの不適切な検証によるものです。細工されたICCファイルは、ヒープバッファの16バイト先までのゼロ書き込みを引き起こし、ヒープメタデータや関数ポインタを破損させ、任意のコード実行を可能にします(CVE-2024-44236)。
脆弱なコード
脆弱な関数は、攻撃者が制御するオフセットから始まる16バイトを読み取り、ゼロにしますが、割り当てられたバッファ内に収まることを確認していません:
// Pseudocode from sub_1000194D0 in sips-307 (macOS 15.0.1)
for (i = offsetToCLUT; i < offsetToCLUT + 16; i++) {
if (i > numberOfInputChannels && buffer[i] != 0)
buffer[i] = 0;
}
のみ offsetToCLUT <= totalDataLength
のチェックが行われます。 offsetToCLUT == tagDataSize
を設定することで、ループは buffer
の終わりから16バイト先までインデックスされ、隣接するヒープメタデータが破損します。
攻撃手順
- 悪意のある
.icc
プロファイルを作成:
- 署名
acsp
を持つICCヘッダー(128バイト)を構築し、単一のlutAToBType
またはlutBToAType
タグエントリを追加します。 - タグテーブルで、
offsetToCLUT
をタグのsize
(tagDataSize
)に設定します。 - タグデータブロックの直後に攻撃者が制御するデータを配置して、ヒープメタデータを上書きします。
- 解析をトリガー:
sips --verifyColor malicious.icc
- ヒープメタデータの破損: OOBゼロ書き込みがアロケータメタデータまたは隣接ポインタを上書きし、攻撃者が制御フローをハイジャックし、
sips
プロセスのコンテキストで任意のコード実行を達成できるようにします。
影響
成功した攻撃は、脆弱な sips
ユーティリティを実行しているmacOSシステム上でユーザープリビレッジでのリモート任意コード実行を引き起こします。
検出
- 一般的なプロトコル(FTP、HTTP/S、IMAP、SMB、NFS、SMTP)でのファイル転送を監視します。
- 署名
acsp
を持つ転送されたファイルを検査します。 - 各
mAB
またはmBA
タグについて、Offset to CLUT
フィールドがTag data size
に等しいか確認します。 - この条件が満たされる場合は、疑わしいとしてフラグを立てます。
参考文献
- ZDIブログ: CVE-2024-44236: Apple macOS sipsユーティリティのリモートコード実行脆弱性 https://www.thezdi.com/blog/2025/5/7/cve-2024-44236-remote-code-execution-vulnerability-in-apple-macos
- Apple 2024年10月セキュリティアップデート(CVE-2024-44236のパッチ) https://support.apple.com/en-us/121564
{{#include /banners/hacktricks-training.md}}