CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-54550

CVE-2026-54550: Path Traversal Vulnerability in IzPack Installer Unpacker

Alon Barad
Alon Barad
Software Engineer

Aug 27, 2026·4 min read·0 visits

Executive Summary (TL;DR)

IzPack installers prior to 5.2.7 do not validate target extraction paths, allowing malicious packages to write files outside the installation folder, potentially achieving persistent code execution.

IzPack versions 5.2.6 and earlier are vulnerable to path traversal via UnpackerBase.unpack(). The vulnerability allows unauthenticated attackers to write arbitrary files to the host filesystem during the installation process by crafting malicious installer packages containing directory traversal sequences.

Vulnerability Overview

IzPack is a widely utilized Java-based cross-platform installer framework. The installer core relies on an unpacker subsystem to extract archive assets to target locations on the local filesystem. Prior to version 5.2.7, the unpacking mechanism did not validate target extraction paths against directory traversal payloads, exposing a critical filesystem attack surface.\n\nAn attacker can construct a malicious installer package containing directory traversal sequences. When executed by an target user, the installation process extracts files outside the designated installation directory. This can result in arbitrary file writes under the security context of the user executing the installer.

Root Cause Analysis

The flaw resides within the unpack method of UnpackerBase.java located in the izpack-installer module. During execution, the application reads target paths directly from the pack metadata. These paths are processed through IoHelper.translatePath(), which normalizes path separators for the target operating system but does not perform logical canonicalization.\n\nBecause the resolution logic lacks directory containment checks, the application instantiates a File object using the untrusted, un-normalized string. It then writes the package contents directly to this filesystem location. This behavior maps to CWE-22, enabling filesystem boundary escape when the underlying operating system executes the file creation routines.

Code Analysis

Before the implementation of the patch, the target validation was completely absent inside the extraction loop. The vulnerable implementation resolved paths as follows:\n\njava\n// Vulnerable Path Resolution\nString targetPath = packFile.getTargetPath();\nString path = IoHelper.translatePath(targetPath, variables);\nFile target = new File(path);\n\n\nThe remediated code implements validation at both compile-time and runtime. The patch adds lexical traversal detection inside PackFile.java and platform-specific sanitization checks within UnpackerBase.java:\n\njava\n// Patched Validation in PackFile.java\npublic static void validateTargetPath(String target) throws IOException {\n Objects.requireNonNull(target, \"target\");\n if (containsParentTraversal(target)) {\n throw new IOException(\"Installer target path must not contain path traversal: \" + target);\n }\n}\n\n\nAdditionally, the updated unpacker handles Windows-specific quirks, checking for reserved device names (CON, PRN, AUX, NUL) and trailing spaces or dots that can bypass standard security filters.

Architectural Weakness and Patch Limitations

While the patch effectively mitigates direct parent-directory traversal via relative path segments, architectural limitations remain in the design. The containment verification implemented in UnpackerBase.validateTargetPath() generates a warning instead of a hard block when files are written outside the primary installation directory.\n\nThis behavior is preserved intentionally to support installers that must place configuration files into global system directories like /etc/ or C:/ProgramData. Consequently, an installer package compiled with malicious intent can still target arbitrary write locations using absolute paths, provided no relative path traversal is detected.\n\nFurthermore, because PackFile implements java.io.Serializable, an attacker could theoretically bypass the compile-time checks by manually crafting a serialized metadata payload. If the installer deserializes untrusted pack metadata before validating the target paths dynamically during execution, the defense-in-depth model relies entirely on the runtime validations inside UnpackerBase.

Exploitation Methodology

To execute this attack, a threat actor must distribute a trojanized installer package to a target user. The attack requires user interaction to run the installer, which executes with the active privileges of the victim's operating system process.\n\nmermaid\ngraph LR\n A[\"Attacker Crafts Package with ../ Paths\"] --> B[\"Victim Executes Trojanized Installer\"]\n B --> C[\"Unpacker Translates Raw Paths\"]\n C --> D[\"File Created Outside Target Directory\"]\n D --> E[\"Payload Written to Windows Startup Folder\"]\n\n\n\nDuring extraction, the path resolver converts traversal payloads like ../../../../AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/payload.exe relative to the installation root. The system writes the executable into the startup folder, ensuring persistence and arbitrary code execution upon subsequent system logon.

Remediation

Remediation requires upgrading the IzPack packaging toolkit to a version greater than 5.2.6. Developers must rebuild existing installers using the updated compiler to ensure that the generated metadata packages include compile-time validation controls.\n\nOrganizations deploying legacy installers should perform static analysis on the distributed JAR files. Extracting and analyzing the packs.info file or embedded XML descriptors can identify the presence of ../ sequences or absolute paths pointing to sensitive system locations.

