漏洞总结 漏洞概述 在 函数中存在整数下溢漏洞。攻击者可以通过提供负的 IPP 属性来触发此漏洞。由于边界检查仅限制了上限,负值被转换为巨大的无符号整数( ),并被用作 的长度参数。这导致在 33 字节的栈缓冲区上发生溢出,引发立即的段错误(SIGSEGV)。结合 systemd 的 机制,攻击者可利用此漏洞造成持续的拒绝服务(DoS)。 影响范围 受影响软件: cups 受影响版本: <= 2.4.16 攻击条件: 本地用户访问(Local user access),在默认配置下无需认证。 后果: 拒绝服务(DoS),导致 cupsd 进程崩溃并重启。 修复方案 建议在 赋值后添加下界检查,将负值钳制为 0。或者,更改 变量类型及 的转换,使用 和无符号比较来自然处理负值。 PoC 代码