rootpwn

high · CVSS v3 8.1

CVE-2026-61591

The djust library (used with Django) allowed unsigned client‑side state snapshots to be accepted as trusted data on reconnect. An attacker c

Overview

The djust library (used with Django) allowed unsigned client‑side state snapshots to be accepted as trusted data on reconnect. An attacker could modify the snapshot to alter public view attributes such as `is_admin`, enabling privilege escalation or business‑logic tampering.

Description

djust provides Phoenix LiveView-style reactive server-side rendering for Django with Rust-powered performance. Prior to version 1.0.7, for views that opt into state snapshots, the snapshot `state_json` embedded in the client page was restored on reconnect as trusted view state with no integrity check. A client could edit the unsigned `state_json` in their page and return it in the reconnect mount frame to inject arbitrary view attributes — e.g. flip `is_admin` to `True`, or change `account_id` / `balance` — escalating privilege or tampering with business state held in public view attributes (the normal djust pattern). This issue is fixed in djust 1.0.7. State snapshots are signed; unsigned or forged snapshots are rejected on the back-navigation restore path. As a workaround, do not enable state snapshots; do not hold authorization/ownership state in public view attributes.

Impact

Integrity and authorization are compromised: attackers can change public view attributes to gain elevated privileges or manipulate business data. Confidentiality and availability are not directly affected.

Remediation

Upgrade to djust 1.0.7 or later, where state snapshots are signed and verified. As an interim measure, disable state snapshots or avoid storing authorization/ownership data in public view attributes.

Risk context

High severity (CVSS 8.1). The flaw permits privilege escalation and data tampering, making it a critical issue for applications that rely on djust for reactive rendering.

Affected products

  • djust
  • Django djust
  • djust 1.0.6 and earlier

Scores

Severity
high
CVSS v2
8.5
CVSS v3
8.1
CVSS v4
EPSS

privilege-escalation state-snapshot client-side django djust integrity patch

← All CVEs