CVE-2026-34155RAUC是用于控制嵌入式Linux系统更新过程的工具。在1.15.2版本之前,当使用“plain”格式的RAUC包且有效载荷大小超过2 GiB时,会触发整数溢出漏洞。该漏洞导致签名仅覆盖有效载荷的前几个字节,而非整个文件。攻击者可以利用此漏洞,在拥有合法签名的情况下,修改未被签名覆盖的部分数据,从而破坏系统更新的完整性。该问题已在1.15.2版本中修复。
该漏洞的根源在于RAUC处理“plain”格式更新包时对文件大小的计算逻辑存在缺陷。当更新包的有效载荷超过2 GiB(2^31字节)时,用于存储或处理文件大小的变量发生整数溢出。这种溢出导致计算出的签名覆盖范围回绕,仅对文件的前几个字节进行签名校验,而非预期的整个有效载荷。在利用过程中,攻击者首先需要获取一个合法签名的RAUC更新包,或者利用目标系统的公钥对恶意包的头部进行签名。随后,攻击者可以修改更新包中未被签名覆盖的大部分数据区域。当RAUC验证该包时,由于只校验了头部的一小部分,验证过程会通过,从而将篡改后的内容安装到嵌入式系统中。这破坏了更新机制的完整性和信任模型。