GitHub Advisoryadvisory · npm

GHSA-p493-635q-r6gr Remote code execution via the `pretty` option.

MEDIUM Published 2021-03-03 Modified 2025-04-16 Official page ↗
Aliases
CVE-2021-21353
Ecosystem
npm
Packages
pug, pug-code-gen
Severity
Moderate
CVSS vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:H/A:N
Weaknesses
CWE-74, CWE-94
Reviewed
2021-03-03

Affected packages

• npm pug: < 3.0.1 → fixed in 3.0.1 • npm pug-code-gen: < 2.0.3 → fixed in 2.0.3 • npm pug-code-gen: >= 3.0.0, < 3.0.2 → fixed in 3.0.2

Description

Impact If a remote attacker was able to control the `pretty` option of the pug compiler, e.g. if you spread a user provided object such as the query parameters of a request into the pug template inputs, it was possible for them to achieve remote code execution on the node.js backend. Patches Upgrade to `[email protected]` or `[email protected]` or `[email protected]`, which correctly sanitise the parameter. Workarounds If there is no way for un-trusted input to be passed to pug as the `pretty` option, e.g. if you compile templates in advance before applying user input to them, you do not need to upgrade. References Original report: https://github.com/pugjs/pug/issues/3312 For more information If you believe you have found other vulnerabilities, please DO NOT open an issue. Instead, you can follow the instructions in our Security Policy

Related

Alias · CVE (1)

  • CVE-2021-21353 Pug is an npm package which is a high-performance template engine. vulnerability

Weakness · CWE (2)

  • CWE-74 Improper Neutralization of Special Elements in Output Used by a Downstream Component weakness
  • CWE-94 Improper Control of Generation of Code weakness

References