谷歌安全研究人员披露了一个标记为 CVE-2024-49415 的严重漏洞,该漏洞去年影响了三星智能手机,并向三星报告了 90 天的修补期限。
此零点击远程代码执行 (RCE) 缺陷源自库中的越界 (OOB) 写入,特别是在 Monkey's Audio (APE) 文件的解码器中。libsaped.so
该漏洞影响运行 Android 12、13 和 14 的三星设备,包括 Galaxy S24 和 S23 型号。
问题在于库的功能。Monkey's Audio 是一种无损音频数据压缩算法,支持各种媒体播放器。saped_reclibsaped.so
根据调查,该漏洞是由于未正确处理 APE 文件的 Header Block 中的字段而发生的,从而允许分配的缓冲区溢出。
Samsung 的媒体服务 samsung.software.media.c2 分配一个固定大小的缓冲区 (dmabuf),其容量为 During media streaming。0x120000
但是,在解码 APE 文件时,缓冲区会在没有适当验证的情况下复制某些字段(例如 )。如果每个样本的字节数设置为 24,则最多允许复制 — 超出缓冲区的容量并导致内存损坏。blocksperframe3 * blocksperframe
在启用富通信服务 (RCS) 的情况下,该漏洞可被利用,RCS 是受影响设备的默认配置。
攻击者可以制作嵌入在 RCS 语音消息中的恶意 APE 文件。收到消息后,转录服务会自动解码音频,无需用户交互即可触发漏洞 - 这是零点击漏洞利用的特征。
APE 文件格式使用 Descriptor Block 和 Header Block 中定义的结构,其中包含用于音频压缩的元数据。该漏洞专门利用此结构中对块大小参数的不当处理。APE 格式的以下字段被标识为相关字段:
typedef struct APEContext { uint32_t blocksperframe; uint16_t bps; // Bytes per sample /* Other fields omitted for brevity */ } APEContext;
虽然解码器限制为最大值,但由 24 字节/样本设置导致的损坏计算 () 会绕过此限制,从而使攻击者能够触发 OOB 写入。blocksperframe0x1200003 * blocksperframe
该漏洞凸显了与自动处理媒体的现代智能手机功能相关的风险,尤其是在消息应用程序等服务中。三星预计将在其即将推出的安全维护版本 (SMR-2024) 中解决此问题。