🇰🇷 한글 설명
Apache Pulsar 브로커의 트랜잭션 관리 REST API에서 인증된 사용자라면 권한에 관계없이 타 테넌트의 트랜잭션 메타데이터 및 통계 정보를 조회할 수 있는 취약점이 발견되었습니다. 이 취약점은 트랜잭션 기능이 활성화된 경우에만 영향을 미치며, 메시지 내용 자체를 읽거나 트랜잭션을 수정하는 것은 불가능합니다.
💡 쉬운 설명
로그인만 할 수 있는 사용자라면 다른 사용자의 트랜잭션 정보나 통계 데이터를 몰래 훔쳐볼 수 있는 보안 허점이 있습니다. 다만, 실제 메시지 내용을 읽거나 데이터를 조작할 수는 없습니다.
🇺🇸 원문 (English)
The Apache Pulsar broker exposes a transaction administration REST API under /admin/v3/transactions. When authentication and authorization are enabled, most of the read endpoints of this API verify only that the request is authenticated and that the broker serves the requested topic or transaction coordinator. They do not check whether the caller is permitted to access the tenant, namespace or topic whose data is returned. The endpoints that modify state, which abort a transaction or scale the transaction coordinators, correctly require super-user access and are not affected.
As a result, any authenticated user, including one that has been granted no permissions, can read transaction coordinator and transaction information belonging to other tenants. This includes the list of transaction coordinators with the broker service URLs that serve them, transaction coordinator statistics and internal statistics, transaction metadata including the names of the topics and subscriptions a transaction involves and the principal that opened it, the list of long-running transactions on a transaction coordinator, transaction buffer and pending acknowledgement statistics and internal statistics for any topic and subscription, and whether a given message position of a subscription is currently held in a pending transactional acknowledgement.
The disclosure of transaction metadata and statistics can only occur when transaction support is enabled in the broker (transactionCoordinatorEnabled, which is disabled by default). When transaction support is disabled, these endpoints return no transaction data; the only residual effect is that one endpoint's error response can reveal whether a named topic exists in another tenant.
The impact is limited to disclosure of transaction-related metadata and statistics across tenant boundaries. The issue does not allow reading message contents, modifying or aborting transactions, or changing any configuration.
This issue affects Apache Pulsar versions from 2.8.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/.
Users who cannot upgrade immediately and do not use Pulsar transactions should keep transaction support disabled. Where transactions are required, restricting network access to the broker's admin HTTP endpoints to trusted administrative clients reduces the exposure.
📍 영향받는 시스템
Apache Pulsar 2.8.0 ~ 4.0.13, 4.1.0 ~ 4.2.4
⚔️ 공격 벡터
인증된 사용자가 권한 검증이 미흡한 /admin/v3/transactions API 엔드포인트에 접근하여 타 테넌트 정보 조회
🛡️ 대응 방법
Apache Pulsar를 4.0.14 또는 4.2.5 이상의 패치된 버전으로 업그레이드하거나, 트랜잭션 기능을 비활성화하십시오.
🔧 검증 코드
출력된 버전이 취약한 버전 범위(2.8.0~4.0.13 또는 4.1.0~4.2.4)에 해당하는지 확인합니다.
💻 영향받는 소프트웨어
IBM Security Verify Access