Skip to main content

junrar EUVDEUVD-2026-81011

| CVE-2026-86071 LOW
Path Traversal (CWE-22)
2026-09-16 security-advisories@github.com GHSA-89m4-43j5-vhhx
3.7
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

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

  1. Access
    Craft RAR with escaping intermediate path
  2. Delivery
    Submit archive to extraction pipeline
  3. Exploit
    junrar makeFile() runs unchecked mkdir()
  4. Execution
    Directories created outside extraction root
  5. Impact
    Filesystem pollution or path squatting

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 the host application to extract an attacker-supplied RAR archive using junrar's LocalFolderExtractor (the vulnerable extraction path) in a version prior to 7.6.1. The malicious archive entry must be crafted so its final canonical path resolves inside the destination (passing createFile()'s check) while intermediate directory segments escape the root via unchecked mkdir() - this specificity is why AC:H applies. Limiting factors: impact is confined to directory creation and path squatting (no arbitrary file-content write, no confidentiality loss); the application must both use this specific extractor and process untrusted archives; and the Windows regression test is disabled, indicating the escape behaves per POSIX path semantics.

Impact

This is a genuinely low-priority issue and the vendor's CVSS of 3.7 is honest, not inflated. The vector CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N correctly captures a narrow flaw: the demonstrated impact is unauthorized directory creation outside the extraction root (filesystem pollution / file-vs-directory squatting), with C:N, A:N and only I:L. The description is explicit that this is NOT arbitrary file-content write - createFile() still validates the final canonical path, so the classic zip-slip write primitive is blocked; only makeFile()'s unchecked intermediate mkdir() calls escape. AC:H is appropriate because the crafted entry must simultaneously make the final path resolve inside the destination while intermediate segments escape it. No EPSS score, no CISA KEV listing, and no public exploit were provided; a proof-of-concept RAR test fixture (mkdir-escape.rar) ships in the fix commit as a regression test but that is a maintainer test asset, not a weaponized public exploit. No signals conflict here - every source points to low real-world risk. The only real-world amplifier is exploitability being data-only (a crafted archive), so it can be triggered wherever untrusted RAR archives are auto-extracted via LocalFolderExtractor.

Exploit ScenarioDerived

An application uses junrar's LocalFolderExtractor to unpack user-supplied RAR archives (e.g. an upload/ingest pipeline). An attacker submits a crafted archive whose entry name causes intermediate mkdir() calls to create directories outside the intended extraction root, polluting the filesystem or squatting a path so a later security-sensitive write fails. No public weaponized exploit is identified, though a regression-test RAR fixture exists in the fix commit.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.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 16, 2026

Path traversal in junrar (the open source Java RAR archive library) prior to version 7.6.1 lets an attacker-supplied RAR archive cause LocalFolderExtractor to create directories outside the intended extraction root. The flaw exists because createFile() validates only the final canonical file path while makeFile() creates intermediate path segments with unchecked mkdir() calls, so a crafted entry whose final path resolves inside the destination can still spawn directories elsewhere - a specificity that is why the assessed vector carries AC:H. Impact is confined to directory creation and file-versus-directory squatting that can make later security-sensitive writes fail; there is no arbitrary file-content write and no confidentiality loss, unauthenticated remote attackers are the relevant threat model only when a host application extracts untrusted archives through this specific extractor, and no public exploit code has been identified at time of analysis. This is a genuinely low-priority issue, and the vendor's CVSS of 3.7 reflects that honestly rather than inflating it.

RemediationAI

