CVE-2026-73649 json
Velocity.js: Remote Code Execution via property-read to Function constructor (bypass of CVE-2026-44966 fix)
published 3mo ago modified 18d ago also EUVD-2026-58192 , GHSA-7gfh-x38p-prh3
- cvss
- 9.8
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.7%
- EPSS 0.7% chance of exploitation in 30 days, percentile 54%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- npm velocityjs 2.1.7
- shepherdwind velocity.js 2.1.7
Is CVE-2026-73649 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerVendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-73649 updated cvss 9.8
velocityjs: Velocity.js: Remote Code Execution via property-read to Function constructor (bypass of CVE-2026-44966 fix)
-
Red Hat Fuse 7 velocityjsnot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- yes
- Technical impact
- total
- Assessed
- 2mo ago
Exploit prediction
0.73% chance of exploitation in the next 30 days, higher than 54% of all scored CVEs (FIRST EPSS, 2026-11-11).
Exploits and checks
- github.com https://github.com/shepherdwind/velocity.js/security/advisories/GHSA-7gfh-x38p-prh3 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 9.8 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| GitHub | 3.1 | 9.8 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | velocityjs | <2.1.7 |
2.1.7 |
Affected products
- shepherdwind velocity.js
Classification
- Weakness
-
- CWE-94 Improper Control of Generation of Code
References
-
github.com
/shepherdwind/velocity.js/pull/192
web
-
github.com
/shepherdwind/velocity.js/commit/f8e47a6c4607249b9c967d3a1ced959b4dd64dba
web
-
github.com
/shepherdwind/velocity.js/security/advisories/GHSA-7gfh-x38p-prh3
exploit, web
-
github.com
/shepherdwind/velocity.js/releases/tag/v2.1.7
web
-
github.com
/shepherdwind/velocity.js
package
Sources
- CVE List CVE-2026-73649
- GitHub Advisory GHSA-7gfh-x38p-prh3
- NVD CVE-2026-73649
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.