Skip to main content

Apache Pulsar CVE-2026-105935

| EUVDEUVD-2026-107472 MEDIUM
Missing Authorization (CWE-862)
2026-10-21 apache GHSA-7w25-m888-8hcq
4.9
CVSS 4.0 · Vendor: apache
View

Attack ChainAIDerived

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

  1. Access
    Authenticate with 'functions' permission in a namespace
  2. Exploit
    Call Functions Worker trigger REST endpoint with target input topic
  3. Execution
    Worker publishes caller-controlled content via its own superuser credentials
  4. Impact
    Forged messages delivered to cross-tenant topic 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

Exploitation requires an authenticated caller who holds the 'functions' management permission on a namespace (PR:L) and access to the Functions Worker trigger REST API. A hard limiting precondition is that the Functions Worker's own broker-client identity must be authorized to produce to the target input topic - and, in Pulsar 2.3.0 and later, to list that topic's subscriptions - which in practice holds mainly when the Worker runs as a superuser; where the Worker identity lacks produce rights on the target topic, the attack fails. Versions before 2.4.0 are more exposed because the trigger endpoint performs no caller-authorization check at all, so there access to the REST API alone suffices. No function instance need be running and no function code is executed. Authorization must be enabled for the 2.4.0+ scenario to be meaningful (otherwise no checks apply at all).

Impact

This is a genuine but moderate-severity authorization flaw, not a critical priority. The signals are internally consistent and point to limited real-world risk. The provided CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:L/UI:N) scores only 4.9 (Medium): it requires an authenticated caller who already holds the 'functions' permission in a namespace (PR:L), and the AT:P (attack requirements) metric reflects a hard precondition - the Functions Worker's own broker-client identity must itself be authorized to produce to (and, in 2.3.0+, list subscriptions of) the target topic, which is realistically only true when that identity is a superuser. Impact is integrity-only (SI:H; VC:N/VI:N/VA:N) - the attacker injects caller-controlled messages into topics they cannot legitimately produce to, affecting data integrity for downstream consumers, with no confidentiality or availability loss. No EPSS score, KEV listing, or POC was supplied in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation; this is consistent with a privilege-requiring, config-dependent, integrity-only issue rather than a mass-exploitation target. One data-quality note: the input Tag 'Authentication Bypass' conflicts with the CWE-862 (Missing Authorization) classification and the description - the caller is authenticated and authorized for function operations; the flaw is a missing per-topic produce-authorization check, i.e. an authorization gap, not an authentication bypass.

Exploit ScenarioDerived

An authenticated user holding the 'functions' permission on namespace A calls the Functions Worker trigger REST endpoint, supplying a message body and a function whose configured input topic resides in another tenant/namespace they cannot produce to. Because the Worker publishes using its own (often superuser) broker credentials and only checks function-operation authorization, the attacker's chosen content is injected into that topic under the Worker's identity, reaching its consumers. No public exploit code was identified at time of analysis and no function instance or function code needs to run.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 21, 2026

Authorization flaw in Apache Pulsar's Functions Worker trigger REST endpoint allows an authenticated user who holds function-management permission on a namespace to cause the Worker to publish caller-controlled messages to a configured input topic that the user is not authorized to produce to, including topics in other tenants. Exploitation requires the Worker's own broker-client identity to be authorized to produce to the target topic and, in Pulsar 2.3.0 and later, to list that topic's subscriptions, which in practice mainly holds when the Worker identity is a superuser; no function instance needs to be running and no function code is executed. This is a moderate-severity integrity issue rather than a critical priority, and no public exploit was identified at time of analysis; vendor fixes are available in 4.0.14 and 4.2.5.

RemediationAI

Upgrade to a fixed Apache Pulsar release: 4.0.x users should move to at least 4.0.14, and 4.1.x or 4.2.x users should move to at least 4.2.5, or to a newer supported release line. In fixed versions, when authorization is enabled, triggering a function additionally requires the caller to be authorized to produce to the selected input topic before any message is published. If immediate upgrade is not possible, limit the permission to manage functions to trusted roles, which reduces exposure on Pulsar 2.4.0 and later but does not remove the underlying missing produce-authorization check. For versions before 2.4.0, where the trigger endpoint performs no caller authorization at all, restrict access to the Functions Worker REST API to trusted callers. As a defense-in-depth measure, avoid running the Functions Worker's broker-client identity as a superuser and grant it only the produce and subscription-list permissions actually required; this narrows the set of topics the Worker can be abused to publish to, but must be validated against function input topics and operational workflows because overly restrictive Worker permissions can break legitimate function triggering. Consult the vendor advisory at https://pulsar.apache.org/security/CVE-2026-105935/ before changing authorization or Worker broker-client privileges.

