CVE-2026-2741
Java vulnerability analysis and mitigation

Overview

CVE-2026-2741 is a path traversal vulnerability ("Zip Slip") in Vaadin's build-time Node.js download and extraction process. When Node.js is not locally installed, Vaadin's build system automatically downloads and extracts it from a remote source; a specially crafted ZIP archive can use path traversal sequences to write files outside the intended extraction directory. Affected versions include Vaadin 14.2.0–14.14.0, 15.0.0–23.6.6, 24.0.0–24.9.8, and 25.0.0–25.0.2. It was published on March 10, 2026, and carries a CVSS v3.1 base score of 6.8 (Medium) (Feedly, Vaadin Advisory).

Technical details

The root cause is CWE-22 (Improper Limitation of a Pathname to a Restricted Directory — Path Traversal): Vaadin's default archive extractor does not validate that extracted file paths remain within the intended target directory before writing them to disk. An attacker who can intercept or control the Node.js download — via DNS hijacking, a man-in-the-middle (MITM) attack, a compromised download mirror, or a supply chain attack — can serve a malicious ZIP archive containing entries with ../ sequences that escape the extraction directory. Exploitation requires high attack complexity (network-level interception or supply chain position) and no authentication, but does require specific preconditions (the target system must be configured to auto-download Node.js during a Vaadin build). The fix was implemented in the DefaultArchiveExtractor component of the Vaadin Flow framework (GitHub PR #23125, Feedly).

Impact

Successful exploitation allows an attacker to write arbitrary files to locations outside the intended Node.js extraction directory on the build server's filesystem. This can lead to overwriting sensitive configuration files, planting malicious executables, or achieving code execution if writable paths such as startup scripts or application directories are targeted. The integrity impact is rated High with a changed scope, meaning files outside the vulnerable component's sandbox can be affected; there is no direct confidentiality or availability impact per the CVSS scoring (Feedly, Vaadin Advisory).

Exploitation steps

  1. Identify a target: Locate a CI/CD pipeline or developer workstation running an affected Vaadin version (14.2.0–14.14.0, 15.0.0–23.6.6, 24.0.0–24.9.8, or 25.0.0–25.0.2) that does not have Node.js pre-installed globally, triggering Vaadin's automatic Node.js download during build.
  2. Position for interception: Gain a network-level interception position via DNS hijacking (spoofing the Node.js download hostname), a MITM attack on the build network, or compromise a Node.js download mirror used by the target.
  3. Craft a malicious ZIP archive: Create a ZIP file containing entries with path traversal sequences (e.g., ../../etc/cron.d/malicious or ../../.ssh/authorized_keys) pointing to sensitive filesystem locations outside the extraction directory.
  4. Serve the malicious archive: Replace or intercept the legitimate Node.js ZIP download response with the crafted archive so that Vaadin's DefaultArchiveExtractor receives and processes it.
  5. Trigger extraction: The Vaadin build process invokes the archive extractor, which writes the malicious file entries to attacker-controlled paths on the filesystem without validating that paths remain within the intended extraction directory.
  6. Achieve objective: Depending on the written file location, the attacker may achieve persistent code execution (e.g., via cron jobs, SSH keys, or overwritten scripts), privilege escalation, or further lateral movement within the build environment (GitHub PR #23125, Feedly).

Indicators of compromise

  • File System: Unexpected files written outside the Node.js extraction directory (e.g., in /etc/, /home/, ~/.ssh/, or application deployment directories) with timestamps coinciding with a Vaadin build execution; new or modified cron jobs, SSH authorized_keys, or startup scripts owned by the build process user.
  • Network: Anomalous DNS responses for Node.js download hostnames resolving to unexpected IP addresses; TLS certificate mismatches or unexpected HTTP redirects during Node.js download; outbound connections to unfamiliar hosts during the build phase.
  • Logs: Build logs showing Node.js download and extraction completing successfully but from an unexpected source URL or IP; filesystem audit logs (e.g., auditd) recording file writes to sensitive directories by the Java/Maven/Gradle build process.

Mitigation and workarounds

Vaadin has released patched versions addressing this vulnerability: upgrade to 14.14.1 (for 14.2.0–14.14.0), 23.6.7 (for 15.0.0–23.6.6), 24.9.9 (for 24.0.0–24.9.8), or 25.0.3 or newer (for 25.0.0–25.0.2) (GitHub PR #23131, GitHub PR #23133, GitHub PR #23135, Vaadin Advisory). As an immediate workaround, install a compatible version of Node.js globally on all build systems so that Vaadin does not trigger the automatic download and extraction process. Note that Vaadin versions 10–13 and 15–22 are end-of-life and should be migrated to a supported branch before applying patches.

Community reactions

The vulnerability received routine coverage from automated vulnerability tracking services including VulDB, ENISA's EUVD, and CVEFeed shortly after disclosure in March 2026. Social media activity was limited to automated CVE notification accounts on Bluesky and Nitter. No notable independent researcher commentary or significant media coverage has been identified beyond standard vulnerability database entries (Feedly).

Additional resources


SourceThis report was generated using AI

Related Java vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

GHSA-p279-2cqp-84jgCRITICAL9.6
  • Java logoJava
  • org.openidentityplatform.opendj:opendj-server-legacy
NoYesJul 24, 2026
GHSA-fp43-vj7g-pg92HIGH7.5
  • Java logoJava
  • org.omnifaces:omnifaces
NoYesJul 24, 2026
GHSA-7ppr-r889-mcf2HIGH7.5
  • Java logoJava
  • org.http4s:http4s-blaze-server_2.12
NoYesJul 24, 2026
GHSA-mhvj-jhpq-885vHIGH7.4
  • Java logoJava
  • org.http4s:http4s-blaze-server_2.13
NoYesJul 24, 2026
GHSA-46q4-43ph-c6frHIGH7.4
  • Java logoJava
  • org.http4s:blaze-http_2.12
NoYesJul 24, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management