CVE-2026-39316OpenPrinting CUPS 2.4.16及更早版本存在释放后利用漏洞。当系统自动删除临时打印机时,调度程序未能正确清理引用该打印机的订阅,导致内存指针悬空。攻击者利用此漏洞可导致服务崩溃,在特定堆布局下可能实现代码执行。
该漏洞位于OpenPrinting CUPS的调度程序中。具体而言,`scheduler/printers.c`中的`cupsdDeleteTemporaryPrinters`函数在调用`cupsdDeletePrinter`释放打印机对象时,未预先使引用该打印机的订阅失效。这导致`cupsd_subscription_t.dest`结构体成员指向了已释放的堆内存。当后续代码尝试解引用该指针时,触发释放后重用。轻则导致cupsd守护进程崩溃造成拒绝服务;重则结合堆喷射技术控制内存内容,劫持程序执行流,实现本地任意代码执行。