{"id":"CVE-2026-73649","summary":"Velocity.js: Remote Code Execution via property-read to Function constructor (bypass of CVE-2026-44966 fix)","details":"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.","aliases":["GHSA-7gfh-x38p-prh3"],"modified":"2026-08-16T03:31:04.948759546Z","published":"2026-08-13T18:05:31.929Z","database_specific":{"cwe_ids":["CWE-94"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/73xxx/CVE-2026-73649.json","cna_assigner":"GitHub_M"},"references":[{"type":"WEB","url":"https://github.com/shepherdwind/velocity.js/releases/tag/v2.1.7"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/73xxx/CVE-2026-73649.json"},{"type":"ADVISORY","url":"https://github.com/shepherdwind/velocity.js/security/advisories/GHSA-7gfh-x38p-prh3"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-73649"},{"type":"FIX","url":"https://github.com/shepherdwind/velocity.js/commit/f8e47a6c4607249b9c967d3a1ced959b4dd64dba"},{"type":"FIX","url":"https://github.com/shepherdwind/velocity.js/pull/192"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/shepherdwind/velocity.js","events":[{"introduced":"0"},{"fixed":"f8e47a6c4607249b9c967d3a1ced959b4dd64dba"},{"fixed":"de81a8efae35da7e9b1b159597f5b3162e714329"}],"database_specific":{"extracted_events":[{"introduced":"0"},{"fixed":"2.1.7"}],"source":["AFFECTED_FIELD","REFERENCES"]}}],"versions":["v2.1.6","v2.1.5","v2.1.4","v2.1.3","v2.1.2","v2.1.1","v2.1.0","v2.0.6","v2.0.5","v2.0.4","v2.0.3","v2.0.2","v2.0.1","list","v1.1.5","v1.1.3","v1.1.2","v1.1.1","v1.1.0","v1.0.2","v1.0.1","v1.0.0","v0.10.1","0.10.0","v0.9.6","v0.9.5","v0.9.4","v0.9.3","v0.9.2","0.9.1","0.9.0","0.8.5","0.8.4","0.8.2","0.8.0","0.7.5","0.7.4","0.7.3","0.7.2","0.6.0","0.4.10","0.4.9","0.4.8","0.4.7","0.4.5","0.4.4","0.4.2","0.4.1","0.4.0","0.3.16","0.3.15","0.3.14","0.3.13","0.3.12"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-73649.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"}]}