Skip to main content

OWASP DefectDojo CVE-2026-16764

| EUVDEUVD-2026-48439 LOW
Improper Privilege Management (CWE-269)
2026-07-23 VulDB GHSA-43fx-4mqw-qphw
2.1
CVSS 4.0 · Vendor: VulDB
View

Attack ChainAIDerived

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

  1. Access
    Authenticate to DefectDojo API with delegated change_user account
  2. Delivery
    PATCH /api/v2/users/{id}/ with is_staff:true
  3. Exploit
    UserSerializer saves flag without superuser check
  4. Execution
    Access Django /admin/ interface as is_staff user
  5. Persist
    Set is_superuser on own account via UserAdmin form
  6. Impact
    Full DefectDojo data and user control achieved

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V8 - Authorization Least privilege enforcement
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

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

Exploitation Conditions

Exploitation requires an authenticated session in DefectDojo 2.59.0 with at least the auth.change_user and auth.add_user Django permissions - these are typically granted to delegated user-manager roles, not arbitrary end-users. The /admin/ interface must also be reachable (DD_DJANGO_ADMIN_ENABLED=True, which was the prior default). Limiting factors include: the attacker must already hold a DefectDojo account with delegated user-management permissions; the affected version (2.59.0) is a narrow, accidental release that has been pulled; and the secondary escalation path through Django admin requires the admin interface to be enabled and accessible. The attack is not exploitable by unauthenticated actors or by standard read-only DefectDojo users without change_user permission.

Impact

The CVSS 4.0 score of 5.3 (AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L) reflects low impact ratings on vulnerable-system metrics, which appears conservative given the actual escalation potential: gaining is_staff gives Django admin access and, through a second step, a path to is_superuser. The E:P environmental modifier confirms public exploit code exists, elevating practical risk above the base score implies. There is no CISA KEV listing, so active mass exploitation has not been confirmed. The exposure window is narrow: 2.59.0 was an accidental release that has been removed from distribution, meaning only installations that proactively fetched that specific tag are affected. EPSS data was not provided; given the narrow affected version footprint and the authentication prerequisite (PR:L), opportunistic mass scanning is unlikely. The most credible threat actor is an insider or a compromised low-privilege service account within a DefectDojo instance, not an external unauthenticated attacker. Risk priority is moderate-high for any organisation running 2.59.0 but low for the broader DefectDojo user base.

Exploit ScenarioDerived

An attacker with a valid DefectDojo account that holds delegated change_user and add_user permissions sends a PATCH request to /api/v2/users/{own_id}/ with the body {"is_staff": true}. Because UserSerializer applies no superuser check on that field, the flag is saved; the attacker then accesses the Django /admin/ interface, uses the UserAdmin change form to set is_superuser on their account, and from that point has unrestricted access to all vulnerability records, findings, and user data within DefectDojo. Public exploit code exists per the E:P CVSS 4.0 modifier.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Jul 23, 2026

Privilege escalation in OWASP DefectDojo 2.59.0 exposes authenticated non-superusers to flip the is_staff flag on any account - including their own - through the UserSerializer in the v2 API, bypassing DefectDojo's role-based access controls and granting Django admin access. Version 2.59.0 was an accidental release and has been pulled; patched releases 2.58.3 and 3.0.0 exist. Publicly available exploit code is acknowledged (CVSS 4.0 E:P), and no special preconditions beyond a valid authenticated session with delegated user-management permissions are required.

RemediationAI

Upgrade immediately to DefectDojo 2.58.3 (for the 2.x line) or 3.0.0 (for the 3.x line); both are confirmed patched releases per the vendor advisory at https://github.com/DefectDojo/django-DefectDojo/releases/tag/3.0.0 and the patch commit 68a272f299d096249fd3ba9c2676bf69012857bf. If an immediate upgrade is not feasible, disable the Django admin interface by setting DD_DJANGO_ADMIN_ENABLED=False (which is now the default in patched releases) - this removes the secondary escalation path from is_staff to is_superuser, though it does not prevent the API-level is_staff mutation itself. Additionally, audit all user accounts in the DefectDojo instance for unexpected is_staff or is_superuser flags and revoke them. Restrict the user-update API permissions to the smallest possible set of accounts. No side effects of upgrading have been documented by the vendor.

Affected VersionsENISA

DefectDojo 2.59.0

Affected Packages

euvd defectdojo no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

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

Technical ContextAI · show details

DefectDojo is a Django-based vulnerability management platform. The flaw resides in the validate() method of UserSerializer in dojo/api_v2/serializers.py. Prior to the fix, the serializer applied no guard on the is_staff field: any caller with sufficient API permission to update a user record could pass is_staff=true without the application verifying that the requestor was a superuser. CWE-269 (Improper Privilege Management) accurately characterises the root cause - is_staff in Django's auth model is a near-superuser flag: it grants access to the /admin/ site and, under Django's default UserAdmin, allows a holder with the change_user permission to tick is_superuser on themselves, completing a full privilege escalation chain. The patch (commit 68a272f, PR #14952) introduces an explicit check in validate() that rejects any is_staff mutation by non-superusers, restricts the admin site gate to require is_superuser (not merely is_staff), and defaults DD_DJANGO_ADMIN_ENABLED to False. The affected CPE is cpe:2.3:a:owasp:defectdojo:*:*:*:*:*:*:*:* scoped to version 2.59.0.

Know when Defectdojo 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 (VulDB) PRIMARY 2.1 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P
vuln.today AI 9.6 CRITICAL

Network API access with low-privilege auth required; scope changes because is_staff enables Django admin, yielding high confidentiality and integrity impact over DefectDojo's full dataset.

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

Primary rating from Vendor (VulDB).

CVSS VectorVendor: VulDB

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Severity Changed
Jul 23, 2026 - 22:22 NVD
MEDIUM LOW
CVSS changed
Jul 23, 2026 - 22:22 NVD
5.3 (MEDIUM) 2.1 (LOW)

DescriptionCVE.org

A vulnerability was identified in OWASP DefectDojo 2.59.0. This issue affects the function UserSerializer of the file dojo/api_v2/serializers.py of the component API/Web. Such manipulation of the argument is_staff leads to improper privilege management. The attack may be performed from remote. The exploit is publicly available and might be used. Upgrading to version 2.58.3 and 3.0.0 is capable of addressing this issue. The name of the patch is 68a272f299d096249fd3ba9c2676bf69012857bf. It is advisable to upgrade the affected component. 2.59.0 was not intended to be released and has been removed.

Threat Intelligence Overview

EPSS Score
0.2%
Top 86% exploitable
Prevalence
Medium
open-source vulnerability management platform, security-team niche
Threat Intel
1
1 sources
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment NEWS CIRCL GitHub VulDB

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 LOW
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.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· derived
Defer
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

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

Attack Technique

Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.

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