Skip to main content

djust EUVDEUVD-2026-80744

| CVE-2026-61590 HIGH
Missing Authentication for Critical Function (CWE-306)
2026-09-16 GitHub_M GHSA-8g2f-g3gq-5rjv
7.4
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach exposed observability endpoint over network
  2. Delivery
    Confirm DEBUG on, middleware absent
  3. Exploit
    Read live view/session state
  4. Execution
    Invoke eval_handler remote methods
  5. Impact
    Manipulate application state / exfiltrate session data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication required for critical functions
MITRE ATT&CK

1 technique across 1 tactic: Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires the specific documented-but-misconfigured state: Django DEBUG=True in production AND the opt-in localhost-restriction middleware not installed, leaving djust's observability endpoints (live view/session state plus the eval_handler method-invocation surface) reachable from a non-localhost network client. Limiting factors: exploitation is impossible when DEBUG=False (the documented workaround), when the localhost middleware is installed, or on djust >= 1.0.7 where the localhost gate is enforced in-view on every observability endpoint and eval_handler is restricted with a non-disclosing response for gated requests. No authentication is required (PR:N) and no user interaction is needed, but the reliance on two non-default conditions is why the CVSS carries AC:H.

Impact

The CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N, base 7.4) is well-calibrated: network-reachable and unauthenticated (PR:N), but gated by AC:H because exploitation requires a specific misconfiguration - DEBUG left on in production AND the opt-in localhost middleware not installed. CWE-306 (missing authentication for a critical function) fits the eval_handler remote method-invocation surface. No EPSS score, no CISA KEV listing, and no public POC are provided, so despite the high base score there is no signal of active or widespread exploitation. The 'Authentication Bypass' tag overstates slightly - there was never an auth layer to bypass on the observability endpoints, only a DEBUG check plus an omitted middleware, which is closer to missing access control. Real-world priority is moderate: genuinely dangerous where the documented (flawed) setup is followed and endpoints are network-exposed, but the double-condition prerequisite (DEBUG=True in prod is itself an anti-pattern) meaningfully narrows the exposed population. Confidence in the technical facts is high because the vendor GHSA advisory and release notes corroborate the description directly.

Exploit ScenarioDerived

A production djust deployment left with DEBUG=True and without the opt-in localhost middleware (the documented setup) exposes its observability endpoints to the network. A remote unauthenticated attacker queries these endpoints to read live view and session state, then calls the eval_handler surface to invoke server-side handler methods remotely. No public POC is identified at time of analysis.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
1 PoC candidate (unverified) Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 16, 2026

Unauthenticated remote attackers can read live Django view and session state and invoke server-side handlers through djust's observability endpoints when a deployment leaves DEBUG enabled and omits the optional localhost-restriction middleware. The exposure requires that specific documented-but-misconfigured combination, which is why the assessed base score of 7.4 carries AC:H despite being network-reachable with PR:N - the endpoints themselves enforced only DEBUG prior to version 1.0.7. No public exploit code has been identified at time of analysis, and the flaw (CWE-306, missing authentication for critical function) is fully neutralized by upgrading to 1.0.7, by setting DEBUG=False, or by installing the localhost-gating middleware.

RemediationAI

Apply the vendor-released patch by upgrading djust to 1.0.7 or later (pip install --upgrade djust), per the advisory at https://github.com/djust-org/djust/security/advisories/GHSA-8g2f-g3gq-5rjv and the release at https://github.com/djust-org/djust/releases/tag/v1.0.7; this version enforces the localhost restriction in-view on every observability endpoint instead of depending on a separately installed middleware, restricts eval_handler, and returns a non-disclosing response for gated requests, so no additional configuration is needed for the core fix. If immediate upgrade is not possible, the vendor workaround is to set DEBUG=False in all production deployments - this is the only view-level control that was actually enforced in vulnerable releases, so leaving DEBUG on cannot be compensated for; be aware that turning DEBUG off also disables Django's automatic static-file serving and verbose error pages, so configure static file handling and error reporting separately to avoid operational breakage. Additionally, install the localhost-restriction middleware that the documentation omitted (or block the observability endpoint paths and eval_handler at the reverse proxy or network boundary), with the trade-off that reverse-proxy path blocking is brittle if endpoint routes change and the middleware approach re-introduces the opt-in dependency that caused this flaw in the first place. There is no vendor-released patch identified for versions other than 1.0.7, so backporting is not a supported path.

