org.codehaus.plexus:plexus-archiver@3.5 vulnerabilities

Direct Vulnerabilities

Known vulnerabilities in the org.codehaus.plexus:plexus-archiver package. This does not include vulnerabilities belonging to this package’s dependencies.

Automatically find and fix vulnerabilities affecting your projects. Snyk scans for vulnerabilities and provides fixes for free.
Fix for free
Vulnerability Vulnerable Version
  • C
Directory Traversal

Affected versions of this package are vulnerable to Directory Traversal which might lead to an arbitrary file creation and possibly remote code execution.

When extracting an archive with an entry that already exists in the destination directory as a symbolic link whose target does not exist - the resolveFile() function will return the symlink's source instead of its target, which will pass the verification that ensures the file will not be extracted outside of the destination directory. Later Files.newOutputStream(), that follows symlinks by default, will actually write the entry's content to the symlink's target.

How to fix Directory Traversal?

Upgrade org.codehaus.plexus:plexus-archiver to version 4.8.0 or higher.

[,4.8.0)
  • M
Arbitrary File Write via Archive Extraction (Zip Slip)

org.codehaus.plexus:plexus-archiver is a Collection of Plexus components to create archives or extract files out of an archive to a directory with a unified Archiver/UnArchiver API whatever the archive format is.

Affected versions of the package are vulnerable to Arbitrary File Write via Archive Extraction (AKA "Zip Slip").

It is exploited using a specially crafted zip archive, that holds path traversal filenames. When exploited, a filename in a malicious archive is concatenated to the target extraction directory, which results in the final path ending up outside of the target folder. For instance, a zip may hold a file with a "../../file.exe" location and thus break out of the target folder. If an executable or a configuration file is overwritten with a file containing malicious code, the problem can turn into an arbitrary code execution issue quite easily.

The following is an example of a zip archive with one benign file and one malicious file. Extracting the malicous file will result in traversing out of the target folder, ending up in /root/.ssh/ overwriting the authorized_keys file:


+2018-04-15 22:04:29 ..... 19 19 good.txt

+2018-04-15 22:04:42 ..... 20 20 ../../../../../../root/.ssh/authorized_keys

How to fix Arbitrary File Write via Archive Extraction (Zip Slip)?

Upgrade org.codehaus.plexus:plexus-archiverto version 3.6.0 or higher.

[,3.6.0)