🔍 CVE-2025-65015

7.5
CVSS Score
HIGH
2025-11-18
2026-10-18 20:10
✅ 완료

🇰🇷 한글 설명

Python의 joserfc 라이브러리에서 ExceededSizeError 예외 발생 시 디코딩되지 않은 JWT 토큰의 일부를 예외 메시지에 포함하는 취약점이 발견되었습니다. 공격자가 매우 큰 JWT 페이로드를 전송할 경우, Python 로깅 시스템이나 Sentry와 같은 진단 도구가 거대한 로그 메시지를 처리하게 되어 시스템 자원을 과도하게 소모할 수 있습니다.

💡 쉬운 설명

해커가 아주 긴 가짜 인증 토큰을 보내면, 프로그램이 오류를 기록하는 과정에서 너무 큰 데이터를 처리하느라 시스템이 느려지거나 멈출 수 있습니다. 이는 로그 기록 도구가 감당할 수 없는 양의 정보를 한꺼번에 처리하려고 할 때 발생합니다.

🇺🇸 원문 (English)

joserfc is a Python library that provides an implementation of several JSON Object Signing and Encryption (JOSE) standards. In versions from 1.3.3 to before 1.3.5 and from 1.4.0 to before 1.4.2, the ExceededSizeError exception messages are embedded with non-decoded JWT token parts and may cause Python logging to record an arbitrarily large, forged JWT payload. In situations where a misconfigured — or entirely absent — production-grade web server sits in front of a Python web application, an attacker may be able to send arbitrarily large bearer tokens in the HTTP request headers. When this occurs, Python logging or diagnostic tools (e.g., Sentry) may end up processing extremely large log messages containing the full JWT header during the joserfc.jwt.decode() operation. The same behavior also appears when validating claims and signature payload sizes, as the library raises joserfc.errors.ExceededSizeError() with the full payload embedded in the exception message. Since the payload is already fully loaded into memory at this stage, the library cannot prevent or reject it. This issue has been patched in versions 1.3.5 and 1.4.2.

📍 영향받는 시스템

joserfc library versions 1.3.3 to < 1.3.5 and 1.4.0 to < 1.4.2

⚔️ 공격 벡터

HTTP 요청 헤더에 비정상적으로 큰 크기의 Bearer 토큰을 포함하여 전송

🛡️ 대응 방법

joserfc 라이브러리를 1.3.5 또는 1.4.2 이상의 버전으로 업데이트

🔧 검증 코드

출력된 버전이 1.3.5 미만이거나 1.4.0 이상 1.4.2 미만인지 확인

Shell / Script
pip show joserfc | grep Version

📊 CVSS Vector String

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