CVE-2026-61594 in djust
요약
\~에 의해 VulDB • 2026. 09. 17.
djust는 Rust 기반의 성능을 제공하며 Django에서 Phoenix LiveView 스타일의 반응형 서버 측 렌더링을 제공합니다. 버전 1.0.7 이전에서는 라이브(WebSocket) 트랜스포트가 `check_view_auth`를 통해 마운트를 인증하지만, Django의 `View.dispatch()` 체인은 사용하지 않습니다. 그 결과 표준 Django 권한 부여 메커니즘인 `LoginRequiredMixin`, `PermissionRequiredMixin`, `UserPassesTestMixin`, `@method_decorator(login_required, name="dispatch")`, 그리고 사용자 정의 `dispatch()` 가드와 djust 관리자 확장 프로그램의 staff 게이트(HTTP `as_view` 래퍼에서만 적용됨)는 초기 HTTP GET 요청 시에는 강제되지만 WebSocket에서는 모든 이벤트 및 상태가 흐르는 경로에서 묵시적으로 우회됩니다. 익명 또는 권한이 부족한 클라이언트는 WebSocket을 열고 이러한 뷰(관리자 목록/생성/변경/삭제 포함)를 마운트하여 해당 핸들러를 디스패치할 수 있습니다. 이 문제는 djust 1.0.7에서 수정되었습니다. `check_view_auth`는 이제 모든 트랜스포트에서 Django의 `AccessMixin` 계열을 준수합니다. 새로운 시스템 체크 S004는 런타임이 안전하게 재생할 수 없는 인증 패턴(데코레이터/재정의된 `dispatch` 형태)에 대해 시작 시 명확한 오류를 발생시킵니다. 또한 관리자 기본 믹스인은 `login_required = True`와 활성 상태의 staff `check_permissions` 게이트를 선언합니다. 우회 조치로, HTTP 전용 믹스인이나 데코레이터 대신 모든 트랜스포트에서 준수되는 djust의 `login_required`, `permission_required`, `check_permissions` 속성을 사용하여 뷰에 게이트를 설정하십시오.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.