CVE-2026-42855该漏洞存在于arduino-esp32的WebServer摘要认证实现中。在3.3.8版本之前,系统在计算认证哈希时,直接使用了客户端Authorization头部中的URI字段,而未验证该字段是否与实际请求的URI匹配。攻击者若拥有针对某个受保护资源(URI-A)的有效摘要响应,即可将其重放用于访问完全不同的受保护资源(URI-B),从而绕过基于资源的访问控制限制。该漏洞的CVSS评分为7.5,属于高危漏洞,严重影响系统的机密性。
arduino-esp32的WebServer库在实现HTTP摘要认证(Digest Authentication)时存在逻辑缺陷。摘要认证的核心在于服务器和客户端共享一个秘密(密码),并基于请求方法、URI和随机数(nonce)计算哈希值。正常流程下,服务器应验证客户端请求的行URI与Authorization头部中用于计算哈希的URI是否一致。然而,受影响版本的代码仅依赖Authorization头部中的uri参数进行哈希校验,忽略了HTTP请求行中的实际路径。这意味着,一旦攻击者获取了针对路径/admin/login的有效认证哈希,他们可以通过构造新的HTTP请求,将请求行改为/admin/config,但保留之前针对/admin/login生成的Authorization头部。由于服务器错误地使用了Authorization头部中的旧URI来验证哈希,验证通过,导致攻击者成功认证并访问未授权的资源。这是一个典型的请求参数不一致导致的访问控制绕过漏洞。