CVE-2026-29051melange是一个用于构建APK包的工具。在0.32.0至0.43.4之前的版本中,当使用`--persist-lint-results`选项时,程序未对APK的.PKGINFO文件中的`arch`和`pkgname`进行路径遍历校验。攻击者若能提供恶意APK,可诱导系统将lint结果写入任意JSON路径,从而覆盖其他JSON文件。该漏洞默认不启用,升级至v0.43.4可修复。
该漏洞存在于melange的lint功能中。当使用`--persist-lint-results`标志时,melange会解析目标APK内的`.PKGINFO`控制文件,提取其中的架构(`arch`)和包名(`pkgname`)字段,并将它们与`--out-dir`参数指定的目录进行字符串拼接,以生成最终的lint报告文件路径。受影响版本未对提取的`arch`和`pkgname`字段进行清洗,允许包含路径分隔符(如`/`)和父目录引用符(`..`)。因此,攻击者可以通过精心构造APK中的`.PKGINFO`文件,将`pkgname`设置为包含遍历序列的字符串(例如`../../tmp/pwned`)。当melange处理该APK时,由于缺乏验证,它会将生成的JSON报告写入文件系统中预期的输出目录之外的任意位置(尽管文件扩展名被限制为.json)。虽然这不能直接导致代码执行,但攻击者可以利用此行为覆盖系统上关键的JSON配置文件或数据文件,破坏系统完整性。