🇰🇷 한글 설명
djust 1.0.7 미만 버전에서 SSE 세션이 인증된 사용자와 결합되지 않고 클라이언트가 선택한 session_id에만 의존하는 취약점이 발견되었습니다. 공격자가 유출된 session_id를 획득할 경우 피해자의 신원과 상태로 이벤트 핸들러를 실행할 수 있습니다. 이 문제는 1.0.7 버전에서 세션 생성 시 사용자를 바인딩함으로써 해결되었습니다.
💡 쉬운 설명
로그인 정보가 연결된 통로(SSE)가 사용자 본인인지 확인하지 않아, 다른 사람이 내 통로 번호만 알면 내 계정처럼 행동할 수 있는 문제입니다. 이를 통해 공격자가 사용자의 권한을 도용하여 명령을 내릴 수 있습니다.
🇺🇸 원문 (English)
djust provides Phoenix LiveView-style reactive server-side rendering for Django with Rust-powered performance. Prior to version 1.0.7, SSE sessions were keyed solely by a client-chosen `session_id` with no binding to the authenticated user — a control the WebSocket transport has but that was dropped on SSE. An attacker who learns (or a victim who leaks) a `session_id` could connect to the message endpoint and dispatch event handlers that execute with the victim's identity and state. This is fixed in djust 1.0.7. Each SSE session is bound to its owning principal at creation and cross-principal access is rejected; SSE session creation is additionally capped per principal. As a workaround, disable the SSE transport.
📍 영향받는 시스템
djust 1.0.7 미만 모든 버전
⚔️ 공격 벡터
유출된 session_id를 사용하여 메시지 엔드포인트에 연결 후 피해자 권한으로 이벤트 핸들러 실행
🛡️ 대응 방법
djust를 1.0.7 이상 버전으로 업데이트하거나, 임시 방편으로 SSE 전송 방식을 비활성화하십시오.
🔧 검증 코드
출력된 버전이 1.0.7 미만이면 취약한 상태입니다.
pip show djust | grep Version
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
💻 영향받는 소프트웨어
IBM Verify Identity Access