Impact
The djust framework includes a default event handler that assigns any client‑supplied attribute name to a view instance. Because the only checks are a leading underscore restriction, a 14‑entry denylist of framework internals, an optional allowlist that defaults to allowing everything, and a simple existence test, the handler accepts arbitrary public attributes. An attacker who can send update_model events over the WebSocket can therefore set values such as self.is_admin, self.account_id, or other state used for authorization, resulting in a potential privilege escalation or data tampering. The handler also coerces the supplied string into the target attribute type, making it easier to inject boolean or numeric values.
Affected Systems
The flaw exists in the djust framework published by djust-org, affecting all versions prior to 1.0.7. A user who integrates djust into a Django project and employs the built‑in ModelBindingMixin in any LiveView will be vulnerable. The vulnerability is present in every LiveView that inherits from the base MRO because the default update_model handler is attached globally. Only djust 1.0.7 and newer contain the fix that restricts the set of assignable fields.
Risk and Exploitability
The CVSS score of 7.1 indicates a high impact vulnerability, while the EPSS score of less than 1% shows that the likelihood of exploitation is very low at the moment. The issue is not listed in CISA's KEV catalog. Attackers can exploit the flaw by sending crafted update_model WebSocket messages that specify a field name corresponding to a sensitive attribute. No authentication is required beyond the WebSocket session, which is commonly authenticated; once the message is processed the view attribute changes, potentially bypassing authentication checks or altering application state.
OpenCVE Enrichment
Github GHSA