Security Fix for Directory Traversal - huntr.dev - #2
Open
huntr-helper wants to merge 2 commits into
Open
Conversation
[FIX] Avoid path traversal through normalization
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
https://huntr.dev/app/users/Mik317 has fixed the Directory Traversal vulnerability 🔨. Mik317 has been awarded $25 for fixing the vulnerability through the huntr bug bounty program 💵. Think you could fix a vulnerability like this?
Get involved at https://huntr.dev/
Q | A
Version Affected | ALL
Bug Fix | YES
Original Pull Request | 418sec#1
GitHub Issue URL | #1
Vulnerability README | https://github.com/418sec/huntr/blob/master/bounties/npm/node-asset-cache/1/README.md
User Comments:
📊 Metadata *
Please enter the direct URL for this bounty on huntr.dev. This is compulsory and will help us process your bounty submission quicker.
Bounty URL: https://www.huntr.dev/app/bounties/open/1-npm-node-asset-cache
⚙️ Description *
The
fixhas been applied to avoidpath traversalissues, and checks if there are..sequences +normalizesthepath providedin order to avoidfile fetchingby other resources.💻 Technical Description *
The fix is made through the
checkFilefunction, which checks the paths in 2 ways:path.normalizemakes possible avoid most of the casesfile.replace('..', '')avoids eventual bypasses working inwinwith other syntaxes like../\or..\\, deleting all thedouble dotsto prevent the dir escalation.🐛 Proof of Concept (PoC) *
server.jsfile:node server.jscurl http://localhost:9000/test/../../../../../../../../../../../etc/passwd --path-as-is🔥 Proof of Fix (PoF) *
Same steps above with the fixed version:

👍 User Acceptance Testing (UAT)
All works correctly