-
Notifications
You must be signed in to change notification settings - Fork 4
pug-2.0.4.tgz: 4 vulnerabilities (highest severity is: 8.1) #4
Description
Vulnerable Library - pug-2.0.4.tgz
A clean, whitespace-sensitive template language for writing HTML
Library home page: https://registry.npmjs.org/pug/-/pug-2.0.4.tgz
Path to dependency file: /package.json
Path to vulnerable library: /node_modules/pug/package.json
Found in HEAD commit: b3a60f2fbb6a737eb638b50bba11114a200c71e8
Vulnerabilities
| Vulnerability | Severity | Exploit Maturity | EPSS | Dependency | Type | Fixed in (pug version) | Remediation Possible** | Reachability | |
|---|---|---|---|---|---|---|---|---|---|
| CVE-2021-21353 | 6.8 | Not Defined | 1.3000001% | pug-2.0.4.tgz | Direct | pug - 3.0.1,pug-code-gen - 3.0.2,pug-code-gen - 2.0.3 | ❌ | ||
| CVE-2026-4800 | 8.1 | Not Defined | 0.1% | lodash-4.17.23.tgz | Transitive | N/A* | ❌ | ||
| CVE-2024-36361 | 6.8 | Not Defined | 0.3% | detected in multiple dependencies | Direct | N/A | ❌ | ||
| CVE-2026-2950 | 6.5 | Not Defined | 0.0% | lodash-4.17.23.tgz | Transitive | N/A* | ❌ |
*For some transitive vulnerabilities, there is no version of direct dependency with a fix. Check the "Details" section below to see if there is a version of transitive dependency where vulnerability is fixed.
**In some cases, Remediation PR cannot be created automatically for a vulnerability despite the availability of remediation
Details
CVE-2021-21353
Vulnerable Library - pug-2.0.4.tgz
A clean, whitespace-sensitive template language for writing HTML
Library home page: https://registry.npmjs.org/pug/-/pug-2.0.4.tgz
Path to dependency file: /package.json
Path to vulnerable library: /node_modules/pug/package.json
Dependency Hierarchy:
- ❌ pug-2.0.4.tgz (Vulnerable Library)
Found in HEAD commit: b3a60f2fbb6a737eb638b50bba11114a200c71e8
Found in base branch: main
Reachability Analysis
The vulnerable code is unreachable
Vulnerability Details
Pug is an npm package which is a high-performance template engine. In pug before version 3.0.1, 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. This is fixed in version 3.0.1. This advisory applies to multiple pug packages including "pug", "pug-code-gen". pug-code-gen has a backported fix at version 2.0.3. This advisory is not exploitable 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.
Publish Date: 2021-03-03
URL: CVE-2021-21353
Threat Assessment
Exploit Maturity: Not Defined
EPSS: 1.3000001%
CVSS 3 Score Details (6.8)
Base Score Metrics:
- Exploitability Metrics:
- Attack Vector: Network
- Attack Complexity: High
- Privileges Required: None
- User Interaction: None
- Scope: Changed
- Impact Metrics:
- Confidentiality Impact: None
- Integrity Impact: High
- Availability Impact: None
Suggested Fix
Type: Upgrade version
Origin: GHSA-p493-635q-r6gr
Release Date: 2021-03-03
Fix Resolution: pug - 3.0.1,pug-code-gen - 3.0.2,pug-code-gen - 2.0.3
CVE-2026-4800
Vulnerable Library - lodash-4.17.23.tgz
Lodash modular utilities.
Library home page: https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz
Path to dependency file: /package.json
Path to vulnerable library: /node_modules/lodash/package.json
Dependency Hierarchy:
- pug-2.0.4.tgz (Root Library)
- pug-code-gen-2.0.3.tgz
- constantinople-3.1.2.tgz
- babel-types-6.26.0.tgz
- ❌ lodash-4.17.23.tgz (Vulnerable Library)
- babel-types-6.26.0.tgz
- constantinople-3.1.2.tgz
- pug-code-gen-2.0.3.tgz
Found in HEAD commit: b3a60f2fbb6a737eb638b50bba11114a200c71e8
Found in base branch: main
Vulnerability Details
Impact:
The fix for CVE-2021-23337 (GHSA-35jh-r3h4-6jhm) added validation for the variable option in _.template but did not apply the same validation to options.imports key names. Both paths flow into the same Function() constructor sink.
When an application passes untrusted input as options.imports key names, an attacker can inject default-parameter expressions that execute arbitrary code at template compilation time.
Additionally, _.template uses assignInWith to merge imports, which enumerates inherited properties via for..in. If Object.prototype has been polluted by any other vector, the polluted keys are copied into the imports object and passed to Function().
Patches:
Users should upgrade to version 4.18.0.
Workarounds:
Do not pass untrusted input as key names in options.imports. Only use developer-controlled, static key names.
Publish Date: 2026-03-31
URL: CVE-2026-4800
Threat Assessment
Exploit Maturity: Not Defined
EPSS: 0.1%
CVSS 3 Score Details (8.1)
Base Score Metrics:
- Exploitability Metrics:
- Attack Vector: Network
- Attack Complexity: High
- Privileges Required: None
- User Interaction: None
- Scope: Unchanged
- Impact Metrics:
- Confidentiality Impact: High
- Integrity Impact: High
- Availability Impact: High
Suggested Fix
Type: Upgrade version
Origin: GHSA-r5fr-rjxr-66jc
Release Date: 2026-03-31
Fix Resolution: lodash-amd - 4.18.0,lodash - 4.18.0,lodash.template - 4.18.0,lodash-es - 4.18.0
CVE-2024-36361
Vulnerable Libraries - pug-2.0.4.tgz, pug-code-gen-2.0.3.tgz
pug-2.0.4.tgz
A clean, whitespace-sensitive template language for writing HTML
Library home page: https://registry.npmjs.org/pug/-/pug-2.0.4.tgz
Path to dependency file: /package.json
Path to vulnerable library: /node_modules/pug/package.json
Dependency Hierarchy:
- ❌ pug-2.0.4.tgz (Vulnerable Library)
pug-code-gen-2.0.3.tgz
Default code-generator for pug. It generates HTML via a JavaScript template function.
Library home page: https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.3.tgz
Path to dependency file: /package.json
Path to vulnerable library: /node_modules/pug-code-gen/package.json
Dependency Hierarchy:
- pug-2.0.4.tgz (Root Library)
- ❌ pug-code-gen-2.0.3.tgz (Vulnerable Library)
Found in HEAD commit: b3a60f2fbb6a737eb638b50bba11114a200c71e8
Found in base branch: main
Vulnerability Details
Pug through 3.0.2 allows JavaScript code execution if an application accepts untrusted input for the name option of the compileClient, compileFileClient, or compileClientWithDependenciesTracked function. NOTE: these functions are for compiling Pug templates into JavaScript, and there would typically be no reason to allow untrusted callers.
Publish Date: 2024-05-24
URL: CVE-2024-36361
Threat Assessment
Exploit Maturity: Not Defined
EPSS: 0.3%
CVSS 3 Score Details (6.8)
Base Score Metrics:
- Exploitability Metrics:
- Attack Vector: Network
- Attack Complexity: High
- Privileges Required: None
- User Interaction: Required
- Scope: Unchanged
- Impact Metrics:
- Confidentiality Impact: High
- Integrity Impact: High
- Availability Impact: None
CVE-2026-2950
Vulnerable Library - lodash-4.17.23.tgz
Lodash modular utilities.
Library home page: https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz
Path to dependency file: /package.json
Path to vulnerable library: /node_modules/lodash/package.json
Dependency Hierarchy:
- pug-2.0.4.tgz (Root Library)
- pug-code-gen-2.0.3.tgz
- constantinople-3.1.2.tgz
- babel-types-6.26.0.tgz
- ❌ lodash-4.17.23.tgz (Vulnerable Library)
- babel-types-6.26.0.tgz
- constantinople-3.1.2.tgz
- pug-code-gen-2.0.3.tgz
Found in HEAD commit: b3a60f2fbb6a737eb638b50bba11114a200c71e8
Found in base branch: main
Vulnerability Details
Impact:
Lodash versions 4.17.23 and earlier are vulnerable to prototype pollution in the _.unset and _.omit functions. The fix for (CVE-2025-13465: GHSA-xxjr-mmjv-4gpg) only guards against string key members, so an attacker can bypass the check by passing array-wrapped path segments. This allows deletion of properties from built-in prototypes such as Object.prototype, Number.prototype, and String.prototype.
The issue permits deletion of prototype properties but does not allow overwriting their original behavior.
Patches:
This issue is patched in 4.18.0.
Workarounds:
None. Upgrade to the patched version.
Publish Date: 2026-03-31
URL: CVE-2026-2950
Threat Assessment
Exploit Maturity: Not Defined
EPSS: 0.0%
CVSS 3 Score Details (6.5)
Base Score Metrics:
- Exploitability Metrics:
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: None
- User Interaction: None
- Scope: Unchanged
- Impact Metrics:
- Confidentiality Impact: None
- Integrity Impact: Low
- Availability Impact: Low
Suggested Fix
Type: Upgrade version
Origin: GHSA-xxjr-mmjv-4gpg
Release Date: 2026-03-31
Fix Resolution: lodash-es - 4.17.23,lodash-amd - 4.17.23,lodash - 4.17.23