CVE-2026-32148hexpm hex 包中的 Hex.RemoteConverger 模块存在数据真实性验证不足漏洞。由于依赖字符串名称与原子名称的类型不匹配,导致 mix.lock 文件中的校验和验证被跳过。攻击者若能影响缓存包或破坏注册表,可提供修改后的依赖内容,导致完整性校验绕过。
该漏洞的根本原因在于 Hex.RemoteConverger.verify_resolved/2 函数中的逻辑缺陷。Hex 旨在通过 mix.lock 文件存储依赖校验和以保障构建完整性,但该验证过程实际上从未被执行。具体而言,Hex.Utils.lock/1 返回的锁数据使用基于字符串的依赖名称,而验证逻辑却将它们与基于原子(Atom)的名称进行比较。这种类型不匹配导致验证代码路径被静默跳过。尽管在初始下载时校验和会被验证,但锁文件与已解析依赖项之间的不匹配无法被检测到。攻击者如果能够影响本地缓存(例如通过本地缓存投毒)或攻破注册表,就可以提供被修改的依赖内容,且不会触发警报。此时,mix.lock 文件会被静默重写,覆盖了篡改的证据。