All vulnerability reports

Zip Slip Path Traversal on Node Unpack

Overview

Specially crafted ZIP archives can escape the intended extraction directory during Node.js download and extraction in Vaadin 14.2.0 through 14.14.0, 23.0.0 through 23.6.6, 24.0.0 through 24.9.8, and 25.0.0 through 25.0.2.


See CWE-22 Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

Description

Vaadin's build process can automatically download and extract Node.js if it is not installed locally. If an attacker can intercept or control this download (via DNS hijacking, MITM attack, compromised mirror, or supply chain attack), they can serve a malicious archive containing path traversal sequences that write files outside the intended extraction directory -- potentially anywhere the application has write access.

Affected products and mitigation

Users of affected versions should upgrade to a fixed version.
Product version Mitigation
Vaadin 14.2.0 - 14.14.0 
Upgrade to 14.14.1
Vaadin 23.0.0 - 23.6.6
Upgrade to 23.6.7
Vaadin 24.0.0 - 24.9.8
Upgrade to 24.9.9
Vaadin 25.0.0 - 25.0.2
Upgrade to 25.0.3 or newer

Please note that Vaadin versions 10-13 and 15-22 are no longer supported and you should update either to the latest 14, 23, 24 or 25 version.
 
Workaround: Use a globally preinstalled Node.js that is compatible with the Vaadin version instead of relying on Vaadin's automatic Node.js download.

Artifacts

Maven coordinates Vulnerable version Fixed version
com.vaadin:flow-server  14.2.0 - 14.14.0 ≥14.14.1
com.vaadin:flow-server  23.0.0 - 23.6.6 ≥23.6.7 
com.vaadin:flow-server  24.0.0 - 24.9.8  ≥24.9.9
com.vaadin:flow-build-tools 25.0.0 - 25.0.2 ≥25.0.3 

References

  • https://github.com/vaadin/flow/pull/23125

History

  • 2026-03-10: Initial vulnerability report published