Investigate in your agent.

Turn this advisory into a focused investigation. Ask your agent to check your project’s versions, explain the evidence, and suggest a compatible fix.

Your agent needs remote MCP support and access to https://cve.new/mcp.

Read the setup guide

Skip to content
Check your stack
CVE-2026-55551medium6.5

ZAC: Missing per-zaaktype authorization on by-ID decision and process reads

Impact

ZAC is an open-source, workflow-based Common Ground component for Dutch municipal case management. Prior to 5.2.0, by-id read endpoints in src/main/kotlin/nl/info/zac/app/zaak/ZaakRestService.kt omit assertPolicy(policyService.readZaakRechten(zaak).lezen) authorization. RequestAuthorizationFilter and hasAnyApplicationRole require only an application role on any zaaktype, not the target case's type, while zaak-rechten.rego enforces the actual zaaktype_allowed boundary only when invoked. An authenticated low-privileged municipal user who knows a case or decision UUID can use GET…

Source excerpt · GitHub_M
Applies when

RequestAuthorizationFilter and hasAnyApplicationRole require only an application role on any zaaktype, not the target case's type, while zaak-rechten.rego enforces the actual zaaktype_allowed boundary only when invoked.

Affected packages

This source has no supported package-version data for matching. You can read the advisory here, but this record alone cannot power a dependency check.

Affected products

Vendor version evidence. Product records are separate from automatic dependency matching.

infonl · GitHub_M

dimpact-zaakafhandelcomponent

1 range

Compare with this publisher’s ranges. This does not inspect your installation.

affected

< 5.2.0

unaffected

unknown

Other versions: unknown

Original source description

ZAC is an open-source, workflow-based Common Ground component for Dutch municipal case management. Prior to 5.2.0, by-id read endpoints in src/main/kotlin/nl/info/zac/app/zaak/ZaakRestService.kt omit assertPolicy(policyService.readZaakRechten(zaak).lezen) authorization. RequestAuthorizationFilter and hasAnyApplicationRole require only an application role on any zaaktype, not the target case's type, while zaak-rechten.rego enforces the actual zaaktype_allowed boundary only when invoked. An authenticated low-privileged municipal user who knows a case or decision UUID can use GET /rest/zaken/besluit/zaakUuid/{uuid} (listBesluitenForZaakUUID) to read decisions including types, dates, and free-text toelichting; GET /rest/zaken/besluit/{uuid}/historie (listBesluitHistorie) to read audit old/new values; and GET /rest/zaken/{uuid}/process-diagram (downloadProcessDiagram) to read BPMN workflow state across unauthorized zaaktypes. The advisory also identifies zaak/{uuid}/afzender (listAfzendersVoorZaak) as exposing zaaktype mailbox configuration without a policy check. The search/_zoek path is correctly authorization-filtered and is not part of this by-id read cluster. This issue is fixed in version 5.2.0.

Inside the record

Evidence available

Package identity · not supplied
Version evidence
Remediation guidance · not supplied
Weakness classification
Additional publishers · not supplied

Describes the evidence in this view, not whether the product is safe.

Original records

CVE-2026-55551

View the latest unmodified CVE JSON from the official source. It may be newer than this imported page.

cve.new JSON →

Underlying weaknesses

The source’s classification of what caused the vulnerability.

CWE-285 ↗

CWE-285: Improper Authorization

GitHub_M

Related →
CWE-639 ↗

CWE-639: Authorization Bypass Through User-Controlled Key

GitHub_M

Related →
Contributing organizations · 1
GitHub_M

Assigning organization

2026-10-30

What changed

Follow changes
No substantive changes have been recorded here yet. History starts when cve.new observes a change after tracking is enabled; earlier edits are not reconstructed.

Large field values are marked as truncated previews. Original source snapshots remain retained.

References

6 sources