// For flags

CVE-2024-24828

Local Privilege Escalation in execuatables bundled by pkg

Severity Score

7.8
*CVSS v3.1

Exploit Likelihood

*EPSS

Affected Versions

*CPE

Public Exploits

0
*Multiple Sources

Exploited in Wild

-
*KEV

Decision

Track*
*SSVC
Descriptions

pkg is tool design to bundle Node.js projects into an executables. Any native code packages built by `pkg` are written to a hardcoded directory. On unix systems, this is `/tmp/pkg/*` which is a shared directory for all users on the same local system. There is no uniqueness to the package names within this directory, they are predictable. An attacker who has access to the same local system has the ability to replace the genuine executables in the shared directory with malicious executables of the same name. A user may then run the malicious executable without realising it has been modified. This package is deprecated. Therefore, there will not be a patch provided for this vulnerability. To check if your executable build by pkg depends on native code and is vulnerable, run the executable and check if `/tmp/pkg/` was created. Users should transition to actively maintained alternatives. We would recommend investigating Node.js 21’s support for single executable applications. Given the decision to deprecate the pkg package, there are no official workarounds or remediations provided by our team. Users should prioritize migrating to other packages that offer similar functionality with enhanced security.

pkg es una herramienta de diseño para agrupar proyectos de Node.js en archivos ejecutables. Cualquier paquete de código nativo creado por `pkg` se escribe en un directorio codificado. En sistemas Unix, este es `/tmp/pkg/*` que es un directorio compartido para todos los usuarios en el mismo sistema local. Los nombres de los paquetes dentro de este directorio no son únicos, son predecibles. Un atacante que tiene acceso al mismo sistema local tiene la capacidad de reemplazar los ejecutables genuinos en el directorio compartido con ejecutables maliciosos del mismo nombre. Luego, un usuario puede ejecutar el ejecutable malicioso sin darse cuenta de que ha sido modificado. Este paquete está en desuso. Por lo tanto, no se proporcionará ningún parche para esta vulnerabilidad. Para verificar si su ejecutable compilado por pkg depende del código nativo y es vulnerable, ejecute el ejecutable y verifique si se creó `/tmp/pkg/`. Los usuarios deben hacer la transición a alternativas mantenidas activamente. Recomendamos investigar la compatibilidad de Node.js 21 con aplicaciones ejecutables únicas. Dada la decisión de dejar de usar el paquete pkg, nuestro equipo no ha proporcionado soluciones ni soluciones oficiales. Los usuarios deben priorizar la migración a otros paquetes que ofrezcan funciones similares con seguridad mejorada.

*Credits: N/A
CVSS Scores
Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High
Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
None
* Common Vulnerability Scoring System
SSVC
  • Decision:Track*
Exploitation
None
Automatable
No
Tech. Impact
Total
* Organization's Worst-case Scenario
Timeline
  • 2024-01-31 CVE Reserved
  • 2024-02-09 CVE Published
  • 2024-02-10 EPSS Updated
  • 2024-08-22 CVE Updated
  • ---------- Exploited in Wild
  • ---------- KEV Due Date
  • ---------- First Exploit
CWE
  • CWE-276: Incorrect Default Permissions
CAPEC
Affected Vendors, Products, and Versions
Vendor Product Version Other Status
Vendor Product Version Other Status <-- --> Vendor Product Version Other Status
Vercel
Search vendor "Vercel"
Pkg
Search vendor "Vercel" for product "Pkg"
<= 5.8.1
Search vendor "Vercel" for product "Pkg" and version " <= 5.8.1"
node.js
Affected