CVE-2026-105945: Apache Pulsar: Improper Validation of Package Name Components Allows Cross-Tenant Package Access in Filesystem Package Storage
The Pulsar Packages Management Service can be configured to store packages on the local filesystem of the broker by using the filesystem storage provider. Package names consist of a type, tenant, namespace, name and version. Authorization of package operations is based only on the tenant and namespace, while the storage location of a package is derived from all of these components. The version component of a package name was not validated, so it could contain URL-encoded path separators and parent directory references. The filesystem storage provider resolved such a version to a location belonging to a package in a different tenant or namespace. Because that location is inside the configured storage directory, the containment check that the filesystem storage provider performs in recent releases did not prevent the access.
An authenticated user who has the packages permission on any namespace could use this to download, overwrite or delete packages stored in other tenants or namespaces for which the user has no permission. Packages overwritten or deleted in this way may be used by Pulsar Functions, Sources or Sinks, so the issue can affect the integrity and availability of these components. If authentication is disabled, the operations are available to any client that can reach the broker's admin REST API.
This issue only affects deployments in which package management is enabled with the broker setting enablePackagesManagement and the filesystem storage provider (FileSystemPackagesStorageProvider) is configured with the setting packagesManagementStorageProvider. Package management is disabled by default, and the default storage provider, which stores packages in Apache BookKeeper, is not affected.
This issue affects Apache Pulsar versions from 2.10.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/.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Apache Pulsarto a version that resolves this vulnerability.Fixed in 4.0.14 - Upgrade
Upgrade
Apache Pulsarto a version that resolves this vulnerability.Fixed in 4.2.5
Event History
Frequently Asked Questions
Which deployments are exposed?
Deployments using the filesystem storage provider for Pulsar Packages Management are exposed. The issue applies to packages stored on the local filesystem of a broker.
What access does an attacker need?
An attacker must be authenticated and have packages permission on any namespace. They do not need permission for the tenant or namespace containing the targeted package.
What can an attacker do after exploitation?
They can download, overwrite, or delete packages in other tenants or namespaces by using crafted version components. Overwritten or deleted packages can affect the integrity and availability of Pulsar Functions, Sources, or Sinks that use them.
Does the filesystem provider's storage-directory containment check prevent this issue?
No. The crafted path resolves to another package location within the configured storage directory, so the containment check in recent releases does not prevent the unauthorized access.