Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as non-admin tenant user
-
DeliveryTarget partitioned topic with lookup permission
-
ExploitSend DELETE truncate admin-API request
-
ExecutionBroker re-issues per-partition truncate under internal admin identity
-
ImpactCursors advanced and retained ledgers permanently deleted
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 | Exploitation requires: (1) a valid authenticated Pulsar identity (PR:L) - not anonymous; (2) lookup permission on the target topic, which under the default authorization provider is granted by produce or consume permission on the topic or its namespace, so a user with no permissions cannot trigger it; (3) the target must be a PARTITIONED topic requested by its partitioned-topic name - non-partitioned topics and individual partitions addressed by partition name are correctly checked and not affected; and (4) the broker's own configured internal client role must be a superuser or an admin of the target tenant (the usual configuration when authorization is enabled) - if the broker's internal identity lacks that role, the per-partition truncate requests are rejected and exploitation fails. This analysis assumes the default authorization provider; custom providers may differ. Limiting factors for defenders: the caller must be authenticated and already permissioned on the topic, only partitioned topics are affected, no confidentiality impact, and exposure is reduced by restricting network access to the broker admin REST API (/admin/v2) to trusted administrative clients. |
| Impact | This is a genuine but bounded-impact issue rather than a top-tier emergency. The Apache-assigned CVSS 4.0 base score is 7.2 (CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N): network-reachable via the admin REST API, low attack complexity, but requiring an authenticated principal (PR:L) rather than an anonymous attacker. Impact is confined to integrity and availability (VI:H/VA:H) - permanent message/data loss and skipped backlog - with no confidentiality exposure (VC:N) and no scope change (SC:N), so it is a destructive/denial-of-data flaw, not RCE or information disclosure. No EPSS probability was provided in the input, there is no CISA KEV listing, and no public exploit code is referenced - so there is no public exploit identified at time of analysis and no evidence of active exploitation. Exploitation is further gated by two real conditions (the caller must already hold lookup/produce/consume permission on the target, and the broker's own internal client identity must be a superuser or tenant admin - the common configuration when authorization is enabled), which keeps this below the priority of an unauthenticated internet-facing bug. Net assessment: a real priority for multi-tenant Pulsar operators where lower-privileged tenants share brokers, but materially de-rated by the authentication and permission prerequisites and the absence of exploitation signals. Missing signal to note: EPSS is absent from the provided data and cannot be weighed. |
| Exploit ScenarioDerived | In a multi-tenant Pulsar deployment with authorization enabled, an authenticated user who holds only produce/consume (and thus lookup) permission on a partitioned topic - but is not a tenant admin - sends DELETE /admin/v2/persistent/{tenant}/{namespace}/{topic}/truncate for that partitioned topic name. Because the broker omits the tenant-admin check for partitioned-topic names and re-issues each per-partition truncate under its own superuser/admin credentials, every partition is truncated: subscription cursors jump to the topic end and eligible older ledgers are deleted, permanently discarding retained messages and unacknowledged backlog. No public exploit identified at time of analysis; the attack uses only a standard authenticated admin-API HTTP call. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 21, 2026
Truncating a partitioned topic through the Apache Pulsar broker admin REST API succeeds without the caller holding tenant admin or superuser rights, letting an authenticated user wipe consumer backlog and destroy retained data on topics they merely have lookup permission for. The broker proxies each per-partition truncate request through its own internal admin client, so the tenant-admin authorization check is evaluated against the broker's configured identity rather than the caller's, and passes whenever that internal role is a superuser or tenant admin (the usual setup when authorization is enabled). Affected releases are 2.8.0 through 4.0.13 and 4.1.0 through 4.2.4, with fixes in 4.0.14 and 4.2.5; successful exploitation requires a valid authenticated identity, lookup permission on the target, a partitioned topic addressed by its partitioned name, and a suitably privileged broker internal client, and yields high integrity and availability impact with no confidentiality impact. No CISA KEV entry or public exploit code was identified at the time of analysis, and no EPSS score was supplied.
RemediationAI
Vendor-released patch: upgrade to Apache Pulsar 4.0.14 (for 4.0.x deployments) or 4.2.5 (for 4.1.x and 4.2.x deployments), as documented at https://pulsar.apache.org/security/CVE-2026-105934/; there is no backport for the unsupported 2.8.x-3.x lines, so those installations must move to a currently supported line. If immediate upgrade is not possible, restrict network access to the broker's admin REST API path /admin/v2 to trusted administrative clients via network policy, firewall rules, or an authenticating reverse proxy - the trade-off is that legitimate administrative tooling, CI/CD automation, and monitoring integrations that rely on the admin API will also be blocked unless explicitly allowlisted, and any bypass of that perimeter restores full exposure. A secondary compensating measure is to reconfigure the broker's internal admin client role so it is neither a superuser nor a tenant admin for production tenants, which causes the per-partition truncate requests to be rejected; this is disruptive because the same internal identity is used for other broker-side administrative fan-out operations, so it should be validated in a staging environment first. Tightening topic-level produce/consume permissions is largely ineffective here, since under the default authorization provider those very permissions grant the lookup right that enables exploitation - only fully removing a principal's permissions on sensitive partitioned topics reduces its reach. Restrict truncate operations on partitioned topics to break-glass administrative workflows and audit broker logs for /truncate calls issued by non-administrative principals during the patching window.
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 is a distributed publish-subscribe messaging platform whose broker exposes an administrative REST surface under /admin/v2, including DELETE /admin/v2/persistent/{tenant}/{namespace}/{topic}/truncate. Truncation is a destructive lifecycle operation: it advances every subscription cursor to the end of the topic, discarding unacknowledged backlog, and deletes inactive ledgers irrespective of the namespace retention policy, while leaving the ledger currently being written intact. For non-partitioned topics, and for individual partitions addressed by partition name, the broker correctly enforces the tenant admin or superuser role against the caller. For a partitioned topic name, however, the broker fans the request out to each partition using its own internal admin client, which authenticates with the broker's configured client credentials; the per-partition authorization check therefore runs against the broker identity, not the requester. This is a classic CWE-862 Missing Authorization defect - an authorization decision made on a different principal than the one that initiated the request, effectively a confused-deputy pattern inside the broker's own fan-out path. Under the default authorization provider, lookup permission (granted by produce or consume permission on the topic or namespace) is the only caller-side prerequisite, so the flaw does not extend to users with no topic permissions, does not disclose message contents, and does not permit permission or configuration changes; custom authorization providers may yield different results. The vendor rates the issue 7.2 under CVSS 4.0 (AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:H) and the independent assessment scores it 7.2 under CVSS 3.1 (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H) - both reflecting an authenticated remote attacker with high integrity and availability impact and no confidentiality impact.
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:N/VI:H/VA:H/SC:N/SI:N/SA:N
Reachable over the admin REST API (AV:N/AC:L) but requires an authenticated caller with topic lookup permission (PR:L); permanent message deletion drives I:H and A:H, with no data disclosure (C:N).
Primary rating from Vendor (apache).
CVSS VectorVendor: apache
Lifecycle Timeline
2DescriptionCVE.org
The Apache Pulsar broker admin REST API provides a truncate operation for persistent topics (DELETE /admin/v2/persistent/{tenant}/{namespace}/{topic}/truncate). Truncating a topic moves all subscription cursors of the topic to the end of the topic and deletes the topic's inactive ledgers. Truncating a non-partitioned topic, or a single partition addressed by its partition name, correctly requires the tenant admin role or the superuser role. When the operation is requested for the name of a partitioned topic, the broker does not apply this tenant admin check to the caller. Instead, it truncates each partition using the broker's own internal admin client, which authenticates with the broker's configured client credentials rather than the caller's identity. Each per-partition truncate request is still checked for the tenant admin role or the superuser role, but against the broker's internal identity instead of the caller. The partitions are therefore truncated only when the broker's configured client role is a superuser or an admin of the target tenant, which is the usual configuration when authorization is enabled.
As a result, when that condition holds, an authenticated user who is not a tenant admin can truncate any partitioned topic on which the user has lookup permission. Caller authentication and lookup permission alone are not sufficient: if the broker's internal identity lacks tenant admin or superuser authorization for the target tenant, the per-partition requests are rejected. With the default authorization provider, lookup permission is granted by produce or consume permission on the topic or its namespace. A user with no permissions on the topic cannot trigger the issue. This impact analysis assumes that Pulsar has been configured with the default authorization provider. For custom authorization providers, the impact could be different.
Truncating a partitioned topic this way moves the cursors of all subscriptions on every partition to the end of the topic, so any unacknowledged backlog is skipped and is no longer delivered to consumers. It also deletes eligible older ledgers of each partition regardless of the namespace's configured retention policy, so messages stored in those ledgers can be permanently lost. The ledger currently being written is not deleted by the truncate operation. The issue does not allow reading message contents or changing permissions or configuration, and it does not give access to topics on which the user has no lookup permission.
This issue affects Apache Pulsar versions from 2.8.0 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 reduce exposure by restricting network access to the broker's admin REST API (/admin/v2) to trusted administrative clients.
Executive ViewAI
Apache Pulsar's broker admin REST API (affected ranges 2.8.0 through 4.0.13 and 4.1.0 through 4.2.4) lets a minimally privileged account permanently truncate partitioned topics it can only look up, destroying retained messages and consumer backlog with no ability to recover them. Because the broker evaluates the authorization check against its own internal admin identity instead of the caller's, tenant separation is effectively bypassed in the common configuration where that internal client holds superuser or tenant-admin rights. Leadership should treat this as a data-destruction and multi-tenant trust issue for any team relying on Pulsar for message retention, replay, or audit evidence, not merely a configuration defect.
Vendor-released patch: fixed releases 4.0.14 and 4.2.5 are referenced in the advisory - apply vendor patch. Until upgraded: remove superuser and tenant-admin rights from the broker's internal admin client so the proxied authorization check fails closed, restrict the broker admin REST API to trusted management networks, and alert on truncate operations targeting partitioned topics.
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
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
An authenticated Apache Pulsar client that holds no permission whatsoever on a target topic can read that topic's regist
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-107471
GHSA-jmgm-7p46-gjp6
NVD
CVE.org
EPSS
Exploit-DB