MediumGHSA-f5x3-32g6-xq36CVE-2024-28863

Denial of service while parsing a tar file due to lack of folders count validation

Published 22 Mar 2024 · Updated 10 Sept 2026

Affected packages

Affected
<6.2.1
Fixed in
6.2.1
Update to the fixed version for your release line, for example:npm install node-tar@6.2.1
tarnpm
Affected
<6.2.1
Fixed in
6.2.1
Update to the fixed version for your release line, for example:npm install tar@6.2.1

Details

Description:

During some analysis today on npm's node-tar package I came across the folder creation process, Basicly if you provide node-tar with a path like this ./a/b/c/foo.txt it would create every folder and sub-folder here a, b and c until it reaches the last folder to create foo.txt, In-this case I noticed that there's no validation at all on the amount of folders being created, that said we're actually able to CPU and memory consume the system running node-tar and even crash the nodejs client within few seconds of running it using a path with too many sub-folders inside

Steps To Reproduce:

You can reproduce this issue by downloading the tar file I provided in the resources and using node-tar to extract it, you should get the same behavior as the video

Proof Of Concept:

Here's a video show-casing the exploit:

Impact

Denial of service by crashing the nodejs client when attempting to parse a tar archive, make it run out of heap memory and consuming server CPU and memory resources

Report resources

payload.txt archeive.tar.gz

Note

This report was originally reported to GitHub bug bounty program, they asked me to report it to you a month ago

Is GHSA-f5x3-32g6-xq36 in any of your client repos?

Checking one package by hand is fine. Checking it across forty client projects is not. NPMscan reads the lockfiles in every GitHub repo you pick, finds each project with an affected node-tar, and gives you the command that fixes it.

References

Advisory data from OSV.dev (opens OSV.dev in a new tab), refreshed daily.