{"id":"CVE-2026-105936","kind":"vulnerability","aliases":["CVE-2026-105936"],"related":[],"title":"Apache Pulsar: any authenticated client can list installed connector catalog","description":"The Pulsar Functions worker REST API provides two endpoints that return the catalog of Pulsar IO connectors installed on the functions worker: the worker connectors endpoint (/admin/v2/worker/connectors) and the deprecated functions connectors endpoint (/admin/v2/functions/connectors and /admin/v3/functions/connectors). When authorization is enabled, the worker connectors endpoint requires super-user access. The functions connectors endpoint, served both by the functions worker and by a broker running the functions worker, returns the same catalog without this check.\n\nAs a result, when authentication and authorization are enabled, any authenticated client can read the connector catalog through the functions connectors endpoint, regardless of the permissions granted to its role and without super-user access. Unauthenticated requests are rejected unless anonymous access is configured with an anonymous user role.\n\nThe catalog contains the connector type definitions installed in the functions worker's connectors directory: the connector name, its description, and the source, sink and configuration class names. It does not contain configured source or sink instances, their configuration values or credentials, and an installed connector type does not indicate that a connector is configured or running. The impact is limited to disclosure of this metadata, which can include the names and descriptions of custom connectors installed by the operator. The issue does not allow modifying the catalog or managing connectors. Connector definitions that have a source or sink class are also returned by the built-in sources and sinks endpoints to authenticated clients.\n\nIn fixed versions, the functions connectors endpoint applies the same checks as the worker connectors endpoint, so that it requires super-user access when authorization is enabled. Clients that are not super-users can use the built-in sources and sinks endpoints to list the available connector types.\n\nThis issue affects Apache Pulsar versions from 2.4.1 before 4.0.14 and from 4.1.0 before 4.2.5.\n\n- 4.0.x version users should upgrade to at least 4.0.14.\n- 4.1.x and 4.2.x version users should upgrade to at least 4.2.5.\n\nUsers operating versions prior to those listed above should upgrade to the aforementioned patched versions or newer versions.\n\nThe 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/.","summary":"The Pulsar Functions worker's deprecated functions connectors endpoint returns the installed connector catalog without the super-user check that the worker connectors endpoint applies. An authenticated client with any role can read connector names, descriptions and class names, but cannot change the catalog or see configured connector instances or credentials.","severity":"medium","cvss":5.3,"epss":0.00408,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["apache-pulsar","functions-worker","multi-tenant","package","self-hosted"],"not_affected_if":["anonymous-access-disabled","authorization-disabled","default-config","no-functions-worker"],"how_to_check":"- Check the Pulsar version the cluster runs (`pulsar version` or the broker/functions worker image tag) against the affected ranges: 2.4.1 to before 4.0.14, and 4.1.0 to before 4.2.5.\n- Confirm whether the functions worker is enabled and whether authentication and authorization are on in `broker.conf` (`authenticationEnabled`, `authorizationEnabled`).\n- Test whether a non-super-user token can call `/admin/v3/functions/connectors` and receive a catalog.","fix":"- Upgrade Apache Pulsar 4.0.x installs to `4.0.14` or newer.\n- Upgrade Apache Pulsar 4.1.x and 4.2.x installs to `4.2.5` or newer.\n- Until upgraded, non-super-user clients can use the built-in sources and sinks endpoints to list connector types.","status":"open","published_at":"2026-10-21T19:16:56+00:00","first_seen_at":"2026-10-23T21:57:29+00:00","triaged_at":"2026-10-25T04:20:48+00:00","updated_at":"2026-10-25T04:20:48+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-25T04:20:48Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade Apache Pulsar 4.0.x installs to `4.0.14` or newer.\n- Upgrade Apache Pulsar 4.1.x and 4.2.x installs to `4.2.5` or newer.\n- Until upgraded, non-super-user clients can use the built-in sources and sinks endpoints to list connector types.","reach":"network","title":"Apache Pulsar: any authenticated client can list installed connector catalog","impact":"low","summary":"The Pulsar Functions worker's deprecated functions connectors endpoint returns the installed connector catalog without the super-user check that the worker connectors endpoint applies. An authenticated client with any role can read connector names, descriptions and class names, but cannot change the catalog or see configured connector instances or credentials.","category":"package","nicknames":[],"who_cares":["apache-pulsar","self-hosted","functions-worker","multi-tenant"],"confidence":0.8,"needs_auth":"yes","worst_case":"Authenticated clients read custom connector names and descriptions.","analyst_note":"","how_to_check":"- Check the Pulsar version the cluster runs (`pulsar version` or the broker/functions worker image tag) against the affected ranges: 2.4.1 to before 4.0.14, and 4.1.0 to before 4.2.5.\n- Confirm whether the functions worker is enabled and whether authentication and authorization are on in `broker.conf` (`authenticationEnabled`, `authorizationEnabled`).\n- Test whether a non-super-user token can call `/admin/v3/functions/connectors` and receive a catalog.","needs_analyst":false,"not_affected_if":["authorization-disabled","no-functions-worker","default-config","anonymous-access-disabled"],"who_is_affected":"Clusters that run the Pulsar Functions worker with authentication and authorization enabled are exposed, because the deprecated functions connectors endpoint skips the super-user check there. Exposure matters most when operators have installed custom connectors whose names or descriptions are sensitive. Clusters with authorization off, no functions worker, or only super-user clients can skip it.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"medium"},"cost_usd":0.000787,"input_tokens":4031,"output_tokens":768,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-105936':13A,16A '-2026':12A,15A '/admin/v2/functions/connectors':115C '/admin/v2/worker/connectors':108C '/admin/v3/functions/connectors':117C '/contribute/release-policy/.':450C '2.4.1':379C '4.0':387C,436C '4.0.14':381C,396C '4.1':397C '4.1.0':384C '4.2':400C '4.2.5':386C,409C '5.0':439C 'access':130C,191C,198C,344C 'affect':374C 'aforement':422C 'allow':290C 'also':307C 'anonym':197C,203C 'apach':1A,18B,375C,431C 'apache-pulsar':17B 'api':87C 'appli':55B,328C 'authent':4A,57B,160C,166C,319C 'author':119C,162C,346C 'avail':369C,446C 'broker':144C 'built':312C,360C 'built-in':311C,359C 'cannot':71B 'catalog':10A,43B,74B,94C,152C,172C,207C,293C 'chang':72B 'check':49B,155C,331C 'class':68B,232C,305C 'client':5A,58B,167C,320C,349C 'configur':77B,200C,231C,238C,244C,260C 'connector':9A,37B,42B,53B,64B,78B,98C,106C,113C,124C,133C,171C,176C,210C,219C,222C,251C,258C,281C,296C,297C,326C,335C,370C 'contain':208C,237C 'credenti':81B,247C 'current':429C 'custom':280C 'cve':11A,14A 'definit':212C,298C 'deprec':35B,111C 'descript':66B,225C,278C 'directori':220C 'disclosur':268C 'enabl':121C,164C,348C 'endpoint':38B,54B,90C,107C,114C,125C,134C,177C,317C,327C,336C,365C 'fix':322C 'function':21B,32B,36B,84C,102C,112C,132C,139C,147C,175C,216C,325C 'functions-work':20B 'grant':182C 'host':29B 'impact':264C 'includ':274C 'indic':255C 'instal':8A,41B,99C,213C,250C,282C 'instanc':79B,242C 'io':97C 'issu':287C,373C 'least':395C,408C 'limit':266C 'line':434C 'list':7A,367C,416C 'manag':295C 'metadata':271C 'modifi':291C 'multi':24B 'multi-ten':23B 'name':65B,69B,223C,233C,276C 'newer':426C 'oper':285C,411C 'packag':26B 'patch':423C 'permiss':181C 'prior':413C 'provid':88C 'pulsar':2A,19B,31B,83C,96C,376C,432C 'pulsar.apache.org':449C 'pulsar.apache.org/contribute/release-policy/.':448C 'read':63B,169C 'regardless':178C 'reject':195C 'releas':433C 'request':193C 'requir':126C,340C 'rest':86C 'result':158C 'return':39B,92C,149C,308C 'role':61B,185C,205C 'run':145C,262C 'schedul':444C 'see':76B 'self':28B 'self-host':27B 'serv':135C 'sink':229C,241C,304C,316C,364C 'sourc':228C,239C,302C,314C,362C 'super':47B,128C,189C,342C,354C 'super-us':46B,127C,188C,341C,353C 'support':430C,442C 'tenant':25B 'two':89C 'type':211C,252C,371C 'unauthent':192C 'unless':196C 'upgrad':392C,405C,419C 'use':357C 'user':48B,129C,190C,204C,343C,355C,390C,403C,410C 'valu':245C 'version':323C,377C,389C,402C,412C,424C,427C,443C 'without':44B,153C,187C 'worker':22B,33B,52B,85C,103C,105C,123C,140C,148C,217C,334C 'x':388C,398C,401C,437C,440C","nicknames":[],"mitigations":[],"who_affected":"Clusters that run the Pulsar Functions worker with authentication and authorization enabled are exposed, because the deprecated functions connectors endpoint skips the super-user check there. Exposure matters most when operators have installed custom connectors whose names or descriptions are sensitive. Clusters with authorization off, no functions worker, or only super-user clients can skip it.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-21T19:16:56+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"security@apache.org","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-105936","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-105936","severity":null,"published_at":"2026-10-21T19:16:56+00:00","modified_at":"2026-10-23T22:16:52+00:00","first_seen_at":"2026-10-23T21:57:29+00:00","fetched_at":"2026-10-23T22:29:02+00:00","note":null},{"source":"epss","external_id":"CVE-2026-105936","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-105936","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-24T13:15:54+00:00","fetched_at":"2026-10-24T13:15:54+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}