Skip to main content

Apache Pulsar CVE-2026-105932

| EUVDEUVD-2026-107469 LOW
Missing Authorization (CWE-862)
2026-10-21 apache GHSA-6xq3-9hvx-9qxg
2.3
CVSS 4.0 · Vendor: apache
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate with produce/consume permission
  2. Exploit
    Call unauthorized non-persistent entryFilters endpoint
  3. Impact
    Alter or remove topic entry filter policy affecting new subscription dispatchers

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 an authenticated user who has been granted produce or consume permission on the non-persistent topic or its namespace (so not unauthenticated - the broker must have authentication and authorization enabled using the default authorization provider). Beyond that, impact is gated by two broker configuration requirements that are both OFF by default: (1) the operator must have deployed one or more entry filter implementations into the broker's entry filters directory (empty by default), and (2) allowOverrideEntryFilters must be set to true (default false) so that topic-level policies actually affect dispatch. The issue affects only non-persistent topics - persistent topics and namespace-level policies are unaffected. A policy change also only impacts subscription dispatchers created after the change (new or re-created subscriptions), not existing dispatchers, further limiting practical effect.

Impact

This is a genuinely low-priority issue despite the attention-grabbing tags. The signals are consistent and point to minimal real-world risk: the vendor CVSS 4.0 base score is 2.3 (Low), with AV:N but AT:P (attack requirements present) and PR:L (requires an already-authenticated user). CWE-862 (Missing Authorization) correctly characterizes it as a broken-access-control flaw, not code execution. No EPSS score was provided, there is no CISA KEV listing, and no public exploit was identified in the input - exploitation status is 'no public exploit identified at time of analysis.' The two 'RCE' and 'Authentication Bypass' tags conflict directly with the authoritative description, which states the issue 'does not allow a caller to install or load entry filter code or to run arbitrary code in the broker' and that the attacker must already be an authenticated user with produce/consume rights - so these tags overstate severity and should not drive prioritization. The most important mitigating signal is that practical impact requires TWO non-default broker configurations to be simultaneously true (entry filters deployed AND allowOverrideEntryFilters=true), so most default deployments are not exploitable at all. Net: low-severity, config-dependent, authorization-only issue affecting non-persistent topics; patch during normal maintenance cycles rather than as an emergency.

Exploit ScenarioDerived

In a Pulsar cluster where an operator has deployed entry filters and enabled allowOverrideEntryFilters, an authenticated user holding only produce or consume permission on a non-persistent topic calls the /admin/v2/non-persistent/{tenant}/{namespace}/{topic}/entryFilters endpoint, which omits the topic-policy authorization check. The user removes or replaces the topic's entry filter policy; newly created subscription dispatchers then stop enforcing the intended message filtering, allowing withheld messages through or withholding others. No public exploit code is referenced, and the attacker cannot read message contents or execute code.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 21, 2026

Missing authorization checks in the Apache Pulsar broker admin REST endpoints for non-persistent topics allow an authenticated user holding only produce or consume permission on a topic or its namespace to read, replace, or delete that topic's entry filter policy. Only non-persistent topics on Pulsar 3.3.0 through 4.0.13 and 4.1.0 through 4.2.4 are affected; persistent topics, namespace-level policies, and versions before 3.3.0 are not. Real impact is tightly gated: the operator must have deployed entry filter implementations (the filters directory is empty by default) and must have set allowOverrideEntryFilters=true (default false), and even then only subscription dispatchers created after the change are affected, so conversation of the vulnerable policy only reshapes which already-installed filters withhold messages. No public exploit code was identified at time of analysis, and despite the accompanying 'RCE' tag the description confirms the flaw does not permit loading filter code or running arbitrary code in the broker.

RemediationAI

