Command Injection Affecting total.js package, versions <3.4.7
Threat Intelligence
Do your applications use this vulnerable package?
In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.
Test your applications- Snyk ID SNYK-JS-TOTALJS-1046672
- published 29 Jan 2021
- disclosed 29 Jan 2021
- credit Alessio Dellalibera
Introduced: 29 Jan 2021
CVE-2020-28494 Open this link in a new tabHow to fix?
Upgrade total.js
to version 3.4.7 or higher.
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);