Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain ability to label containers in monitored env
-
DeliverySet container name to '../../etc/cron.d/evil'
-
ExploitVictim downloads log ZIP via Dozzle
-
ExecutionExtract writes file outside target dir
-
ImpactArbitrary file overwrite yields code execution
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires ALL of: (1) attacker ability to control container display names/labels reported to Dozzle - either directly on the Docker engine or via a Dozzle agent that forwards container names; (2) a legitimate Dozzle user actively invoking the log-download endpoint and extracting the resulting ZIP archive (UI:A); and (3) an extraction tool that does not itself guard against path-traversal entry names. The vulnerable versions are Dozzle before 11.1.2. Because the write occurs on the extracting user's machine (subsequent-system integrity, SI:H) rather than on the Dozzle server, and depends on all three conditions aligning, realistic exploitability is significantly narrower than the network attack vector alone suggests. |
| Impact | This is a Zip Slip (path-traversal-via-archive) flaw in Dozzle's log-download endpoint, not a directly server-compromising bug. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:A/SI:H) scores 4.6 (Medium) and is internally consistent: the vulnerable Dozzle system itself is untouched (VC:N/VI:N/VA:N) - the integrity impact lands on a SUBSEQUENT system (SI:H), namely the filesystem of the user who downloads and extracts the malicious ZIP. AT:P (attack requirements present) and UI:A (active user interaction) correctly capture that exploitation is not turn-key: the attacker must be able to label/name containers AND a legitimate user must download and extract the log archive with a path-traversal-unsafe extractor. No EPSS score, no CISA KEV listing, and no public exploit code (the patch ships only a unit test asserting entry-name sanitization). There is no active-exploitation signal at all. One point worth verifying: the vendor rated PR:N, but the description's precondition 'attackers who can label containers' implies some level of control over the Docker/agent environment, which arguably warrants PR:L - this is deployment-dependent (e.g., a compromised Dozzle agent or a tenant able to push labeled containers). Overall a real-but-narrow, low-to-medium priority issue: patch on a normal cadence rather than as an emergency. |
| Exploit ScenarioDerived | An attacker with the ability to name or label containers in a monitored Docker environment (e.g., via a compromised Dozzle agent, or by deploying a container in a shared/multi-tenant host) creates a container named something like '../../etc/cron.d/evil'. When an operator later uses Dozzle's log-download feature and extracts the resulting ZIP with a naive extraction tool, the crafted entry name escapes the extraction directory and writes an attacker-controlled file to an arbitrary path, enabling code execution. No standalone public exploit exists, though the vendor's fix includes a unit test demonstrating the '../../etc/cron.d/evil' payload. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 28, 2026
Log-download path traversal (Zip Slip) in Dozzle before 11.1.2 allows attackers who control container display names to embed directory-traversal sequences such as '../../etc/cron.d/evil' into ZIP entry names, so that files are written outside the intended extraction directory when a user downloads and unpacks the log archive. The flaw affects the web log-download endpoint (/api/containers/.../download), which previously sanitized only the 'name' query parameter while writing unsanitized container names into archive entries; the assessed CVSS 3.1 vector (AV:N/AC:H/PR:L/UI:R/S:C/C:N/I:H/A:N, 4.6 in the CVE's CVSS 4.0 scoring) reflects that exploitation requires an attacker who can name/label containers plus a legitimate user who downloads and extracts the archive with a traversal-unsafe tool, and the resulting integrity impact lands on the extracting user's machine (SI:H) rather than on the Dozzle server. There is no indication of active exploitation (not in CISA KEV) and no public exploit identified at time of analysis, but a vendor patch is available: Dozzle 11.1.2 ships a sanitizeFileName helper that reduces entry names to alphanumerics, hyphens, underscores and dots and trims leading dots. Because the traversal is written into the archive rather than triggered server-side, this is a client-side/Zip Slip write primitive, not a direct remote code execution path against the Dozzle instance itself.
RemediationAI
Vendor-released patch: upgrade to Dozzle 11.1.2 (https://github.com/amir20/dozzle/releases/tag/v11.1.2), which incorporates the fix merged in PR #5242 (https://github.com/amir20/dozzle/pull/5242) and commit bc07db73dd84ce2cb939b744e983a8cfdf29c644; the patch adds sanitizeFileName() so ZIP entry names can contain only alphanumerics, hyphens, underscores and dots, trims leading dots, and falls back to the container ID when a name sanitizes to empty, so no version numbers other than 11.1.2 should be assumed to contain the fix. Where immediate upgrade is not possible, reduce the attack surface by restricting who can create or rename containers visible to Dozzle - run Dozzle with read-only, least-privilege Docker credentials and avoid granting unprivileged tenants the ability to set arbitrary container names or labels (trade-off: this is an access-control change on the Docker/agent side, not in Dozzle, and does not help in environments where container naming is inherently untrusted). On the consumer side, instruct users to extract downloaded log archives with tools that strip or reject path separators and '..' segments (e.g. modern unzip/7-Zip/bsdtar builds, or Python zipfile with explicit member-name validation), or to extract inside a disposable, unprivileged sandbox or container (trade-off: some legacy extractors silently honor '..' and will still write outside the target directory, so tooling must be verified, not assumed). Operators can additionally block or gate the /api/containers/*/download endpoint at a reverse proxy if log export is not a required workflow, accepting the loss of that feature. See the VulnCheck advisory (https://www.vulncheck.com/advisories/dozzle-before-11.1.2-path-traversal-via-log-zip-download) for the vendor-coordinated details.
Affected VersionsENISA
Affected Packages
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
Dozzle is a lightweight, Go-based web UI for viewing Docker (and agent-forwarded) container logs. Its log-download handler in internal/web/download.go builds a ZIP archive in memory and creates one entry per container, naming each entry from the container's display name, i.e. fmt.Sprintf("%s-%s.log", c.containerService.Container.Name, nowFmt). Container names are not trusted input: they originate from the Docker engine (see internal/container/docker/client.go around lines 610-614) or from a Dozzle agent that forwards container metadata, so an attacker with the ability to create or label a container can supply strings containing '/' or '..'. In Dozzle v11.1.1 the handler sanitized the client-supplied 'name' query parameter but left the engine-provided container name untouched, which is precisely the CWE-22 (Improper Limitation of a Pathname to a Restricted Directory, i.e. path traversal) root cause; in the ZIP context this is the classic 'Zip Slip' pattern where a crafted entry name causes a naive extractor to write outside the target directory. The upstream fix (PR #5242, commit bc07db73dd84ce2cb939b744e983a8cfdf29c644) factors sanitization into a sanitizeFileName() function that maps every rune outside [a-zA-Z0-9-_.] to '-', trims leading dots so the result can never be '.', '..' or a hidden file, and falls back to the sanitized container ID when the name sanitizes to empty; a regression test (Test_handler_download_logs_sanitizes_entry_names) asserts the emitted entry contains no '/' or '\\' and does not begin with a dot. Notably, the underlying technology class (Go archive/zip writing) does not traverse anything by itself - the traversal only materializes in whatever extraction tool the download recipient uses, which is why the impact is scored as subsequent-system integrity (SI:H) with no direct confidentiality or availability effect (C:N, A:N).
Know when Dozzle 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
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:N/VI:N/VA:N/SC:N/SI:H/SA:N
AC:H and PR:L because the attacker must control container labels in the environment and multiple conditions must align; UI:R and S:C because a user must extract the ZIP and the write lands on a different system; I:H (file write→code exec), C:N/A:N.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Dozzle versions before 11.1.2 fail to sanitize container display names when building ZIP archive entry names in the log download endpoint. Attackers who can label containers can use path traversal sequences to write files outside the extraction directory when users download and extract logs.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
Critical access control flaw in Dozzle Docker log viewer allows users restricted by label filters to escape their scope
Dozzle is a realtime log viewer for docker containers. Rated high severity (CVSS 7.5), this vulnerability is remotely ex
Label-filter isolation in Dozzle 10.6.5 and earlier is bypassed through the SSE events endpoint (GET /api/events/stream)
EUVD-2026-88565
GHSA-746p-gqhc-m84c
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB