GHSA-j658-c2gf-x6pq

Suggest an improvement
Source
https://github.com/advisories/GHSA-j658-c2gf-x6pq
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/05/GHSA-j658-c2gf-x6pq/GHSA-j658-c2gf-x6pq.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-j658-c2gf-x6pq
Aliases
  • CVE-2026-44966
Published
2026-05-09T00:40:16Z
Modified
2026-05-09T00:46:32.243013Z
Severity
  • 8.3 (High) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:L CVSS Calculator
Summary
Velocity.js has a Prototype Pollution vulnerability through #set path assignment
Details

Summary

A prototype pollution vulnerability was discovered in Velocity.js <= 2.1.5. This issue occurs during the processing of #set directives in Velocity templates. If an application renders a template controlled by an attacker, it is possible to modify Object.prototype, potentially leading to Denial of Service (DoS) or Remote Code Execution (RCE) depending on the server environment.

Details

The root cause is located in the #set path assignment logic within the source code: - File: /src/compile/set.ts - Issue: The engine accepts arbitrary path keys and performs assignments using the logic (baseRef as Record<string, unknown>)[key] = val.

Because there is no validation or filtering to block sensitive keys such as __proto__, constructor, or prototype, an attacker can traverse the prototype chain and pollute the global Object.prototype.

PoC

const {render} = require('velocityjs');
delete Object.prototype.polluted;
console.log({}.polluted); // ""
render('#set($__proto__.polluted = "hacked")', {});
console.log({}.polluted); // "hacked"
delete Object.prototype.polluted;

Impact

  • Vulnerability Type: Prototype Pollution
  • Who is impacted: Any application that renders Velocity templates where the template content can be influenced or controlled by untrusted users.
  • Severity: High. Prototype pollution can often be used to bypass security controls, cause application crashes (DoS), or be chained with other vulnerabilities to achieve code execution.
Database specific
{
    "github_reviewed": true,
    "severity": "HIGH",
    "github_reviewed_at": "2026-05-09T00:40:16Z",
    "nvd_published_at": null,
    "cwe_ids": [
        "CWE-1321"
    ]
}
References

Affected packages

npm / velocityjs

Package

Affected ranges

Type
SEMVER
Events
Introduced
0Unknown introduced version / All previous versions are affected
Last affected
2.1.5

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/05/GHSA-j658-c2gf-x6pq/GHSA-j658-c2gf-x6pq.json"