Un módulo de nodeJS con millones de descargas, cuenta con una vulnerabilidad que puede permitir un ataque de Denegación de Servicio (Two) en un servidor u obtener acceso a shell remoto completo.

Asignado al CVE-2020-7699, la vulnerabilidad radica en el componente npm “express-fileupload”, que se ha descargado al menos 7.3 millones de veces desde npm. La estimación es conservadora, ya que no tiene en cuenta las descargas de GitHub, sitios web espejo y otros repositorios clonados. Este tipo de vulnerabilidad generalmente ocurre en el código JavaScript (JS) debido a la naturaleza fundamental del lenguaje. Debido a que JS es un lenguaje basado en prototipos, cada objeto, función y estructura de datos en el lenguaje tiene una propiedad inherente “Prototype” which can be modified using the mutator “__proto__”. The ability to modify existing code is a designed feature that allows for easy extension of existing objects, with more properties and methods.

Prototype pollution attacks like this exploit this 'design flaw'’ by injecting objects incompatible with existing ones to cause errors, which can lead to Denial of Service or shell execution.

The attack is possible thanks to the function “parseNested” provided by express-fileupload. When enabled, this option is responsible for interpreting uploaded JSON data into nested objects. The express-fileupload module provides various options for uploading and managing files in a Node.js application. Entre ellos, el argumento de parseNested hace que el argumento sea plano.

Cuando se proporciona una carga útil en el encabezado HTTPContent-Disposition”, un atacante puede proporcionar un valor__proto __. ToStringpara activar el ataque. Básicamente, la solicitud HTTP anula y corrompe el método incorporadotoStringde cada objeto presente en su código. Then, si elObject.prototype.toStringpuede contaminarse, esto causa un error, y para cada solicitud siempre se devuelve un ERROR 500.

Una variación más sofisticada permite a un atacante obtener un shell en el sistema vulnerable. A las pocas horas de recibir el informe de un investigador, “express-fileupload” solucionó la vulnerabilidad, y los usuarios afectados deben descargar la versión 1.1.9 parcheada desde npm.


Leave a Reply

Your email address will not be published. Required fields are marked *

More news
A
Read more »
A researcher manages to hack some concert tickets using AI
Read more »
Una nueva campaña de phishing suplanta a ChatGPT
Read more »
Nintendo suffers a data breach through a supplier
Read more »
Trying to make fun of a scammer is not a very good idea
Read more »