Mongoose TLS AES-128-GCM 认证标签未验证漏洞总结 漏洞概述 在 Mongoose 内置的 TLS 实现中,使用 AES-128-GCM 加密时,解密函数 完全忽略了 GCM 认证标签(Authentication Tag)的验证。这导致攻击者可以篡改传输中的密文(例如通过位翻转攻击),而 Mongoose 仍会将其视为合法数据。这彻底破坏了 TLS 连接中 AES-128-GCM 模式提供的机密性和完整性保证。 影响范围 厂商: Cesanta 产品: Mongoose Embedded Web Server / Networking Library 受影响版本: 7.20 及所有更早版本 组件: 中的 函数 修复方案 该漏洞源于函数签名设计缺陷,无法接收认证标签(Tag)和关联数据(AAD)。修复需要: 1. 修改 函数签名,增加 和 参数。 2. 在函数内部调用底层 GCM 库的解密函数时,正确传入标签和关联数据。 3. 检查解密函数的返回值,确保认证通过。 4. 更新调用方(如 ),在调用解密函数时传递剥离出的认证标签。 POC 代码 以下是页面中提供的概念验证(PoC)代码,展示了如何篡改密文并成功解密: