Closed huntr-helper closed 4 years ago
@pirelenito - let me know if you have any questions or thoughts.
Cheers! π°
Thanks for reaching out @JamieSlome, but as stated in the documentation:
This configuration is not not meant to accept arbitrary user input and it is executed by the plugin without any sanitization.
This was previously reported and closed. See: https://github.com/pirelenito/git-revision-webpack-plugin/issues/49#issuecomment-613617147
I'll close this PR for now, but ping me if you feel that the existing documentation solution is not sufficient.
Thanks.
@pirelenito Thanks for the swift response and pointing this out.
Cheers π
https://huntr.dev/users/Asjidkalam has fixed the Remote Code Execution vulnerability π¨. Asjidkalam 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 | https://github.com/418sec/git-revision-webpack-plugin/pull/2 Vulnerability README | https://github.com/418sec/huntr/blob/master/bounties/npm/git-revision-webpack-plugin/1/README.md
User Comments:
π Metadata *
Command injection vulnerability
Bounty URL: https://www.huntr.dev/bounties/1-npm-git-revision-webpack-plugin/
βοΈ Description *
The git-revision-webpack-plugin module is vulnerable against RCE since a command is crafted using user inputs not validated and then executed, leading to arbitrary command injection. The argument options can be controlled by users without any sanitization. It was using
exec()
function which is vulnerable to Command Injection if it accepts user input and it goes through any sanitization or escaping.π» Technical Description *
The use of the
child_process
functionexec()
is highly discouraged if you accept user input and don't sanitize/escape them. I replaced it withexecFile()
which mitigates any possible Command Injections as it accepts input as arrays.π Proof of Concept (PoC) *
Install the package and run the below code, you'll need to have a PDF to test:
A file named
HACKED
will be created in the current working directory.π₯ Proof of Fix (PoF) *
After applying the fix, run the PoC again and no files will be created. Hence command injection is mitigated.
π User Acceptance Testing (UAT)
Only
execFile
is used, no breaking changes introduced.