CVE-2026-42589Gotenberg是一个基于Docker的无状态PDF API。在8.31.0版本之前,其`/forms/pdfengines/metadata/write`端点存在严重的远程代码执行漏洞。由于未对JSON键中的字符进行验证,攻击者可以通过在JSON键中嵌入换行符(\n)向ExifTool注入任意标志,从而在无需认证的情况下执行任意操作系统命令。该漏洞攻击隐蔽,响应为HTTP 200。
该漏洞的根本原因在于Gotenberg在处理PDF元数据写入请求时,直接将用户提供的JSON对象传递给底层的`go-exiftool`库,进而调用ExifTool工具,且未对JSON键中的特殊字符进行过滤或转义。ExifTool通过stdin流接收参数,攻击者利用JSON键中的换行符(`\n`)可以分割输入流,将原本被视为数据的内容伪装成ExifTool的命令行参数。特别是`-if`参数,它允许执行任意的Perl表达式。攻击者构造特定的恶意JSON请求,在键中包含`\n-if`及恶意的Perl系统命令,即可诱骗ExifTool执行该命令。由于攻击无需用户交互和身份认证,且服务器端会返回HTTP 200状态码及有效的PDF文件,使得这种攻击行为极其隐蔽,难以被常规的Web监控手段检测。