Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to broker with any valid credential
-
DeliveryConnect via custom binary-protocol client
-
ExploitSend GetSchema/GetOrCreateSchema for foreign topic
-
ExecutionBypass missing authorization check
-
PersistDisclose schema or register incompatible version
-
ImpactBreak victim producers/consumers
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitable ONLY in Apache Pulsar deployments that have both authentication AND authorization enabled; deployments without authz are out of scope. The attacker must be an authenticated client that holds no permission on the target topic, namespace, or tenant, and must use a client that implements the binary protocol directly - the standard Pulsar client first performs an authorized topic lookup, which masks the missing check. GetSchema disclosure applies from version 2.2.0; GetOrCreateSchema registration applies from 2.5.0. Limiting factors: only schema metadata (record field names/types) is exposed - message payloads are never disclosed; the integrity/availability impact is bounded by the topic's existing schema compatibility and schema auto-update policies, and a resulting outage is administratively correctable; and this analysis assumes the default authorization provider, so custom providers may behave differently. REST API schema endpoints are not affected. |
| Impact | This is a genuine-but-moderate issue, not a drop-everything priority. CVSS 4.0 base score is 5.3 (Medium) with vector AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:L - network reachable and low complexity, but PR:L confirms the attacker must already hold valid broker credentials, and all impacts are rated Low. No EPSS score was provided, the CVE is not on CISA KEV, and no public exploit was supplied, so exploitation status is 'no public exploit identified at time of analysis.' The signals are internally consistent: a missing-authorization flaw (CWE-862) that requires authentication, affects only schema metadata (not message payloads), and whose worst outcome is a correctable denial of service via an incompatible schema registration. A practical limiter not captured by CVSS is that the standard Pulsar client performs an authorized topic lookup before issuing these commands, so exploitation requires a custom client that speaks the binary protocol directly - this reduces real-world opportunistic risk. The main risk is to multi-tenant Pulsar deployments where tenant isolation is a security boundary; there, cross-tenant schema disclosure and the ability to break another tenant's producers/consumers is meaningful despite the Medium score. Note the vendor set SC:N (no scope change), yet the impact crosses namespace/tenant boundaries, which some analysts would score as a scope change - this is a judgment call worth noting rather than a data conflict. |
| Exploit ScenarioDerived | An attacker who holds any valid broker credential (for example a low-privilege tenant user) connects to the Pulsar broker using a custom client that implements the binary protocol directly, skipping the authorized topic lookup the standard client normally performs. They issue GetSchema against a topic in a different tenant to read its schema field names and types, then issue GetOrCreateSchema to register a new, incompatible schema version on that topic, causing the legitimate producers and consumers to fail until an administrator restores the schema. No public exploit code is identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 21, 2026
An authenticated Apache Pulsar client that holds no permission whatsoever on a target topic can read that topic's registered schema and register new schema versions on topics in other namespaces or tenants, because the broker's GetSchema and GetOrCreateSchema binary-protocol commands checked only that the connection was authenticated and skipped the topic-level authorization check applied to other topic commands. Deployments are exposed only when both authentication and authorization are enabled, and practical exploitation requires a client that speaks the binary protocol directly, since the standard Pulsar client performs an authorized topic lookup first that masks the missing check (GetSchema affected from 2.2.0, GetOrCreateSchema from 2.5.0, up to the fixed 4.0.14 and 4.2.5 releases). Impact is bounded: only schema metadata such as record field names and types is disclosed (never message payloads), and unauthorized schema registration is constrained by the topic's schema compatibility and auto-update policies, though a bad schema version can break legitimate producers and consumers until an administrator corrects it. No public exploit code was identified at time of analysis, and this is a moderate, administratively correctable authorization gap rather than a drop-everything priority.
RemediationAI
Vendor-released patch: upgrade 4.0.x deployments to at least 4.0.14 and 4.1.x/4.2.x deployments to at least 4.2.5, or move to a currently supported line such as 5.0.x; the fixed brokers require lookup permission for GetSchema and produce permission for GetOrCreateSchema, closing the gap while preserving normal schema workflows for users who already hold those rights (see https://pulsar.apache.org/security/CVE-2026-105926/ and https://lists.apache.org/thread.html/45y22fqoqyfpc2hdmoct8cmgslz8ogkh). Where immediate upgrade is not possible, compensating controls include restricting network access to the broker binary-protocol port (default 6650) to trusted client hosts via firewall or network policy, at the cost of breaking legitimate external producers and consumers that connect directly rather than through a proxy; disabling schema auto-update at the namespace or topic level (isAllowAutoUpdateSchema=false) so unauthorized GetOrCreateSchema submissions cannot silently install new versions, with the trade-off that legitimate producers must have schemas registered by an administrator ahead of time; enforcing the strictest feasible schema compatibility strategy to limit the blast radius of any accepted version; and monitoring schema registry changes through the admin API or audit logging to detect unexpected registrations. Reviewing any custom AuthorizationProvider implementation is also worthwhile, since the impact analysis assumes the default provider and custom providers may enforce topic permissions differently.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Apache Pulsar brokers speak a custom binary protocol over the default port 6650, in which clients issue commands such as Lookup, Producer, Consumer, GetSchema and GetOrCreateSchema against topics named in a tenant/namespace/topic hierarchy. Authorization in Pulsar is delegated to a pluggable AuthorizationProvider (PulsarAuthorizationProvider by default), which exposes granular canLookup, canProduce, canConsume and admin-style checks that command handlers are expected to invoke; the root cause here is CWE-862 (Missing Authorization), since the GetSchema and GetOrCreateSchema handlers invoked authentication validation but never called the provider's topic-level permission check. GetSchema returns the schema registered for a topic from the schema registry (structured type definitions, field names and types), while GetOrCreateSchema registers a new schema version for an existing topic, subject to that topic's schema compatibility strategy and schema auto-update setting. The fix aligns the commands with existing semantics by requiring lookup permission for GetSchema and produce permission for GetOrCreateSchema, meaning that even after patching, any principal with lookup rights can still read schema metadata and any principal with produce rights can still submit a schema version, consistent with how producer creation already behaves. Notably, the schema-related REST API endpoints were never affected, so the flaw is confined to the binary protocol path, and organizations using custom authorization providers may see slightly different impact than the default-provider analysis.
Know when Apache Pulsar gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:L
Authenticated client required so PR:L; network-reachable binary command with no user interaction gives AV:N/AC:L/UI:N; schema-only disclosure and correctable schema-break yield C:L/I:L/A:L.
Primary rating from Vendor (apache).
CVSS VectorVendor: apache
Lifecycle Timeline
2DescriptionCVE.org
The Pulsar broker serves two schema commands on its binary protocol: GetSchema, which returns the schema registered for a topic, and GetOrCreateSchema, which registers a new schema version for an existing topic. The broker handled both commands after checking only that the client connection was authenticated. Unlike the broker's other topic commands, such as those for creating producers and consumers or for looking up topics, these two commands did not check whether the authenticated client was authorized for the target topic. The Pulsar REST API endpoints for schemas were not affected.
An authenticated client without any permission on the target topic, namespace or tenant could use these commands to:
- read the schema registered for a topic in another namespace or tenant, disclosing the schema definition such as record field names and types. Message payloads are not disclosed.
- register a new schema version on an existing topic in another namespace or tenant. The topic's schema compatibility and schema auto-update policies still apply. The issue does not allow message data to be read or modified, but a registered schema version can cause legitimate producers and consumers of that topic to fail with schema incompatibility errors until the schema is corrected by an administrator.
The standard Pulsar client performs an authorized topic lookup before it sends these commands, so the missing check could not be observed when testing with the standard client. A client that implements the binary protocol directly is not required to perform that lookup first.
This issue is relevant only to deployments that have authentication and authorization enabled. The GetSchema command is affected from Apache Pulsar 2.2.0, and the GetOrCreateSchema command from Apache Pulsar 2.5.0. After the fix, the broker requires the lookup permission on the topic for GetSchema and the produce permission on the topic for GetOrCreateSchema. This impact analysis assumes that Pulsar has been configured with the default authorization provider. For custom authorization providers, the impact could be slightly different.
This issue affects Apache Pulsar versions from 2.2.0 before 4.0.14, from 4.1.0 through 4.1.3, and from 4.2.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/.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
More in Apache Pulsar
View allUnauthenticated role forgery in Apache Pulsar lets a client present a forged or unsigned JSON Web Token listing arbitrar
Missing authorization in Apache Pulsar's shadow topic feature allows an authenticated tenant administrator to bind a top
Apache Pulsar deployments using the filesystem packages storage provider allow an authenticated user holding packages pe
Apache Pulsar 2.8.1 through 4.0.13 and 4.1.0 through 4.2.4 can grant an authenticated low-privileged user the proxy's fu
Truncating a partitioned topic through the Apache Pulsar broker admin REST API succeeds without the caller holding tenan
Apache Pulsar 2.8.0 through 4.2.x deployments that enable package management allow an authenticated user to read package
The deprecated functions connectors endpoints (/admin/v2/functions/connectors and /admin/v3/functions/connectors) in Apa
Authorization flaw in Apache Pulsar's Functions Worker trigger REST endpoint allows an authenticated user who holds func
Authorization bypass in Apache Pulsar (2.8.0 through 4.0.13 and 4.1.0 through 4.2.4) allows an authenticated user holdin
Missing authorization checks in the Apache Pulsar broker admin REST endpoints for non-persistent topics allow an authent
Cross-tenant information disclosure in Apache Pulsar's transaction administration REST API allows any authenticated user
Apache Pulsar's WebSocket service performs an incomplete authorization check when a WebSocket consumer supplies a dead l
EUVD-2026-107423
GHSA-7rwq-965f-3p4j
NVD
CVE.org
EPSS
Exploit-DB