GitHub Advisoryadvisory · npm
GHSA-p493-635q-r6gr Remote code execution via the `pretty` option.
MEDIUM
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
References
- https://github.com/pugjs/pug/security/advisories/GHSA-p493-635q-r6gr web
- https://nvd.nist.gov/vuln/detail/CVE-2021-21353 advisory
- https://github.com/pugjs/pug/issues/3312 web
- https://github.com/pugjs/pug/pull/3314 web
- https://github.com/pugjs/pug/commit/991e78f7c4220b2f8da042877c6f0ef5a4683be0 web
- https://github.com/pugjs/pug/releases/tag/pug%403.0.1 web
- https://www.npmjs.com/package/pug web
- https://www.npmjs.com/package/pug-code-gen web