Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-44257

CVE-2026-44257: efw4.X Framework Zip Path Traversal RCE

CVE-2026-44257 is a path traversal RCE vulnerability in efw4.X Enterprise Framework allowing unauthenticated attackers to upload malicious JSP webshells. This article covers technical details, affected versions, and fixes.

Published:

CVE-2026-44257 Overview

CVE-2026-44257 is a path traversal vulnerability in efw4.X, an Enterprise Framework for Web. The flaw resides in the efw.file.FileManager.unZip function, which writes ZIP archive entries to disk using new File(baseDir, zipEntry.getName()) without any canonical-path validation. An attacker can craft a ZIP entry with traversal sequences such as ../../../pwned.jsp to escape the intended extraction directory. Combined with the framework's multipart /uploadServlet and an event chain invoking file.saveUploadFiles and FileManager.unZip, an unauthenticated remote attacker can drop a JSP webshell into the servlet context root. The vulnerability is tracked under [CWE-77] and is fixed in version 4.08.010.

Critical Impact

Unauthenticated remote attackers can write arbitrary files including JSP webshells, achieving remote code execution as the Tomcat process user.

Affected Products

  • efw4.X versions prior to 4.08.010
  • Applications using efw.file.FileManager.unZip for archive extraction
  • Tomcat-hosted deployments exposing the framework's /uploadServlet endpoint

Discovery Timeline

  • 2026-05-12 - CVE-2026-44257 published to NVD
  • 2026-05-13 - Last updated in NVD database

Technical Details for CVE-2026-44257

Vulnerability Analysis

The vulnerability is a classic Zip Slip path traversal flaw in the archive extraction routine of efw4.X. The FileManager.unZip method iterates through ZIP entries and constructs the output file path by passing the raw entry name directly into the java.io.File constructor. Java's File class resolves .. segments without rejecting them, so an entry named ../../../pwned.jsp writes to a location outside the intended baseDir.

Because the extraction runs in the Tomcat worker process, the attacker can target any directory that the Tomcat user can write to. Dropping a JSP file into the servlet context root yields immediate remote code execution. The framework's /uploadServlet accepts multipart uploads without authentication, and an event handler chain calls file.saveUploadFiles followed by FileManager.unZip on attacker-supplied archives.

Root Cause

The root cause is missing canonical-path validation in FileManager.unZip. Secure ZIP extraction requires resolving the destination path with File.getCanonicalPath() and verifying that it remains within the intended base directory before writing. The vulnerable code performs no such check, allowing traversal sequences to pass through unsanitized.

Attack Vector

The attack vector is network-based and requires no credentials or user interaction. An attacker submits a malicious ZIP archive containing an entry name with traversal sequences to the /uploadServlet endpoint. The framework saves the upload and invokes FileManager.unZip, which writes the embedded JSP webshell into the servlet context root. The attacker then requests the dropped JSP file to execute arbitrary commands as the Tomcat user.

The vulnerability mechanism is described in the GitHub Security Advisory GHSA-q7jx-7x5r-r9f6. No verified proof-of-concept code is publicly referenced in the advisory.

Detection Methods for CVE-2026-44257

Indicators of Compromise

  • Newly created .jsp, .jspx, or .war files in the Tomcat servlet context root or webapps/ subdirectories that do not match the application's deployment manifest
  • ZIP archives uploaded to /uploadServlet containing entry names with ../ sequences or absolute paths
  • Outbound network connections originating from the Tomcat process to attacker-controlled infrastructure following a multipart upload
  • Shell process spawns (/bin/sh, cmd.exe, powershell.exe) parented by the Tomcat JVM process

Detection Strategies

  • Inspect web access logs for POST requests to /uploadServlet followed by GET requests to previously unseen .jsp paths from the same source IP
  • Parse uploaded ZIP archives at the network edge and flag any entry name containing .. path components or non-relative paths
  • Monitor file integrity on the Tomcat webapps/ directory tree for unexpected JSP file creation events
  • Correlate Java process telemetry to detect command interpreters spawned by the Tomcat JVM

Monitoring Recommendations

  • Enable verbose access logging on the Tomcat connector serving the efw4.X application
  • Forward file system audit events for the servlet context root to a centralized logging platform
  • Alert on any executable web content created outside of approved deployment workflows
  • Track multipart upload sizes and entry counts to identify anomalous archive submissions

How to Mitigate CVE-2026-44257

Immediate Actions Required

  • Upgrade efw4.X to version 4.08.010 or later, which contains the canonical-path validation fix
  • Audit the Tomcat webapps/ directory for unauthorized JSP files and remove any that cannot be attributed to legitimate deployments
  • Review web server access logs for prior exploitation attempts against /uploadServlet
  • Rotate any credentials or secrets accessible to the Tomcat process if compromise is suspected

Patch Information

The maintainers released a fix in efw4.X version 4.08.010. The patch adds canonical-path validation to FileManager.unZip to reject ZIP entries that resolve outside the extraction base directory. Patch details are documented in the GitHub Security Advisory GHSA-q7jx-7x5r-r9f6.

Workarounds

  • Restrict network access to the /uploadServlet endpoint using a reverse proxy or web application firewall rule that blocks unauthenticated requests
  • Deploy a WAF signature that inspects multipart application/zip payloads and rejects archives containing ../ in entry names
  • Run the Tomcat process under a least-privilege account with write access limited to directories that cannot serve executable content
  • Disable archive extraction features in the framework if they are not required by the application
bash
# Configuration example: restrict /uploadServlet access at the reverse proxy
location /uploadServlet {
    deny all;
    return 403;
}

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.