天下漏洞,尽知其名
HIGH

CVE-2026-103242 RPM 堆缓冲区溢出漏洞

影响攻击者可利用恶意 RPM 包触发堆溢出,可能导致拒绝服务或代码执行

AI 研判

RPM 在处理不受信任的 RPM 包时存在堆缓冲区溢出漏洞。构造的未签名 RPM 包主头部中 RPMTAG_FILESIGNATURES 标签被声明为错误的头部类型,导致 hex2binv() 分配一字节缓冲区后写入攻击者控制长度的十六进制解码内容,造成越界写。

影响范围

RPM

受影响版本范围暂无公开信息,涉及使用 rpm2cpio、rpm2archive、rpm -qlvp 处理不可信 RPM 包的 RPM 版本。

漏洞详情

漏洞类型为堆缓冲区溢出(CWE-122)。成因是 RPM 头部解析时对 RPMTAG_FILESIGNATURES 标签的类型校验不足,hex2binv() 依据错误类型仅分配 1 字节缓冲区,却按攻击者指定长度写入解码数据。攻击者通过构造恶意 RPM 包,在用户使用 rpm2cpio、rpm2archive 或 rpm -qlvp 等命令处理该包时触发越界写。

利用条件与风险

利用前提是受害者使用受影响工具处理攻击者提供的恶意 RPM 包,无需签名验证即可触发。实战中可导致程序崩溃(拒绝服务),在特定条件下可能被利用实现代码执行。

修复建议

官方修复方案暂无公开信息,建议关注 RPM 官方安全公告并及时升级。临时缓解措施为不处理来源不可信的 RPM 包,或在隔离环境中使用相关命令。

原始情报

A heap-based buffer overflow flaw was found in rpm. RPMTAG_FILESIGNATURES in a crafted, unsigned RPM package’s main header is declared with the wrong header type, causing hex2binv() to allocate a one-byte buffer and then write the tag’s attacker-controlled, hex-decoded content — of attacker-chosen length — past the end of that allocation. This is reachable via rpm2cpio, rpm2archive, and rpm -qlvp on an untrusted package.