🇰🇷 한글 설명
joserfc 라이브러리 1.7.4 미만 버전에서 JWS General JSON Serialization 처리 시 서명 배열이 비어 있어도 인증에 성공하는 취약점이 존재합니다. 이로 인해 공격자는 유효한 서명 없이도 임의의 페이로드를 전달하여 애플리케이션이 이를 신뢰하도록 조작할 수 있습니다. 해당 문제는 General JSON Serialization 경로에만 국한되며, 1.7.4 버전에서 수정되었습니다.
💡 쉬운 설명
서명이 비어 있는 가짜 문서를 보냈을 때, 프로그램이 검사를 건너뛰고 '정상'이라고 잘못 판단하는 문제입니다. 공격자가 인증 키 없이도 가짜 정보를 진짜처럼 속여서 보낼 수 있습니다.
🇺🇸 원문 (English)
joserfc is a Python library that provides an implementation of several JSON Object Signing and Encryption (JOSE) standards. Prior to 1.7.4, joserfc.jws.deserialize_json() accepts a JWS General JSON Serialization with an empty signatures array as authenticated. The verify_general_json() loop performs no iterations for the empty array and returns success because no signature check failed, allowing an attacker without a signing key to supply an arbitrary payload that relying applications may treat as authentic. The issue affects the General JSON Serialization path; compact JWS and JWT decoding, Flattened JSON serialization, and JWE JSON processing do not follow this vulnerable path. This issue is fixed in version 1.7.4.
📍 영향받는 시스템
joserfc 라이브러리 1.7.4 미만 버전 (General JSON Serialization 사용 시)
⚔️ 공격 벡터
서명 배열이 비어 있는 조작된 JWS General JSON 데이터를 전송하여 인증 우회
🛡️ 대응 방법
joserfc 라이브러리를 1.7.4 버전 이상으로 업데이트
🔧 검증 코드
출력된 버전 번호가 1.7.4보다 낮으면 취약한 상태입니다.
pip show joserfc 2>/dev/null | grep Version