Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-105298— Pingora HTTP/2 :authority and Host header mismatch enables cache poisoning and host-based access control bypass

Quick assessment

Affected
Cloudflare https://github.com/cloudflare/pingora
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

漏洞摘要 在 0.9.0 版本之前,Pingora 会接受那些 请求头与 伪头部不一致的 HTTP/2 请求。读取请求 URI( )的请求过滤器、缓存键和日志记录组件看到的是 的值,而上游服务器接收到的却是客户端提供的 值。此外,Pingora 还接受了包含用户信息(例如 )的 值。这违反了 RFC 9113 第 8.3.1 节的规定,该规定要求中间设备必须使用 值作为 字段,并替换任何已存在的 字段。 根本原因 HTTP/2 转 HTTP/1.1:仅当请求中不存在 请求头时,系统才会根据 生成 头。因此,如果客户

CVSS 6.3 · Medium

Possible ATT&CK Techniques 2 AI

T1566.002 · Spearphishing Link T1190.002
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-105298

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
Pingora HTTP/2 :authority and Host header mismatch enables cache poisoning and host-based access control bypass
Source: CVE Program / CVE List V5
Vulnerability Description
Summary Before version 0.9.0, Pingora accepted HTTP/2 requests whose Host header differed from the :authority pseudo-header. Request filters, cache keys, and logs that read the request URI (session.req_header().uri) saw the :authority value, but the upstream received the client-supplied Host value. Pingora also accepted :authority values containing userinfo (for example, user@example.com). This violates RFC 9113 Section 8.3.1, which requires an intermediary to use the :authority value for Host and replace any existing Host field. Root cause * HTTP/2 to HTTP/1.1: Host was generated from :authority only when the request had no Host header, so a conflicting client Host was forwarded unchanged. * HTTP/2 to HTTP/2: the client Host header was removed and used to overwrite the upstream :authority, after request filters had already run against the original :authority. * The HTTP/2 server did not compare Host with :authority and did not reject userinfo in the authority. Impact A remote, unauthenticated attacker can send a single HTTP/2 request that the application sees as one host and the upstream receives as another. Where request filters, access controls, or cache keys use the URI authority and the upstream routes by Host, this can lead to: * Cache poisoning: a response from another virtual host is stored under the victim host's cache key and served to other users (this also requires the upstream to serve different content per Host). * Host-based access control bypass: a request approved for one host is served by a different virtual host on the upstream. Deployments that do not accept HTTP/2 from clients, or that do not use the request authority for security or caching decisions, are not affected. Note that Cloudflare CDN customers were unaffected, as internal Pingora services at Cloudflare do not have HTTP/2 clients. Mitigation: * Upgrade to pingora 0.9.0 or later. Pingora now returns 400 Bad Request for HTTP/2 requests whose Host differs from :authority, that contain more than one Host, or whose authority contains userinfo, and keeps the upstream Host or :authority consistent with the request authority. Fix commits: https://github.com/cloudflare/pingora/commit/915590a91811877795531f6ba0927a3138b5cb4b , https://github.com/cloudflare/pingora/commit/ffab8302d08d4292d1924eb8fe84647fd5cb8e76 * If you cannot upgrade: in request_filter, reject HTTP/2 requests that carry a Host header different from the URI authority, or whose authority contains '@'.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
Cloudflare https://github.com/cloudflare/pingora 0.1.0 ~ 0.9.0 -

II. Public POCs for CVE-2026-105298

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-105298

请登录查看更多情报信息。

Same Patch Batch · Cloudflare · 2026-10-20 · 3 CVEs total

CVE-2026-105299 8.7 HIGH Pingora forwards client-nominated Connection headers to HTTP/1 upstreams, allowing ACL byp
CVE-2026-105297 7.5 HIGH Pingora HTTP/2 server memory exhaustion through unbounded default header-list and concurre

IV. Related Vulnerabilities

V. Comments for CVE-2026-105298

No comments yet


Leave a comment