Vendor-released patch: upgrade junrar to 7.6.1, the version in which LocalFolderExtractor was rewritten to normalize the validated path and create parents via Files.createDirectories instead of unchecked mkdir(); see the release page (https://github.com/junrar/junrar/releases/tag/v7.6.1) and the fixing commit (https://github.com/junrar/junrar/commit/e6e333b195a1e3ad271a18fd79d8ac1eb5289343), with full details in GHSA-89m4-43j5-vhhx (https://github.com/junrar/junrar/security/advisories/GHSA-89m4-43j5-vhhx). If the upgrade cannot be applied immediately, the most effective compensating control is to avoid extracting untrusted archives with LocalFolderExtractor and to pre-validate entry names (reject any component containing "..", absolute prefixes, backslashes, or NUL) before extraction, accepting that a name-filtering approach must be maintained against encoding and parser quirks and may reject legitimate archives. Alternatively, run extraction inside a dedicated, disposable directory owned by an unprivileged account whose process cannot write to anything the application later trusts, and treat that directory as untrusted output - the trade-off is additional operational overhead and potential breakage of workflows that share an extraction root with privileged consumers. Since the demonstrated impact is directory creation and path squatting rather than file-content write, monitoring for unexpected sibling directory creation (for example extract_evil next to extract) and ensuring later security-sensitive writes use fresh, unpredictable paths will detect and blunt the squatting scenario; note that the upstream regression test is disabled on Windows, so POSIX-path mitigations should be the assumed baseline.

Affected VersionsENISA

junrar < 7.6.1

Affected Packages

maven com.github.junrar:junrar fix: 7.6.1
euvd junrar fix: 7.6.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in maven, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The root cause is CWE-22 (Improper Limitation of a Pathname to a Restricted Directory / Path Traversal) inside src/main/java/com/github/junrar/LocalFolderExtractor.java. Before the fix, createFile() resolved the entry's final name against the destination and checked that the canonical result stayed inside the extraction root, but makeFile() then took the raw entry name, split it on "/", and iteratively called dir.mkdir() on each intermediate segment relative to the destination without any containment validation. Because mkdir() failures are ignored and no normalization was applied to the intermediate components, an archive entry could be crafted so that the final canonical path still resolved inside the destination (satisfying the caller's check) while the intermediate directory segments escaped the root - for example through dot-segment or sibling-prefix path structures. The committed fix (e6e333b195a1e3ad271a18fd79d8ac1eb5289343, released in v7.6.1) replaces the hand-rolled string concatenation with java.nio.file.Path, normalizes the already-validated path, and uses Files.createDirectories(file.getParent()) so that directory creation is derived from the same validated, normalized path as the file itself. The accompanying regression test rarWithDirectoryCreationOutsideTarget_ShouldThrowException is annotated @DisabledOnOs(OS.WINDOWS), and the exploit relies on POSIX path semantics, which matches the AC:H rating - the malicious archive must be precisely shaped to pass the final-path check while escaping via intermediates. The relevant CPE data in the inputs does not enumerate specific downstream applications; junrar is a library consumed by Java applications and services that unpack RAR files, so exposure is defined by those consumers rather than a single product SKU.

Know when Junrar 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) PRIMARY 3.7 LOW
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
vuln.today AI 3.7 LOW

Crafted archive delivered to an extraction service gives AV:N/PR:N; the dual-constraint path craft justifies AC:H; impact is directory creation only, so I:L with C:N/A:N.

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

Primary rating from Vendor (github).

CVSS VectorVendor: github

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

Lifecycle Timeline

1
Patch available
Sep 16, 2026 - 20:18 EUVD

DescriptionCVE.org

Junrar is an open source Java RAR archive library. Prior to version 7.6.1, LocalFolderExtractor in src/main/java/com/github/junrar/LocalFolderExtractor.java can create directories outside the intended extraction root when processing a crafted archive entry. LocalFolderExtractor.createFile() validates only the final canonical file path, while LocalFolderExtractor.makeFile() creates intermediate path segments with unchecked mkdir() calls. An entry can therefore make the final path resolve inside the destination while causing intermediate directory creation outside it, enabling filesystem pollution or file-versus-directory squatting that can make later security-sensitive writes fail. The demonstrated impact is directory creation, not unconditional arbitrary file-content write. This issue is fixed in version 7.6.1.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 5 maven packages depend on com.github.junrar:junrar (1 direct, 4 indirect)

Ecosystem-wide dependent count for version 7.6.1.

Threat Intelligence Overview

EPSS Score
0.3%
Top 77% exploitable
Prevalence
Medium
popular open-source Java RAR library, bundled by Apache Tika and others
Threat Intel
1
1 source
Exploit
POC
Public exploit code exists
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 LOW
CISA KEV No
Public POC Yes
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.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
Defer
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Low

Priority Score

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