psf-pulsar-check(8)

Script: /opt/psf-security-patches/pulsar/pulsar-check.sh. Tool page: Apache Pulsar. Source. With the package installed: man psf-pulsar-check.

Apache Pulsar October 2026: read-only checker  (v1)
CVE-2026-105869 (broker, forged JWT roles, critical 9.2)
CVE-2026-105942 (broker, proxied requests, high 7.7)
CVE-2026-105944 (Pulsar Manager, missing authentication, CVSS 10, retired)

If this software is helpful, consider a donation to our 501c3 nonprofit:
https://privacysafe.foundation

BROKER. The Apache Pulsar PMC published 14 advisories on 21 October 2026, all fixed in
4.0.14, 4.2.5 and 5.0.0. This script covers two that depend on configuration:

  CVE-2026-105869  2.8.1 before 4.0.14, and 4.1.0 before 4.2.5. With
                   MultiRolesTokenAuthorizationProvider and a NON-EMPTY
                   anonymousUserRole, HTTP and WebSocket requests whose credentials
                   FAIL authentication fall back to the anonymous role, and the
                   provider then authorizes them with the roles listed in the
                   UNVERIFIED bearer token. A forged or unsigned token can claim a
                   superuser role. The binary protocol is not affected.
  CVE-2026-105942  2.8.1 before 4.0.14, and 4.1.0 before 4.2.5. For requests a proxy
                   sends on behalf of a user, the broker authorized the original
                   principal with the proxy's own authentication data: with
                   MultiRolesTokenAuthorizationProvider the user gains the roles in
                   the proxy's token, and, whatever the provider, the tenant admin
                   check of a proxied admin REST request passed without checking the
                   original principal when the proxy role was a tenant admin.
                   Only relevant when a proxy role is configured (proxyRoles).

Neither is reachable on a default broker: authentication, authorization,
anonymousUserRole and proxyRoles are all off or empty by default.
The other twelve advisories in the same announcement are fixed by the same
upgrade; they are not counted separately here.

PULSAR MANAGER. CVE-2026-105944 (CVSS 10): in 0.3.0 and later anyone who can reach
Pulsar Manager over the network can take full control of it (the call that creates the
first administrator is available without authentication and stays available after
setup), and in all versions, when it holds an HTTP authentication credential for a
cluster, any user who can reach it can perform the admin operations that credential
permits and can have it send the credential to a host of their choosing. Affected:
0.1.0 through 0.4.0, which is every release. The Pulsar PMC has RETIRED it: there is no
fix and there will not be one. The advice is to stop using it and remove it.

This script is read-only. It finds Pulsar brokers (by their jars), reads their
broker.conf and standalone.conf, scans configuration files, compose files, Helm values
and env files for the exposing settings, and looks for Pulsar Manager (jars, running
processes, listeners on 7750 and 9527, container images). It does not open the
container images: for containers it reads the files beside them and tells you to
check the tag.

Usage:
  ./pulsar-check.sh [command] [DIR ...]

  check (default)  scan DIR (default /opt /srv /usr/local /var/lib /etc /home /root).
                   Exit 0 = nothing exposed, 1 = an affected broker with an exposing
                   configuration, an exposing configuration of unknown version, or
                   Pulsar Manager present.
  version          print the script version.
Containers: with no argument the check also looks in running docker and podman containers
(SCAN_CONTAINERS=1, the default; 0 skips them). A read-only probe copies the broker jar names
(empty files, only the name carries the version) and, from each configuration file, only the lines
that mention authorizationProvider, anonymousUserRole, authorizationEnabled or proxyRoles, so
tokens and secret keys never leave the container. This script then runs once per container in
isolation against that copy. Paths shown as .../docker_NAME/... are inside the container NAME.

The Security Patches software and this documentation are dedicated to the public domain under CC0 1.0 Universal. Other pages on privacysafe.app/docs are CC BY-SA 4.0 unless the page says otherwise.

The PrivacySafe Ecosystem

Shop at Ivy Cyber

Ivy Cyber offers PrivacySafe products and services in the USA and has partnerships with 3NSoft in Canada and Kuip Limited in the European Union. Enterprise services and consulting are available at ivycyber.com

PrivacySafe Foundation is a 501(c)(3) nonprofit public charity that supports the development of the PrivacySafe applications, along with the components they rely upon: 3NWeb protocols, filesystem, documentation, and reference implementations.

PrivacySafe Foundation

Donations to PrivacySafe Foundation support education, research, documentation, and public code. Purchases from Ivy Cyber support PrivacySafe products, services, hosting, and technical support. Together, we're building a better web.