🔍 CVE-2026-84161

4.9
CVSS Score
MEDIUM
2026-11-06
2026-11-06 11:17
✅ 완료

🇰🇷 한글 설명

CodeChecker 6.29.0에서 store.analysis_statistics_dir 설정이 활성화된 경우, PRODUCT_STORE 권한을 가진 네트워크 클라이언트가 storeAnalysisStatistics 메서드로 압축 해제 크기 제한이 없는 Base64 데이터를 전송할 수 있습니다. 이로 인해 메모리 및 디스크 증폭 공격이 가능하며 서비스 가용성이 저하될 수 있습니다. 해당 기능은 기본적으로 비활성화(null) 상태입니다.

💡 쉬운 설명

정상 권한을 가진 사용자가 매우 작은 데이터로 서버 메모리와 디스크를 가득 채워 분석 서버를 멈추게 할 수 있습니다. 이 기능은 기본적으로 꺼져 있어 설정을 켠 경우에만 위험합니다.

🇺🇸 원문 (English)

When an operator enables store.analysis_statistics_dir, a network client with PRODUCT_STORE permission for a product can call that product's storeAnalysisStatistics Thrift-over-HTTP method. CodeChecker 6.29.0 decodes the attacker-controlled Base64 string and passes the complete compressed input to one-shot zlib.decompress(). No maximum decompressed size is enforced. This gives a correctly authorized, non-superuser store account a high-ratio memory and persistent-disk amplification primitive. The complete output is first materialized as a Python bytes object and is then written to the configured statistics directory. A sufficiently scaled payload can exhaust the API worker or host memory and impair CodeChecker availability. The shipped value of store.analysis_statistics_dir is null, so the affected feature is disabled by default. The primary assessment does not rely on authentication being disabled. There is no authorization bypass and no path traversal in this report.

📍 영향받는 시스템

CodeChecker 6.29.0 (store.analysis_statistics_dir 설정을 활성화한 환경)

⚔️ 공격 벡터

PRODUCT_STORE 권한을 가진 인증된 사용자가 storeAnalysisStatistics 메서드에 고압축 Base64 페이로드를 보내 메모리와 디스크를 소진시킴

🛡️ 대응 방법

CodeChecker를 패치된 버전으로 업그레이드하거나, 패치 전까지 store.analysis_statistics_dir 설정을 비활성화(null)로 유지

🔧 검증 코드

첫 번째 출력에서 버전이 6.29.0이면 취약 버전이며, 두 번째 출력에서 analysis_statistics_dir 값이 null이 아니고 경로가 지정되어 있으면 기능이 활성화되어 위험하고, 설정이 없거나 null이면 기본 비활성 상태로 영향이 제한됩니다.

Shell / Script
pip show codechecker 2>/dev/null | grep -i version; grep -rn 'analysis_statistics_dir' $(python3 -c 'import codechecker_server,os;print(os.path.dirname(codechecker_server.__file__))' 2>/dev/null) ~/.codechecker* /etc/codechecker* 2>/dev/null | head -20

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Python