CVE-2026-37531AGL app-framework-main 17.1.12及之前版本存在严重安全漏洞。该漏洞源于widget安装流程中的Zip Slip路径遍历(CWE-22)与TOCTOU竞争条件(CWE-367)。`is_valid_filename`函数未能正确过滤包含点符号的相对路径,导致`zread`函数可利用`openat`在文件系统任意位置写入文件。由于文件解压发生在签名验证之前,即便验证失败,恶意文件也能在系统目录中持久存在,导致系统被完全控制。
该漏洞核心在于`wgtpkg-zip.c`和`wgtpkg-install.c`的实现缺陷。首先,`is_valid_filename`仅检查绝对路径,忽略了`../`等相对路径遍历字符。其次,`zread`使用`openat`系统调用,该调用会根据文件描述符和路径解析最终位置,从而允许突破工作目录限制。最关键的缺陷是逻辑顺序错误(TOCTOU):在`install_widget`函数中,文件提取先于签名验证执行。攻击者可构造包含恶意载荷的ZIP包(如`../../tmp/pwn.sh`),利用路径遍历将其写入系统关键目录。即使后续签名校验失败触发`remove_workdir`清理,也仅清除临时目录,留下的恶意文件使攻击者可远程执行代码,窃取数据或破坏系统完整性。