{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-61591","assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","state":"PUBLISHED","assignerShortName":"GitHub_M","dateReserved":"2026-07-10T17:12:17.237Z","datePublished":"2026-09-16T21:57:26.957Z","dateUpdated":"2026-09-17T13:22:26.195Z"},"containers":{"cna":{"title":"djust: Unsigned client state snapshot is restored as trusted view state (privilege escalation / state injection)","problemTypes":[{"descriptions":[{"cweId":"CWE-345","lang":"en","description":"CWE-345: Insufficient Verification of Data Authenticity","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-915","lang":"en","description":"CWE-915: Improperly Controlled Modification of Dynamically-Determined Object Attributes","type":"CWE"}]}],"metrics":[{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"NONE","baseScore":8.1,"baseSeverity":"HIGH","confidentialityImpact":"HIGH","integrityImpact":"HIGH","privilegesRequired":"LOW","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","version":"3.1"}}],"references":[{"name":"https://github.com/djust-org/djust/security/advisories/GHSA-c67v-vqrp-m5wj","tags":["x_refsource_CONFIRM"],"url":"https://github.com/djust-org/djust/security/advisories/GHSA-c67v-vqrp-m5wj"},{"name":"https://github.com/djust-org/djust/releases/tag/v1.0.7","tags":["x_refsource_MISC"],"url":"https://github.com/djust-org/djust/releases/tag/v1.0.7"}],"affected":[{"vendor":"djust-org","product":"djust","versions":[{"version":"< 1.0.7","status":"affected"}]}],"providerMetadata":{"orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","shortName":"GitHub_M","dateUpdated":"2026-09-16T21:57:26.957Z"},"descriptions":[{"lang":"en","value":"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."}],"source":{"advisory":"GHSA-c67v-vqrp-m5wj","discovery":"UNKNOWN"}},"adp":[{"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-09-17T13:22:03.701238Z","id":"CVE-2026-61591","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"title":"CISA ADP Vulnrichment","providerMetadata":{"orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP","dateUpdated":"2026-09-17T13:22:26.195Z"}}]}}