CVE-2026-45352
CVE-2026-45352 影响 cpp-httplib(一个 C++11 单文件头跨平台 HTTP/HTTPS 库)0.43.4 之前的版本。漏洞存在于分块传输编码的解析过程中:函数 ChunkedDecoder::read_payload 使用 std::strtoul() 解析分块大小字段,而 strtoul 根据 C 标准会接受前导负号并执行无符号回绕。例如,strtoul("-2", …, 16) 返回 ULONG_MAX - 1 (0xFFFFFFFFFFFFFFFE)。该库仅在行 12833 处检查 ULONG_MAX(即 "-1" 的结果),但像 "-2" 这样的其他负值能够通过验证。导致 chunk_remaining 被赋值为一个接近最大值的无符号整数,进而控制服务器读取循环从网络消费的字节数。攻击者无需认证即可通过网络发送特制的分块编码请求,触发服务器无界的内存分配,最终导致进程崩溃(拒绝服务)。CVSS 评分 5.3,属于中等严重性。修复版本 0.43.4 已发布,建议所有受影响用户立即升级。临时缓解措施包括限制对受影响服务的网络访问或部署 Web 应用防火墙(WAF)过滤恶意分块编码请求。
💡 影响/原因: 该漏洞允许远程攻击者通过简单的 HTTP 请求造成拒绝服务,影响使用 cpp-httplib 构建的服务。由于无需认证且利用复杂度低,可能被广泛用于攻击。及时打补丁可防止服务中断。
排序因子: 有可用补丁/修复方案 (+3) | Primary 数据源 (+3) | LLM 评分加成 (+0.4)