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

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-105869— Apache Pulsar: MultiRolesTokenAuthorizationProvider uses roles from unverified tokens for HTTP requests that fall back to the anonymous user role

Quick assessment

Affected
Apache Software Foundation Apache Pulsar
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.

Apache Pulsar 的 会根据其 JSON Web Token (JWT) 声明中列出的所有角色来授权客户端。该组件设计用于配合令牌身份验证使用,即在授权之前先验证令牌。然而,该组件并未对令牌本身进行验证:它移除了签名后解析令牌的声明,并假定身份验证环节已经完成了验证。 当同时启用了身份验证和授权,且 设置非空时,某些身份验证失败的 HTTP 请求不会被拒绝,而是会被当作匿名用户角色的请求进行处理。对于代理(broker)的 HTTP 端点(例如管理 REST API),此回退机制适用于未指定身份验证方法的

CVSS 9.2 · Critical

Affected Version Matrix 2

VendorProduct Version RangeStatus
Apache Software Foundation Apache Pulsar 2.8.1< 4.0.14 affected
4.1.0< 4.2.5 affected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-105869

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
Apache Pulsar: MultiRolesTokenAuthorizationProvider uses roles from unverified tokens for HTTP requests that fall back to the anonymous user role
Source: CVE Program / CVE List V5
Vulnerability Description
Apache Pulsar's MultiRolesTokenAuthorizationProvider authorizes a client with all roles listed in a claim of its JSON Web Token (JWT). The provider is intended for use with token authentication, which verifies the token before authorization. The provider did not verify the token itself: it parsed the token's claims with the signature removed and trusted that authentication had already checked it. When authentication and authorization are enabled with a non-empty anonymousUserRole setting, some HTTP requests whose credentials fail authentication are not rejected, but are handled as requests of the anonymous user role. For the broker's HTTP endpoints, such as the admin REST API, this fallback applies to requests that do not name an authentication method and requires strictAuthMethod to be false (the default) where that setting is available. For the WebSocket API, failed credentials can also fall back to the anonymous user role; this path does not enforce strictAuthMethod. The authentication data kept for such a request still contained the request's Authorization header. MultiRolesTokenAuthorizationProvider then read the bearer token from that header without verifying its signature and authorized the request with the roles in the token's role claim. As a result, in deployments that use MultiRolesTokenAuthorizationProvider together with a non-empty anonymousUserRole and that permit this fallback, an unauthenticated client can send an HTTP request, for example to the admin REST API or the WebSocket API, with a forged or unsigned token that lists arbitrary roles, and be authorized with those roles. The impact can include super-user access when the token lists a role configured in superUserRoles, allowing the client to read and change tenants, namespaces, topics, permissions and broker configuration. No valid credentials are required. Deployments are not affected if they use the default authorization provider (PulsarAuthorizationProvider) or another authorization provider, or if anonymousUserRole is not set (the default). Requests that authenticate successfully with a valid token are not affected, because the token that MultiRolesTokenAuthorizationProvider reads is the token that authentication verified. Connections that use the Pulsar binary protocol are not affected by this issue, because the broker does not keep client authentication data for connections that it assigns to the anonymous user role. In fixed versions, MultiRolesTokenAuthorizationProvider obtains roles only from tokens that the configured token authentication provider has verified, using its configured keys and validation settings. Broker HTTP requests that are assigned to the anonymous user role are authorized only as that role, and invalid tokens cannot supply additional roles to WebSocket requests. The broker fails to start if MultiRolesTokenAuthorizationProvider is configured with authorization enabled but without a token authentication provider. This issue affects Apache Pulsar versions from 2.8.1 before 4.0.14 and from 4.1.0 before 4.2.5. - 4.0.x version users should upgrade to at least 4.0.14. - 4.1.x and 4.2.x version users should upgrade to at least 4.2.5. Users operating versions prior to those listed above should upgrade to the aforementioned patched versions or newer versions. The currently supported Apache Pulsar release lines are 4.0.x and 5.0.x. The supported versions schedule is available at https://pulsar.apache.org/contribute/release-policy/. Users who cannot upgrade immediately can remove the anonymousUserRole setting from the broker and WebSocket service configurations, or restrict network access to the HTTP endpoints of these services to trusted clients.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Source: CVE Program / CVE List V5
Vulnerability Type
密码学签名的验证不恰当
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
Apache Software Foundation Apache Pulsar 2.8.1 ~ 4.0.14 -

II. Public POCs for CVE-2026-105869

# 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-105869

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

Vendor Advisories for CVE-2026-105869 (1)

Mailing List Discussions for CVE-2026-105869 (1)

Same Patch Batch · Apache Software Foundation · 2026-10-21 · 69 CVEs total

CVE-2026-111812 10.0 CRITICAL Apache Traffic Server: origin_server_auth signs client-controlled AWS headers under the pr
CVE-2026-105944 10.0 CRITICAL Apache Pulsar Manager: Missing authentication and authorization and disclosure of the Puls
CVE-2026-111815 10.0 CRITICAL Apache Traffic Server: TLS session ticket resumption bypasses per-SNI verify_client STRICT
CVE-2026-111814 10.0 CRITICAL Apache Traffic Server: Default server_session_sharing.match omits MASK_CERT, allowing pool
CVE-2026-111813 10.0 CRITICAL Apache Traffic Server: magick plugin passes client query strings unfiltered to ImageMagick
CVE-2026-111809 9.3 CRITICAL Apache Traffic Server: HEAD requests carrying Content-Length or Transfer-Encoding enable r
CVE-2026-111816 9.3 CRITICAL Apache Traffic Server: A malformed 302 response bypasses parse-error rejection through the
CVE-2026-111811 9.0 CRITICAL Apache Traffic Server: tsmemcache plugin exposes the shared proxy cache over the network w
CVE-2025-31699 8.9 HIGH Apache Traffic Server: Origin connection still owed a request body is reused, enabling req
CVE-2026-105937 8.7 HIGH Apache Pulsar: Missing authorization of the shadow topic source allows cross-tenant messag
CVE-2025-55702 8.7 HIGH Apache Traffic Server: An unread Expect: 100-continue request body is framed as a new requ
CVE-2026-111805 8.6 HIGH Apache Traffic Server: HTTP/2 Content-Length truncation lets a client trigger backend work
CVE-2026-111808 8.6 HIGH Apache Traffic Server: HTTP/2 DATA frame padding underflow lets a client trigger backend w
CVE-2026-111804 8.2 HIGH Apache Traffic Server: wasm plugin has a use-after-free and forwards unvalidated guest met
CVE-2026-105945 7.7 HIGH Apache Pulsar: Improper Validation of Package Name Components Allows Cross-Tenant Package
CVE-2026-105942 7.7 HIGH Apache Pulsar: Original principal of proxied requests authorized with the proxy's authenti
CVE-2026-111810 7.5 HIGH Apache Traffic Server: Unthrottled per-header diagnostic logging enables a log-flood denia
CVE-2026-105934 7.2 HIGH Apache Pulsar: Missing tenant admin authorization check when truncating a partitioned topi
CVE-2026-105930 6.0 MEDIUM Apache Pulsar: Improper Authorization of Function, Source and Sink Package URLs Allows Cro
CVE-2026-112381 5.9 MEDIUM Apache Traffic Server: Nullptr dereference in net_write_io on a POST half-close with chunk

Showing top 20 of 69 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2026-105869

No comments yet


Leave a comment