Denial of service while parsing a tar file due to lack of folders count validation [MODERATE] [9] #210
Labels
No labels
blocked
duplicate
needs criteria
needs estimate
needs tests
question
requires documentation
type
admin
type
alert
type
bug
type
change
type
defect
type
dependencies
type
epic
type
spike
type
story
type
subtask
won't fix
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: External/card-drop#210
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Package: tar (npm)
Affected versions: < 6.2.1
Patched version: 6.2.1
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 createfoo.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 insideSteps 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
Note
This report was originally reported to GitHub bug bounty program, they asked me to report it to you a month ago