Do your applications use this vulnerable package?
Test your applications
Overview
total.js is a framework for Node.js platfrom written in pure JavaScript similar to PHP's Laravel or Python's Django or ASP.NET MVC. It can be used as web, desktop, service or IoT application.
Affected versions of this package are vulnerable to Command Injection. The issue occurs in the image.pipe
and image.stream
functions. The type
parameter is used to build the command that is then executed using child_process.spawn
. The issue occurs because child_process.spawn
is called with the option shell
set to true
and because the type
parameter is not properly sanitized.
PoC
const total = require('total.js');
let image = Image.load("");
let payload = ";touch HACKED;";
image.stream(payload);
// image.pipe(null, payload);
Remediation
Upgrade total.js
to version 3.4.7 or higher.
References
CVSS Score
8.6
high severity
-
Attack VectorNetwork
-
Attack ComplexityLow
-
Privileges RequiredNone
-
User InteractionNone
-
ScopeUnchanged
-
ConfidentialityHigh
-
IntegrityLow
-
AvailabilityLow
- Credit
- Alessio Dellalibera
- CVE
- CVE-2020-28494
- CWE
- CWE-78
- Snyk ID
- SNYK-JS-TOTALJS-1046672
- Disclosed
- 29 Jan, 2021
- Published
- 29 Jan, 2021