Affected VersionsENISA

djust < 1.0.7

Affected Packages

pypi djust fix: 1.0.7

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in pypi

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

djust is a Python package that brings Phoenix LiveView-style reactive server-side rendering to Django, using a Rust-backed rendering path for performance. To support debugging and introspection, it ships observability endpoints that surface live view and session state, plus an eval_handler surface that allows remote method invocation against server-side handlers. The root-cause class is CWE-306, missing authentication for a critical function: rather than enforcing the localhost restriction inside each observability view, djust delegated that check to an opt-in middleware which the project's own documented setup omits, leaving the views to gate only on Django's DEBUG setting. The result is a configuration-dependent authorization gap, matching the CVSS:3.1 vector AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N - reachable over the network with no credentials and no user interaction, but requiring the prerequisite state of DEBUG=True in production plus the absent middleware, hence the high attack complexity. Confidentiality and integrity impacts are high (live application state disclosure and remote handler invocation); availability impact is none. The identified CPE cpe:2.3:a:djust-org:djust:*:*:*:*:*:*:*:* is a broad wildcard from the CVE feed, while the vendor advisory narrows the affected range to versions before 1.0.7.

Know when Djust gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 7.4 HIGH
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
vuln.today AI 7.4 HIGH

Network-reachable and unauthenticated (PR:N) but gated by the DEBUG-on-plus-missing-middleware misconfiguration (AC:H); state disclosure gives C:H and eval_handler invocation gives I:H, with no availability impact.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

2
Patch available
Sep 16, 2026 - 15:18 EUVD
CVE Published
Sep 16, 2026 - 13:50 cve.org
HIGH 7.4

DescriptionCVE.org

djust provides Phoenix LiveView-style reactive server-side rendering for Django with Rust-powered performance. Prior to version 1.0.7, djust's observability endpoints expose live view/session state and a remote method-invocation surface (eval_handler). The localhost restriction was an opt-in middleware that the documented setup omits; the views themselves enforced only DEBUG. In the misconfigured-but-documented scenario (DEBUG on, middleware not installed) a non-localhost client could read live application state and invoke handlers remotely. This issue is fixed in djust 1.0.7. The localhost restriction is enforced in-view on every observability endpoint (no longer dependent on a separately-installed middleware), and eval_handler is restricted; gated requests receive a non-disclosing response. As a workaround, ensure DEBUG=False in production, and do not expose the observability endpoints to untrusted networks.

Technical POC Analysis

CWE-306 (Missing Authentication for Critical Function), with CWE-668 (Exposure of Resource to Wrong Sphere) as the secondary weakness in the advisory.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Latest POC

1 PoC candidate from github (unverified)

Sign in to open the public PoC links collected for this CVE.

Executive ViewAI

Why It Matters

Organizations running the djust library in Django deployments that have left DEBUG enabled and omitted the optional localhost-restriction middleware are exposing live application view and session state to unauthenticated network users, along with the ability to invoke server-side handlers. The exposure depends on a documented but insecure configuration rather than a default install, yet where it exists it can leak session material and application internals to anyone who can reach the service. Leadership should treat this as both a configuration-hygiene failure and a patch-management item for internet-facing Django workloads, since remediation is achievable through a configuration change or a version upgrade.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis; interim mitigations are to set DEBUG=False, install the optional localhost-restriction middleware that gates the observability endpoints, and restrict network reachability to those endpoints to localhost or trusted management hosts. Upgrading to djust 1.0.7 is documented as fully neutralizing the flaw.

Threat Intelligence Overview

EPSS Score
0.3%
Top 73% exploitable
Prevalence
Low
niche emerging OSS Django reactive-rendering library, small deployment footprint
Threat Intel
1
1 sources
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

57
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +37
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy