CVE-2026-61593 in djust
摘要
由 VulDB • 2026-09-16
djust 为 Django 提供了类似 Phoenix LiveView 的响应式服务端渲染,并具备由 Rust 驱动的性能优势。在 1.0.7 版本之前,SSE(服务器发送事件)客户端到服务器的 POST 端点使用了 `@csrf_exempt`(免除 CSRF 验证),且 SSE GET 流端点缺乏 Origin 检查,因此跨源页面可以操控受害者 cookie 认证的 SSE 会话:强制受害者的浏览器获取流 URL(这将作为受害者创建并挂载 LiveView),并以 `credentials: include` 向消息端点发送 POST 请求,从而以受害者身份触发状态更改的事件处理程序。URL 中的 `session_id` 由客户端选择(仅验证 UUID *格式*),因此它不是 CSRF token;而作为 `text/plain` 发送的 JSON body 属于 CORS 简单请求,无需预检。该问题已在 1.0.7 版本中修复。所有三个 SSE 端点均将请求 `Origin` 与 `ALLOWED_HOSTS` 进行验证(镜像 WebSocket CSWSH 防御机制),并拒绝跨源请求返回 403;POST 端点还要求 `Content-Type: application/json`(否则返回 415),从而关闭了通过 `text/plain` 简单请求进行的绕过。作为变通方案,可以禁用 SSE 传输层,或在其前端部署强制执行 Origin 白名单的代理服务器。
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.