Description
Velocity.js is a JavaScript implementation of the Apache Velocity template engine. Prior to 2.1.7, the earlier fix for CVE-2026-44966 filtered constructor, __proto__, and prototype only in the #set assignment handler in src/compile/set.ts, while property-read expressions in src/compile/references.ts remained unfiltered. The getReferences() flow called getAttributes(), whose property access allowed an attacker-controlled template to traverse constructor.constructor to the JavaScript Function constructor. The #set handler validated only the assignment target and did not inspect the right-hand property-read expression, allowing arbitrary shell commands, environment-variable access, cloud-credential access, and internal-network access in the server process. This issue is fixed in version 2.1.7.
Published: 2026-08-13
Score: 9.8 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Velocity.js and its template engine allow an attacker to inject a property‑read expression that resolves to the JavaScript Function constructor, giving the attacker the ability to execute arbitrary shell commands, read environment variables, access cloud credentials, and reach internal network resources from the process running the server. The vulnerability is characterized as a code injection flaw (CWE‑94) and is rated with a CVSS score of 9.8, indicating a critical level of severity.

Affected Systems

The vulnerability is present in all released versions of the shepherdwind Velocity.js library prior to version 2.1.7. Any deployment that incorporates Velocity.js before the 2.1.7 release is susceptible; only upgrades to 2.1.7 or later provide the fix.

Risk and Exploitability

The CVSS score conveys a high risk of exploitation, while the EPSS value is not available and the vulnerability is not listed in the CISA KEV catalog, suggesting no confirmed public exploits yet. Attackers can exploit the flaw by supplying a crafted template to the rendering engine, which must be accessible to them. If an application renders untrusted templates, the potential for remote code execution is direct and immediate, but the attack surface is limited to systems that expose template content to attackers.

Generated by OpenCVE AI on August 13, 2026 at 19:39 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Velocity.js to version 2.1.7 or later, ensuring the deployment uses the patched release
  • Restrict the creation and rendering of templates to a trusted set of sources, preventing arbitrary user input from being processed by the engine
  • Implement strict input validation or sandboxing for template content to isolate execution context and limit exposed system resources

Generated by OpenCVE AI on August 13, 2026 at 19:39 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-7gfh-x38p-prh3 Velocity.js: Remote Code Execution via property-read to Function constructor (bypass of GHSA-j658-c2gf-x6pq fix)
History

Thu, 13 Aug 2026 20:15:00 +0000

Type Values Removed Values Added
First Time appeared Shepherdwind
Shepherdwind velocity.js
Vendors & Products Shepherdwind
Shepherdwind velocity.js

Thu, 13 Aug 2026 18:15:00 +0000

Type Values Removed Values Added
Description Velocity.js is a JavaScript implementation of the Apache Velocity template engine. Prior to 2.1.7, the earlier fix for CVE-2026-44966 filtered constructor, __proto__, and prototype only in the #set assignment handler in src/compile/set.ts, while property-read expressions in src/compile/references.ts remained unfiltered. The getReferences() flow called getAttributes(), whose property access allowed an attacker-controlled template to traverse constructor.constructor to the JavaScript Function constructor. The #set handler validated only the assignment target and did not inspect the right-hand property-read expression, allowing arbitrary shell commands, environment-variable access, cloud-credential access, and internal-network access in the server process. This issue is fixed in version 2.1.7.
Title Velocity.js: Remote Code Execution via property-read to Function constructor (bypass of CVE-2026-44966 fix)
Weaknesses CWE-94
References
Metrics cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}


Subscriptions

Shepherdwind Velocity.js
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-14T16:42:31.371Z

Reserved: 2026-08-13T14:04:09.604Z

Link: CVE-2026-73649

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-13T18:18:20.793

Modified: 2026-08-14T17:20:35.633

Link: CVE-2026-73649

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-13T20:00:03Z

Weaknesses
  • CWE-94

    Improper Control of Generation of Code ('Code Injection')