🇰🇷 한글 설명
WebOb 1.8.10 미만 버전에서 HTTP Location 헤더 정규화 과정 중 오픈 리다이렉트 취약점이 존재합니다. Python 3.10의 urlsplit 동작 방식 때문에 탭, 캐리지 리턴, 줄바꿈 문자가 포함된 리다이렉트 대상이 공격자가 제어하는 호스트로 재해석될 수 있습니다. 이로 인해 사용자가 의도하지 않은 외부 사이트로 유도될 수 있습니다.
💡 쉬운 설명
웹사이트가 다른 페이지로 연결해줄 때, 공격자가 특수 문자를 섞어 만든 가짜 주소로 사용자를 몰래 보낼 수 있는 문제입니다. 이를 통해 사용자는 안전한 사이트인 줄 알고 클릭했지만 실제로는 위험한 피싱 사이트로 이동하게 될 수 있습니다.
🇺🇸 원문 (English)
WebOb provides objects for HTTP requests and responses. Prior to 1.8.10, the normalization of the HTTP Location header during a redirect is vulnerable to an open redirect: WebOb joins the redirect target to the request URI using Python's urljoin, and since Python 3.10 the underlying urlsplit strips ASCII tab, carriage return, and newline characters before parsing, so a redirect target containing such characters can be reinterpreted as a protocol-relative URL whose authority is an attacker-controlled host. This bypasses the CVE-2024-42353 fix that escaped a leading double slash, allowing an attacker who influences the redirect location to send users to an arbitrary external site instead of the intended one. This vulnerability is fixed in 1.8.10.
📍 영향받는 시스템
WebOb 버전 1.8.10 미만
⚔️ 공격 벡터
리다이렉트 대상 URL에 ASCII 제어 문자(탭, 줄바꿈 등)를 삽입하여 프로토콜 상대 경로로 변조
🛡️ 대응 방법
WebOb 라이브러리를 최신 버전인 1.8.10 이상으로 업데이트
🔧 검증 코드
출력된 버전 번호가 1.8.10보다 낮으면 취약한 상태입니다.
pip show WebOb | grep Version