Description
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.
Published: 2026-10-21
Score: 4.9 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Unauthorized message publication to arbitrary topics
Action: Patch immediately
AI Analysis

Impact

An authenticated user who can manage Pulsar functions can trigger a function that publishes a user‑controlled message to any input topic, bypassing the caller’s produce permission. The Functions Worker publishes the message using its own broker‑client credentials, so the message appears to come from the Worker rather than the original caller. This flaw allows the integrity of data streams to be compromised, as consumers may receive messages that should not be allowed to exist. The likely attack vector is the Functions Worker REST API, based on the description of the endpoint that can be accessed by authenticated callers. The vulnerability is an Authorization issue classified as CWE‑862.

Affected Systems

Apache Pulsar versions from 2.0.0-rc1-incubating up to 4.0.13 and from 4.1.0 to 4.2.4 are vulnerable. Users of the 4.0.x line should upgrade to at least 4.0.14, while users of the 4.1.x or 4.2.x lines should upgrade to at least 4.2.5. The current supported releases—4.0.x and 5.0.x—include the fix, but older lines remain susceptible. The issue exists only when authorization is enabled; disabling authorization removes the check entirely.

Risk and Exploitability

The CVSS score of 4.9 indicates moderate severity. The EPSS score is not provided in the data, so the exploitation likelihood is uncertain and cannot be quantified. The attack vector is inferred from the description of the REST API endpoint, which an authenticated user can reach to trigger the function. The CVE description does not indicate the presence of an exploit, and the vulnerability is not listed in CISA KEV, suggesting no widely documented exploits as of now. Overall, the risk is moderate, with the main concern being the potential to compromise topic integrity without requiring a running function instance.

Generated by OpenCVE AI on October 22, 2026 at 02:21 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade to Apache Pulsar 4.0.14 or newer, or 4.2.5 or newer, depending on your release line.
  • Restrict the “functions” permission to trusted roles so that only authorized administrators can trigger functions.
  • Restrict access to the Functions Worker REST API by placing it behind a firewall or internal network boundary, ensuring only trusted services can call it.
  • Configure the broker‑client credentials used by the Functions Worker to have only the minimal produce permissions required, avoiding superuser rights when possible.

Generated by OpenCVE AI on October 22, 2026 at 02:21 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 23 Oct 2026 23:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Thu, 22 Oct 2026 15:30:00 +0000

Type Values Removed Values Added
First Time appeared Apache
Apache pulsar
Vendors & Products Apache
Apache pulsar

Wed, 21 Oct 2026 18:30:00 +0000

Type Values Removed Values Added
Description 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.
Title Apache Pulsar: Function trigger publishes to the input topic without checking the caller's produce permission
Weaknesses CWE-862
References
Metrics cvssV4_0

{'score': 4.9, 'vector': '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'}


cve-icon MITRE

Status: PUBLISHED

Assigner: apache

Published:

Updated: 2026-10-23T21:59:37.544Z

Reserved: 2026-10-06T06:43:59.382Z

Link: CVE-2026-105935

cve-icon Vulnrichment

Updated: 2026-10-23T20:42:34.549Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-10-21T19:16:56.320

Modified: 2026-10-23T22:16:51.977

Link: CVE-2026-105935

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-22T14:57:05Z

Weaknesses