🇰🇷 한글 설명
Pomerium의 HPKE V2 값 처리 과정에서 출력 메모리 제한 없이 zstd 압축 해제를 수행하는 취약점이 발견되었습니다. 공격자가 조작된 압축 데이터를 전송할 경우 메모리가 급격히 소모되어 서비스 거부(DoS) 상태를 유발할 수 있습니다. 이 문제는 0.32.8 버전에서 수정되었습니다.
💡 쉬운 설명
공격자가 아주 작은 크기의 압축 파일을 보내면 서버가 이를 풀다가 메모리를 엄청나게 사용하여 서버가 멈추게 만드는 공격입니다. 이로 인해 보호받고 있는 서비스에 접속할 수 없게 됩니다.
🇺🇸 원문 (English)
Pomerium is an identity and context-aware access proxy. Prior to 0.32.8, decodeQueryStringV2 in pkg/hpke/url.go performs zstd decompression of attacker-controlled data without an output-memory limit when DecryptURLValues processes HPKE V2 values for Stateless.Callback in internal/authenticateflow/stateless.go. In hosted or stateless authentication deployments, an unauthenticated attacker can obtain the receiver key from /.well-known/pomerium/hpke-public-key, provide a matching attacker-controlled sender key, and send a compressed payload to /.pomerium/callback that expands before validateSenderPublicKey rejects the sender. This can allocate hundreds of megabytes per request, exhaust proxy memory, crash or degrade the process, and block access to applications protected by the deployment. Stateful deployments are not affected because the stateful callback verifies its HMAC signature before decryption and decompression. This issue is fixed in version 0.32.8.
📍 영향받는 시스템
Pomerium 0.32.8 미만 버전 (Hosted 또는 Stateless 인증 배포 환경)
⚔️ 공격 벡터
인증되지 않은 공격자가 조작된 압축 페이로드를 /.pomerium/callback 엔드포인트로 전송
🛡️ 대응 방법
Pomerium를 0.32.8 버전 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 0.32.8 미만인 경우 해당 취약점에 노출된 상태입니다.
pomerium --version 2>/dev/null | grep -E '0\.(3[0-2]\.[0-7]|3[2-9]\.|[4-9][0-9]\.)|\.'
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
💻 영향받는 소프트웨어
IBM Verify Identity Access