Arbitrary File Overwrite Affecting tar package, versions <3.2.3 >=4.0.0 <4.4.15 >=5.0.0 <5.0.7 >=6.0.0 <6.1.2
Snyk CVSS
Threat Intelligence
Do your applications use this vulnerable package?
In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.
Test your applications- Snyk ID SNYK-JS-TAR-1536528
- published 4 Aug 2021
- disclosed 4 Aug 2021
- credit ginkoid, chen-robert
Introduced: 4 Aug 2021
CVE-2021-32803 Open this link in a new tabHow to fix?
Upgrade tar
to version 3.2.3, 4.4.15, 5.0.7, 6.1.2 or higher.
Overview
tar is a full-featured Tar for Node.js.
Affected versions of this package are vulnerable to Arbitrary File Overwrite. This is due to insufficient symlink protection.
node-tar
aims to guarantee that any file whose location would be modified by a symbolic link is not extracted. This is, in part, achieved by ensuring that extracted directories are not symlinks. Additionally, in order to prevent unnecessary stat
calls to determine whether a given path is a directory, paths are cached when directories are created.
This logic is insufficient when extracting tar files that contain both a directory and a symlink with the same name as the directory. This order of operations results in the directory being created and added to the node-tar
directory cache. When a directory is present in the directory cache, subsequent calls to mkdir
for that directory are skipped.
However, this is also where node-tar
checks for symlinks occur. By first creating a directory, and then replacing that directory with a symlink, it is possible to bypass node-tar
symlink checks on directories, essentially allowing an untrusted tar file to symlink into an arbitrary location and subsequently extracting arbitrary files into that location.