54 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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バイトを読み取り、ゼロにしますが、割り当てられたバッファ内に収まることを確認していません:
```c
// 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バイト先までインデックスされ、隣接するヒープメタデータが破損します。
## 攻撃手順
1. **悪意のある `.icc` プロファイルを作成:**
- 署名 `acsp` を持つICCヘッダー128バイトを構築し、単一の `lutAToBType` または `lutBToAType` タグエントリを追加します。
- タグテーブルで、 `offsetToCLUT` をタグの `size``tagDataSize`)に設定します。
- タグデータブロックの直後に攻撃者が制御するデータを配置して、ヒープメタデータを上書きします。
2. **解析をトリガー:**
```bash
sips --verifyColor malicious.icc
```
3. **ヒープメタデータの破損:** 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}}