CVE-2024-0244 – Canon MF753Cdw 打印机中的堆缓冲区溢出漏洞
本文详细阐述了 CVE-2024-0244 漏洞的发现与利用过程,该漏洞存在于佳能 MF753Cdw 打印机中。研究人员凭借此前对佳能打印机的研究经验,调查了较为隐蔽的服务。他们聚焦于传真驱动,发现其会向打印机发送 SOAP 消息。这些消息中包含一个格式错误的二进制载荷,具体为一个较大的目标传真号码,从而触发了基于堆的缓冲区溢出。该溢出导致任意 free() 漏洞,即向 free() 函数传递了一个受控指针。利用此漏洞需要一个多步骤过程,涉及佳能专有的 BJNP 协议。首先,利用 BJNP 在已知地址处放置伪造的堆块;随后,将 shellcode 上传至另一个已知的 BJNP 地址。触发任意 free() 后,一个伪造的 BJNP 块被置于自由链表上。紧接着的一次堆分配重新使用了该块。最后,通过另一次 BJNP 会话,将该重新使用的块进行覆盖,从而将函数指针重定向至已上传的 shellcode。这实现了任意代码执行,通过在打印机屏幕上显示 DOOM 游戏予以演示。文章结尾指出佳能打印机安全性正在不断演进,并预期未来将对 Pwn2Own Ireland 2026 展开进一步研究。