🇰🇷 한글 설명
Vulnerability-Lookup의 권한 우회 취약점으로, 비활성 또는 미확인 계정이 /pubsub/subscribe/<topic> 엔드포인트를 통해 SSE 스트림을 구독할 수 있는 문제입니다. Pub/Sub 인터페이스의 인증 방식이 계정의 활성화 및 확인 상태를 검증하지 않아 발생하며, 이로 인해 미검토 데이터와 같은 민감한 정보가 노출될 수 있습니다.
💡 쉬운 설명
회원가입 후 이메일 인증을 받지 않은 가짜 계정으로도 실시간 데이터 스트림을 몰래 훔쳐볼 수 있는 보안 구멍입니다. 인증되지 않은 사용자가 시스템의 실시간 정보를 가로챌 수 있는 위험이 있습니다.
🇺🇸 원문 (English)
An authorization bypass vulnerability in Vulnerability-Lookup allowed inactive or unconfirmed accounts to subscribe to Server-Sent Events (SSE) streams through the /pubsub/subscribe/<topic> endpoint.
The token_required decorator used by the Pub/Sub interface authenticated requests solely by matching the X-API-KEY header against an existing user API key. Unlike the REST API authentication mechanism, it did not verify the account's is_active and is_confirmed state.
Because the self-registration process issues an API key before account confirmation is completed, an attacker could create an account and immediately use the resulting API key to access Pub/Sub topics that should only be available to active, confirmed users. This could expose stream events that would otherwise be inaccessible through the REST API, including newly submitted or not-yet-moderated data such as comments.
The vulnerability results from inconsistent authorization enforcement between the REST API and the SSE streaming interface.
The patch corrects the issue by requiring accounts to be both active and confirmed before permitting access to Pub/Sub streams, bringing the SSE authorization boundary in line with the REST API.
📍 영향받는 시스템
Vulnerability-Lookup (SSE/Pub/Sub 인터페이스를 사용하는 모든 버전)
⚔️ 공격 벡터
가입 직후 발급된 API 키를 사용하여 인증되지 않은 SSE 엔드포인트에 접근
🛡️ 대응 방법
SSE 인터페이스에서도 계정의 is_active 및 is_confirmed 상태를 반드시 확인하도록 인증 로직 수정
🔧 검증 코드
비활성 계정의 API 키로 요청 시 200 OK가 아닌 401 Unauthorized 또는 403 Forbidden이 반환되어야 함
curl -i -H 'X-API-KEY: <unconfirmed_api_key>' https://<target>/pubsub/subscribe/<topic>
💻 영향받는 소프트웨어
IBM Security Verify Access