Affected VersionsENISA

Apache Pulsar 2.0.0-rc1-incubating <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

Apache Pulsar's Functions Worker exposes a REST API that triggers a function by publishing a caller-supplied value to one of the function's configured input topics. The Worker performs this publish using its own broker client and its configured broker-client credentials, not the credentials of the API caller, so the publish is attributed to the Worker identity. The root cause is CWE-862, missing authorization: in Pulsar 2.4.0 and later with authorization enabled, the trigger endpoint verifies only that the caller may perform function operations in the function's namespace; it does not verify that the caller may produce to the selected input topic before publishing. Versions before 2.4.0 perform no caller authorization check at all for the trigger endpoint. Function input topics are not constrained to the function's own tenant or namespace, and registering a function does not require produce permission on its input topics. As a result, an authenticated user with the functions permission on a namespace can abuse the Worker's privileged broker identity to inject messages into topics the user cannot directly access, including cross-tenant topics. The practical precondition is that the Worker's broker-client identity itself has produce permission on the target topic and, from 2.3.0 onward, permission to list the target topic's subscriptions - conditions typically met when that identity is a superuser. The issue concerns the external Functions Worker REST API and does not alter the trust model for function code, which must remain fully trusted; no function instance or function code execution is needed for exploitation.

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 4.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:N/SC:N/SI:H/SA:N
vuln.today AI 6.3 MEDIUM

Authenticated functions-permission caller gives PR:L; the Worker identity must be a superuser authorized to the target topic (an out-of-attacker-control precondition) gives AC:H; cross-tenant message injection under the Worker identity is a scope-changed integrity impact (S:C/I:H) with no C or A loss.

3.1 AV:N/AC:H/PR:L/UI:N/S:C/C:N/I:H/A:N
4.0 AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:N/SC:N/SI:H/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
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
High
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 21, 2026 - 20:18 EUVD
CVE Published
Oct 21, 2026 - 18:10 cve.org
MEDIUM 4.9

DescriptionCVE.org

The Pulsar Functions Worker provides a REST API endpoint for triggering a function, which publishes a caller-supplied value to one of the function's configured input topics. The Functions Worker performs this publish with its own broker client, which authenticates with the Worker's configured broker-client credentials rather than the credentials of the API caller.

When authorization is enabled, in Apache Pulsar 2.4.0 and later versions, the trigger endpoint checks only that the caller is authorized to perform function operations in the function's namespace. It does not check that the caller is authorized to produce to the input topic that the message is published to. Versions before 2.4.0 do not perform a caller authorization check for the trigger endpoint at all. Function input topics are not restricted to the function's own tenant or namespace, and registering a function does not require produce permission on its input topics.

As a result, an authenticated user who is authorized to manage functions in a namespace, for example a role granted the functions permission on that namespace, can cause the Functions Worker to publish messages with caller-controlled content to a topic that the user is not authorized to produce to, including topics in other tenants. These messages are published under the identity of the Functions Worker. The issue does not require any function instance to be running or any function code to be executed. It requires that the Functions Worker's broker-client identity is itself authorized to produce to the target topic and, in Apache Pulsar 2.3.0 and later versions, to list the subscriptions of the target topic, as is the case when that identity is a superuser. The impact is on the integrity of the data in the affected topics: consumers of those topics may receive messages from a user who is not permitted to publish them. This concerns the Functions Worker REST API as called by an external, authenticated client; it does not change the security model for function code, which must be fully trusted.

In fixed versions, when authorization is enabled, triggering a function additionally requires the caller to be authorized to produce to the selected input topic before any message is published.

This issue affects Apache Pulsar versions from 2.0.0-rc1-incubating 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 of Apache Pulsar 2.4.0 and later versions with authorization enabled who cannot upgrade immediately can limit the permission to manage functions to trusted roles. Users of versions before 2.4.0 should restrict access to the Functions Worker REST API to trusted callers, because in these versions the trigger endpoint does not check the caller's permission to manage functions.

Threat Intelligence Overview

EPSS Score
0.4%
Top 67% exploitable
Prevalence
Medium
widely used Apache streaming/messaging platform, but niche versus 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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

24
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +24
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-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-105932 LOW
2.3 Oct 21

Missing authorization checks in the Apache Pulsar broker admin REST endpoints for non-persistent topics allow an authent

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