Official Patches

IzPackRemediation Pull Request containing backported security validation features.

Fix Analysis (2)

Technical Appendix

CVSS Score
7.4/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:N/I:H/A:N

Affected Systems

IzPack Installer Framework installations using 5.2.6 or older

Affected Versions Detail

Product
Affected Versions
Fixed Version
IzPack
IzPack
<= 5.2.65.2.7
AttributeDetail
CWE IDCWE-22
Attack VectorNetwork / User Interaction
CVSS Score7.4
EPSS ScoreNot Indexed
ImpactArbitrary File Write / Local Privilege Escalation
Exploit StatusProof of Concept
KEV StatusNot Listed

MITRE ATT&CK Mapping

T1083File and Directory Discovery
Discovery
T1547.001Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder
Persistence
CWE-22
Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

The product uses external input to construct a pathname that should be within a restricted directory, but it does not properly neutralize elements such as ".." that can resolve to a location outside of the restricted directory.

Vulnerability Timeline

Commit 4233ba38d0f1825f9cf3e0204e5261a5498e29d8 adds traversal validation controls.
2026-05-07
Commit 8b7c6792c4fe85e3b1759c106aae39b904848466 refines validation checks to address Windows platform-specific parameters.
2026-07-17
Official advisory GHSA-f63g-88cj-hjf9 published.
2026-08-26

References & Sources

  • [1]Official GitHub Advisory
  • [2]National Vulnerability Database Entry

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•about 1 hour ago•CVE-2026-54511
8.6

CVE-2026-54511: Log Injection and Structured Data Key Injection in @logtape/syslog

CVE-2026-54511 is a critical security vulnerability in the @logtape/syslog package, which serves as the syslog sink for the LogTape logging library. The flaw is caused by a failure to neutralize C0 control characters in structured data values and to validate keys against RFC 5424 SD-NAME specifications when structured data output is enabled. Remote attackers can leverage this defect to terminate TCP syslog frames and append completely forged syslog records to downstream collectors, compromising the integrity of audit trails and SIEM databases.

Alon Barad
Alon Barad
2 views•6 min read
•about 2 hours ago•CVE-2026-54786
5.0

CVE-2026-54786: Host File Descriptor Exhaustion in Wasmtime WASIp1 Runtime

A resource leak vulnerability in Wasmtime's WASIp1 native implementation of the fd_renumber system call allows guest WebAssembly applications to leak host file descriptors, ultimately leading to process-wide Denial of Service (DoS) via resource exhaustion.

Amit Schendel
Amit Schendel
2 views•8 min read
•about 3 hours ago•CVE-2026-55688
4.0

CVE-2026-55688: Cookie Tossing / Cookie Injection Vulnerability in AsyncHttpClient

CVE-2026-55688 is a medium-severity cookie injection vulnerability in the AsyncHttpClient (AHC) library. Due to a failure to validate the domain attribute against the origin server during cookie handling, applications using a shared AHC client instance are vulnerable to cookie-tossing attacks.

Alon Barad
Alon Barad
3 views•5 min read
•about 4 hours ago•GHSA-93QJ-5Q5V-3C2H
0.0

GHSA-93QJ-5Q5V-3C2H: Embedded Malicious Code in pantheon-agents PyPI Packages

A supply-chain compromise affecting the pantheon-agents PyPI package, where versions 0.6.1 and 0.6.2 were uploaded with malicious payloads that exfiltrate sensitive environment variables and credentials.

Alon Barad
Alon Barad
6 views•5 min read
•about 5 hours ago•GHSA-X287-5C68-36WP
7.1

GHSA-X287-5C68-36WP: Broken Object-Level Authorization in OpenWISP IPAM Django Admin

A broken object-level authorization (BOLA) vulnerability exists in the Django Admin custom export view of OpenWISP IPAM. This flaw allows a multi-tenancy restricted staff user to export subnets and associated IP addresses belonging to different organizations by supplying a targeted subnet identifier in the export request.

Alon Barad
Alon Barad
3 views•6 min read
•about 6 hours ago•CVE-2026-54563
7.1

CVE-2026-54563: Path Traversal and Incorrect Authorization in Cloudreve WebDAV Component

A high-severity path traversal vulnerability in Cloudreve's WebDAV component allows authenticated users with scoped WebDAV credentials to bypass directory containment limits and access unauthorized filesystem areas.

Alon Barad
Alon Barad
3 views•5 min read