mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
2.4 KiB
2.4 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
配置文件:
- 构建 ICC 头(128 字节),签名为
acsp
,并包含一个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}}