CVE-2026-22770CVE-2026-22770是ImageMagick软件中的一个内存安全漏洞,存在于BilateralBlurImage图像处理方法中。该漏洞源于AcquireBilateralTLS函数在分配双精度缓冲区数组时,未对数组的最后一个元素进行正确初始化。当内存分配失败时,会导致在DestroyBilateralTLS函数中释放无效指针,从而引发释放后使用(Use-After-Free)漏洞。攻击者可以通过构造特制的图像文件,触发BilateralBlurImage函数的内存分配失败路径,进而在内存释放后继续访问已释放的内存区域,可能导致程序崩溃或执行任意代码。ImageMagick是一款广泛使用的开源图像处理软件,常被Web服务、图像处理工具和内容管理系统所集成,因此该漏洞对依赖ImageMagick进行图像处理的应用构成中等严重程度的安全风险。CVSS 3.1评分6.5(中等),主要影响系统的可用性和机密性。
该漏洞的核心问题在于ImageMagick的BilateralBlurImage函数中内存管理逻辑存在缺陷。具体来说,AcquireBilateralTLS函数负责为双精度缓冲区集合分配内存,但在版本7.1.2-13之前,分配的缓冲区数组的最后一个元素未被正确初始化。当某些内存分配操作失败时,特别是数组中间位置的分配失败,DestroyBilateralTLS函数会尝试清理已分配的缓冲区,但由于最后一个元素是无效指针,会导致释放无效内存地址。这种情况属于典型的释放后使用(Use-After-Free)漏洞。攻击者可以通过上传包含特定构造的图像文件,诱导ImageMagick处理时触发BilateraBlurImage滤镜,并利用内存分配失败的边界条件来触发该漏洞。成功的利用可能导致进程崩溃(拒绝服务)或在特定条件下实现代码执行。由于该漏洞位于核心图像处理组件中,任何使用ImageMagick处理用户上传图像的应用都可能受到影响。