Skip to main content

Open Zaak EUVDEUVD-2026-102899

| CVE-2026-54657 MEDIUM
Improper Authorization (CWE-285)
2026-10-16 GitHub_M
6.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Obtain valid zaken.lezen/documenten.lezen token
  2. Exploit
    POST to /_zoek search endpoint
  3. Execution
    Receive querysets outside authorized types/confidentiality
  4. Impact
    Harvest unauthorized case/document metadata

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization verification
MITRE ATT&CK

1 technique across 1 tactic: Defense Evasion

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

Exploitation Conditions

Requires a valid OAuth/JWT API token carrying the zaken.lezen or documenten.lezen scope - exploitation is only possible for an already-authenticated API client (PR:L), not an anonymous caller. Once such a token is held, the zaken _zoek endpoint returns case metadata across case types and confidentiality levels the token was not authorized for, against default configurations of affected Open Zaak versions 1.0.0 through the fixes. LIMITING FACTORS: document (_zoek) searches only return results for UUIDs the attacker already knows, document content stays protected by a separate download authorization, and the disclosure is limited to metadata rather than full records - so impact is bounded to what a validly-tokenized but under-authorized client can enumerate.

Impact

This is a genuine but moderate-severity authorization flaw, not an overhyped high-CVSS issue. The CVSS 3.1 base score of 6.5 (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N) describes a network-reachable, low-complexity bug whose only impact is confidentiality - there is no integrity or availability effect and scope is unchanged. The decisive limiting signal is PR:L: an attacker must already hold a valid zaken.lezen or documenten.lezen API token, so this is an insider / over-privileged-client / stolen-credential problem rather than an anonymous internet attack. No EPSS score, CISA KEV entry, or public proof-of-concept was provided in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation; the realistic threat is targeted abuse by a legitimate but under-authorized API consumer rather than mass exploitation. SSVC-style reading: exploitation=none observed, automatable=yes for the zaken endpoint once a token is held (a single POST returns unauthorized results), technical impact=partial (metadata-only disclosure). The C:H rating is defensible because Dutch case metadata can include sensitive personal data subject to AVG/GDPR, but note the disclosure is metadata only - full document content remains protected by a separate download authorization, and document searches additionally require prior knowledge of UUIDs, both of which meaningfully cap real-world impact.

Exploit ScenarioDerived

An authenticated API client (e.g. a connected municipal application, or an attacker who has obtained a leaked zaken.lezen or documenten.lezen token) issues a POST to /zaken/api/v1/zaken/_zoek and receives case metadata for case types and confidentiality levels its token was never authorized to see, enabling broad harvesting of sensitive case information. No public exploit code is known, but the attack requires only a standard search request with no special tooling. Document metadata can be similarly retrieved via the _zoek endpoint, though only for UUIDs the attacker already knows.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
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 – Oct 16, 2026

Missing authorization filtering in Open Zaak's POST search endpoints (/zaken/api/v1/zaken/_zoek and /documenten/api/v1/enkelvoudiginformatieobjecten/_zoek) allows an authenticated API client holding a valid OAuth/JWT token with the zaken.lezen or documenten.lezen scope to retrieve case or document metadata outside the case types and confidentiality levels that token was authorized for. Exploitation requires a legitimate token (authenticated, PR:L) and does not require user interaction; the exposure is limited to metadata, with document searches additionally requiring the attacker to already know the target UUIDs, and document content remaining protected by a separate download authorization. No public exploit code has been identified at time of analysis, and the issue is fixed in Open Zaak 1.27.2, 1.28.2, and 1.29.0, so all earlier releases in the affected branches should be considered vulnerable.

RemediationAI

Vendor-released patch: upgrade to Open Zaak 1.27.2, 1.28.2, or 1.29.0 (depending on the maintained branch in use), which applies authorization filtering to the _zoek querysets and closes the django-loose-fk get_queryset bypass path; see https://github.com/open-zaak/open-zaak/security/advisories/GHSA-f29q-7rpr-jmjx and the release pages linked above. Where an immediate upgrade is not possible, compensating controls are limited because the flaw is in server-side queryset logic rather than a configurable feature: restrict issuance of zaken.lezen and documenten.lezen tokens to trusted consumers only and audit which clients hold them, since exploitation requires a valid token (an anonymous caller cannot trigger it); tighten token authorization scoping so clients receive the narrowest possible set of case types and confidentiality levels; log and review access to the two _zoek endpoints for cross-type or cross-confidentiality enumeration patterns; and, as a last resort, block the POST /zaken/api/v1/zaken/_zoek and POST /documenten/api/v1/enkelvoudiginformatieobjecten/_zoek routes at the reverse proxy for untrusted clients. Be aware that blocking these endpoints breaks legitimate search functionality for all API consumers, and that token-scope restriction will not help if a single token is already authorized across many case types. No public exploit code has been identified at time of analysis and there is no confirmed in-the-wild exploitation, but the low complexity of the abuse (a single authenticated POST) makes prompt patching advisable.

Affected VersionsENISA

open-zaak 1.28.0, < 1.28.2
open-zaak 1.0.0, < 1.27.2

Affected Packages

euvd open_zaak fix: 1.27.2, 1.28.2

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

Open Zaak is the Dutch Common Ground data and services layer implementing the Zaakgericht Werken (case-oriented working) APIs, built on Django and Django REST Framework. The flaw is CWE-285 (Improper Authorization): the POST-based search viewsets reused a ListFilterByAuthorizationsMixin (src/openzaak/utils/data_filtering.py) that filters result querysets against the authorizations attached to the request's JWT/OAuth token, but the _zoek endpoints did not apply that filter, so results were returned unfiltered by case type or confidentiality level. Source evidence in commit 15456f1a shows the mixin being adjusted to short-circuit when a request has no jwt_auth attribute - the path taken when django-loose-fk internally calls get_queryset on viewsets to resolve URLs to resources - indicating the authorization filter could be silently bypassed in that code path. The impact is a horizontal/vertical authorization failure rather than an injection or memory-safety issue: the attacker's token is valid, but the queryset returned exceeds the token's authorized scope. CVSS 3.1 vector AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N reflects remote reachability, low attack complexity, a network-reachable service, no integrity or availability impact, and a high confidentiality impact bounded to metadata disclosure.

Know when Open Zaak 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 6.5 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 6.5 MEDIUM

Network REST API (AV:N), single unconditional request (AC:L), valid read token required (PR:L), sensitive case metadata disclosed with no integrity/availability effect (C:H/I:N/A:N).

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

1
Patch available
Oct 16, 2026 - 16:32 EUVD

DescriptionCVE.org

Open Zaak is an open-source data and services layer for Dutch case-oriented working. From 1.0.0 until 1.27.2, 1.28.2, and 1.29.0, the POST search endpoints /zaken/api/v1/zaken/_zoek and /documenten/api/v1/enkelvoudiginformatieobjecten/_zoek do not filter result querysets according to the authorizations associated with the request token. A caller with a valid zaken.lezen or documenten.lezen token can therefore retrieve case or document metadata outside the token's authorized types or confidentiality levels. Document searches require known UUIDs, and document content remains protected by separate download authorization. This issue is fixed in versions 1.27.2, 1.28.2, and 1.29.0.

Threat Intelligence Overview

EPSS Score
0.3%
Top 83% exploitable
Prevalence
Low
niche open-source Dutch government case-management layer, limited deployment
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment 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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
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