CVE-2026-49982

tmp is a temporary file and directory creator for node.js. In version 0.2.6, the _assertPath guard added to tmp rejects only string values that contain the substring ... It is bypassed when prefix, postfix, or template is supplied as a non-string value (Array, Buffer, or any object) whose includes('..') returns falsy but whose stringification still contains ../. The value flows through Array.prototype.join/String coercion inside _generateTmpName and path.join(tmpDir, opts.dir, name), producing a final path that escapes tmpdir and creates a file or directory at an attacker-controlled location with the host process's privileges. This affects any application that forwards untrusted request data (a common pattern is JSON body fields or qs-parsed bracket-array query strings such as ?prefix[]=...) into tmp.file, tmp.fileSync, tmp.dir, tmp.dirSync, tmp.tmpName, or tmp.tmpNameSync without explicit type coercion. This vulnerability is fixed in 0.2.7.
References
Configurations

Configuration 1 (hide)

cpe:2.3:a:raszi:tmp:0.2.6:*:*:*:*:node.js:*:*

History

26 Oct 2026, 11:10

Type Values Removed Values Added
Summary
  • (es) tmp es un creador de archivos y directorios temporales para node.js. En la versión 0.2.6, la protección _assertPath añadida a tmp rechaza solo valores de cadena que contienen la subcadena ... Se omite cuando prefix, postfix o template se suministra como un valor no-cadena (Array, Buffer o cualquier objeto) cuyo includes(’..’) devuelve falso pero cuya conversión a cadena aún contiene .. / . El valor fluye a través de la coerción Array.prototype.join/String dentro de _generateTmpName y path.join(tmpDir, opts.dir, name), produciendo una ruta final que escapa de tmpdir y crea un archivo o directorio en una ubicación controlada por el atacante con los privilegios del proceso anfitrión. Esto afecta a cualquier aplicación que reenvía datos de solicitud no confiables (un patrón común son los campos de cuerpo JSON o las cadenas de consulta de array entre corchetes analizadas por qs como ?prefix[]=...) a tmp.file, tmp.fileSync, tmp.dir, tmp.dirSync, tmp.tmpName o tmp.tmpNameSync sin coerción de tipo explícita. Esta vulnerabilidad se corrige en 0.2.7.

Information

Published : 2026-06-11 17:16

Updated : 2026-10-26 11:10


NVD link : CVE-2026-49982

Mitre link : CVE-2026-49982

CVE.ORG link : CVE-2026-49982


JSON object : View

Products Affected

raszi

  • tmp
CWE
CWE-20

Improper Input Validation

CWE-22

Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')