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


0.0
high

Snyk CVSS

    Attack Complexity Low
    User Interaction Required
    Scope Changed
    Confidentiality High
    Integrity High

    Threat Intelligence

    EPSS 0.62% (79th percentile)
Expand this section
NVD
8.1 high
Expand this section
SUSE
8.1 high
Expand this section
Red Hat
8.1 high

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

How 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.

References