CVE-2026-61591: djust: Unsigned client state snapshot is restored as trusted view state (privilege escalation / state injection)

Published Sep 16, 2026
·
Updated

Impact For views that opt into state snapshots, the snapshot statejson embedded in the client page was restored on reconnect as trusted view state with no integrity check. A client could edit the unsigned statejson in their page and return it in the reconnect mount frame to inject arbitrary view attributes — e.g. flip isadmin to True, or change accountid / balance — escalating privilege or tampering with business state held in public view attributes (the normal djust pattern).

Patches Fixed in djust 1.0.7. State snapshots are signed; unsigned or forged snapshots are rejected on the back-navigation restore path.

Workarounds Do not enable state snapshots; do not hold authorization/ownership state in public view attributes.

Other sources

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 statejson embedded in the client page was restored on reconnect as trusted view state with no integrity check. A client could edit the unsigned statejson in their page and return it in the reconnect mount frame to inject arbitrary view attributes — e.g. flip isadmin to True, or change accountid / 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.

MITRE

Affected Software

1 affected componentFixes available
pip/djust<1.0.7
1.0.7

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade pip/djust to a version that resolves this vulnerability.

    Fixed in 1.0.7
  2. Upgrade

    Upgrade djust to a version that resolves this vulnerability.

    Fixed in 1.0.7
  3. Configuration

    As a workaround, do not enable state snapshots; do not hold authorization/ownership state in public view attributes.

    djust views (state snapshots) state snapshots = disabled
  4. Compensating control

    Ensure authorization/ownership state (e.g., admin flags and account/balance fields) is not stored in public view attributes that a client can modify.

Event History

Sep 16, 2026
Advisory Published
via GitHub·09:56 PM
Data Sourced
via GitHub·09:56 PM
DescriptionSeverityWeaknessAffected Software
CVE Published
via MITRE·09:57 PM
Data Sourced
via MITRE·09:57 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which deployments are exposed to this issue?

Deployments using djust views that have opted into state snapshots are exposed. The risk is greatest where public view attributes hold authorization, ownership, account, balance, or other business-sensitive state.

2

What does an attacker need to exploit it?

An attacker needs to be able to modify the unsigned state_json embedded in their client page and send it back in a reconnect mount frame. No user interaction is required, but the attack requires low privileges.

3

Are default configurations affected?

The issue applies only to views that enable state snapshots. Views that do not opt into state snapshots are not described as affected by this vulnerability.

4

What can be done if upgrading is not immediately possible?

Disable state snapshots and avoid storing authorization or ownership decisions in public view attributes. Do not treat client-restored public view state as trustworthy.

5

How can I determine whether the fix is present?

The issue is fixed in djust 1.0.7, where snapshots are signed and unsigned or forged snapshots are rejected on the back-navigation restore path.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203