Skip to main content

Dozzle EUVDEUVD-2026-88565

| CVE-2026-102332 MEDIUM
Path Traversal (CWE-22)
2026-09-28 VulnCheck GHSA-746p-gqhc-m84c
4.6
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Gain ability to label containers in monitored env
  2. Delivery
    Set container name to '../../etc/cron.d/evil'
  3. Exploit
    Victim downloads log ZIP via Dozzle
  4. Execution
    Extract writes file outside target dir
  5. Impact
    Arbitrary 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.

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 – 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

dozzle 8.9.1 <11.1.2

Affected Packages

euvd dozzle fix: 11.1.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

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

Vendor (VulnCheck) PRIMARY 4.6 MEDIUM
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
vuln.today AI 5.8 MEDIUM

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.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

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

EPSS Score
0.3%
Top 77% exploitable
Prevalence
Medium
popular self-hosted Docker log viewer, common in homelab/self-hosted, not enterprise-ubiquitous
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

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

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

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

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