Vendor-released patch: upgrade to Apache Pulsar 4.0.14 (for 3.3.x and 4.0.x deployments) or 4.2.5 (for 4.1.x and 4.2.x deployments), or to any newer supported release; see the advisory at https://pulsar.apache.org/security/CVE-2026-105932/ for the official guidance. Because exploitation additionally requires two non-default broker settings, the most effective compensating control for teams that cannot upgrade immediately is to leave allowOverrideEntryFilters at its default of false, which makes topic-level entry filter policies inert for message dispatch; the trade-off is that operators who intentionally use per-topic filter overrides lose that capability. As a second control, avoid granting produce or consume permission on non-persistent topics or namespaces to principals that should not manage topic policies, or restrict the admin REST surface (/admin/v2/non-persistent/.../entryFilters) at the network or reverse-proxy layer, at the cost of administrative convenience for legitimate tenant admins. Deleting unused entry filter implementations from the broker's entry filters directory removes the prerequisite entirely, but requires a broker restart and disables filtering you may depend on. None of these controls require disabling authentication or the default authorization provider, which should remain enabled.

Affected VersionsENISA

Apache Pulsar 3.3.0 <4.0.14
Apache Pulsar 4.1.0 <4.2.5

Affected Packages

euvd apache_pulsar fix: 4.0.14, 4.2.5

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

Entry filters are a Pulsar broker feature that lets an operator plug in compiled filter implementations (loaded at broker startup from a configured entry filters directory) to withhold selected messages from subscription dispatch. Topic-level entry filter policies are set through the broker admin REST API, and the persistent-topic variants at /admin/v2/persistent/{tenant}/{namespace}/{topic}/entryFilters correctly gate those calls on the entry filters topic policy authorization operation. The non-persistent-topic variants (/admin/v2/non-persistent/{tenant}/{namespace}/{topic}/entryFilters) omit that check entirely - a classic CWE-862 Missing Authorization flaw - and rely only on the indirect lookup permission check performed while retrieving the topic's partition metadata. Because of that gap, a user granted produce or consume on a non-persistent topic or its namespace, but not the tenant admin or superuser role required to manage topic policies, can read, replace, or remove the topic-level entry filter policy (impact is limited to disclosure of configured filter names, not message contents - filters cannot modify payloads). Versions before 3.3.0 are unaffected because the entry filters policy check lived in code shared by the persistent and non-persistent handlers. Two deployment prerequisites bound the realistic risk: the affected filters must already be installed by the operator (arbitrary filter names are rejected, and no code can be loaded), and allowOverrideEntryFilters must be true so that a topic-level policy actually overrides the broker-level configuration. Even when both hold, the modified policy applies only to subscription dispatchers created after the change; existing dispatchers retain the filters they were built with, and because non-persistent topics do not persist messages, withheld messages are simply not delivered.

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

Vendor (apache) PRIMARY 2.3 LOW
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N
vuln.today AI 5.0 MEDIUM

Network-reachable REST API but requires two non-default broker configurations (AC:H) and an authenticated low-privileged user (PR:L); impact is limited to disclosing filter names and altering message dispatch (C/I/A all Low).

3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:L
4.0 AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (apache).

CVSS VectorVendor: apache

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 21, 2026 - 20:18 EUVD
CVE Published
Oct 21, 2026 - 18:06 cve.org
LOW 2.3

DescriptionCVE.org

The Apache Pulsar broker admin REST API provides endpoints to read, set and remove the topic-level entry filter policy of a topic. For persistent topics these endpoints check that the caller is authorized for the entry filters topic policy operation. The corresponding endpoints for non-persistent topics (/admin/v2/non-persistent/{tenant}/{namespace}/{topic}/entryFilters) do not perform this authorization check. The only authorization check these endpoints perform is an indirect lookup permission check, made while the topic's partition metadata is retrieved; it is present in all affected versions.

As a result, when authentication and authorization are enabled, an authenticated user who has been granted produce or consume permission on a non-persistent topic, or on its namespace, but not permission to manage the topic's policies can read, replace or remove the topic-level entry filter policy of that topic. These operations should be restricted to users with the tenant admin role or the superuser role. This impact analysis assumes that Pulsar has been configured with the default authorization provider. For custom authorization providers, the impact could be slightly different.

The practical impact is limited by two broker configuration requirements, neither of which is met by default:

  • Entry filters must have been installed by the operator. Entry filter implementations are loaded only at broker startup from the broker's entry filters directory, which is empty by default. A request can only select among entry filters the operator has already deployed; setting any other filter name is rejected. The issue does not allow a caller to install or load entry filter code or to run arbitrary code in the broker.
  • Topic-level entry filter policies must be allowed to override the broker-level configuration (allowOverrideEntryFilters, which is disabled by default). When this setting is disabled, the topic-level entry filter policy has no effect on message dispatch.

In deployments where both conditions are met, an unauthorized user can remove the topic-level entry filter policy of a non-persistent topic, for example one used to restrict which messages are delivered to consumers, or apply a different installed entry filter that withholds messages from subscriptions of that topic. Removing it makes the topic fall back to the namespace-level or broker-level entry filters, which are not removed. A changed policy affects only subscription dispatchers created after the change, for example for new subscriptions or when a subscription is re-created after all of its consumers have disconnected; dispatchers that already exist keep the entry filters they were created with. Because non-persistent topics do not store messages, messages withheld by an entry filter are not delivered. Reading the policy discloses only the names of the configured entry filters. The issue does not allow reading message contents, and entry filters cannot modify message payloads. Persistent topics and namespace-level entry filter policies are not affected. Apache Pulsar versions before 3.3.0 are not affected, because in those versions the entry filters topic policy check is made in code shared by the persistent and non-persistent endpoints.

This issue affects Apache Pulsar versions from 3.3.0 before 4.0.14 and from 4.1.0 before 4.2.5.

  • 3.3.x and 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 and have deployed entry filters should keep allowOverrideEntryFilters at its default value of false, so that topic-level entry filter policies do not affect message dispatch.

Threat Intelligence Overview

EPSS Score
0.5%
Top 58% exploitable
Prevalence
Medium
widely-used open-source messaging platform but less deployed than Kafka
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Low

Priority Score

13
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +12
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2026-105869 CRITICAL
9.2 Oct 21

Unauthenticated role forgery in Apache Pulsar lets a client present a forged or unsigned JSON Web Token listing arbitrar

CVE-2026-105937 HIGH
8.7 Oct 21

Missing authorization in Apache Pulsar's shadow topic feature allows an authenticated tenant administrator to bind a top

CVE-2026-105945 HIGH
7.7 Oct 21

Apache Pulsar deployments using the filesystem packages storage provider allow an authenticated user holding packages pe

CVE-2026-105942 HIGH
7.7 Oct 21

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

CVE-2026-105934 HIGH
7.2 Oct 21

Truncating a partitioned topic through the Apache Pulsar broker admin REST API succeeds without the caller holding tenan

CVE-2026-105930 MEDIUM
6.0 Oct 21

Apache Pulsar 2.8.0 through 4.2.x deployments that enable package management allow an authenticated user to read package

CVE-2026-105936 MEDIUM
5.3 Oct 21

The deprecated functions connectors endpoints (/admin/v2/functions/connectors and /admin/v3/functions/connectors) in Apa

CVE-2026-105926 MEDIUM
5.3 Oct 21

An authenticated Apache Pulsar client that holds no permission whatsoever on a target topic can read that topic's regist

CVE-2026-105935 MEDIUM
4.9 Oct 21

Authorization flaw in Apache Pulsar's Functions Worker trigger REST endpoint allows an authenticated user who holds func

CVE-2026-105938 LOW
2.3 Oct 21

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

CVE-2026-105931 LOW
2.3 Oct 21

Cross-tenant information disclosure in Apache Pulsar's transaction administration REST API allows any authenticated user

CVE-2026-105927 LOW
2.3 Oct 21

Apache Pulsar's WebSocket service performs an incomplete authorization check when a WebSocket consumer supplies a dead l

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy