CVE-2026-34531Flask-HTTPAuth 是一个为 Flask 路由提供基本、摘要和令牌 HTTP 身份认证的扩展库。在 4.8.1 版本之前存在一个安全漏洞,当客户端向受令牌保护的资源发起请求且未传递令牌或传递空令牌时,Flask-HTTPAuth 会将空字符串作为参数调用应用程序的令牌验证回调函数。如果应用程序数据库中存在将令牌设置为空字符串的用户,该请求可能会被错误地认证为这些用户之一,从而导致未授权访问。该问题已在 4.8.1 版本中修复。
该漏洞的根源在于 Flask-HTTPAuth 对空令牌的处理逻辑缺陷。在正常的令牌认证流程中,客户端应携带有效的令牌。然而,在受影响版本中,当请求头中未包含令牌或令牌值为空时,库并未直接拒绝请求,而是将空字符串("")传递给开发者定义的 verify_token 回调函数进行验证。利用该漏洞的前提是应用程序存在逻辑缺陷或数据异常,即数据库中存储了某个用户的令牌为空字符串。当攻击者发送不带令牌的请求时,verify_token(auth_token) 被调用,其中 auth_token 为 ""。如果回调函数仅检查传入的令牌是否与数据库中的令牌匹配,而没有显式拒绝空字符串,且存在空令牌用户,则验证通过,攻击者即可获取该空令牌用户的身份权限。这属于一种逻辑型的认证绕过漏洞,依赖于应用程序特定的数据状态和验证逻辑实现。