LiveActive security incident?Get immediate response
CVE Record

CVE-2026-73649: Velocity.js: Remote Code Execution via property-read to Function constructor (bypass of CVE-2026-44966 fix)

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.

CriticalCVSS 9.8Not KEV-listedUpdated
Glexia's TakeAutomated analysiscritical

Security readout for executives and security teams

Plain-English summary

Velocity.js before 2.1.7 can let an attacker-controlled template execute code with the application’s permissions. Successful exploitation could expose environment variables and cloud credentials, reach internal services, alter data, or disrupt the server. Risk depends on whether untrusted users or upstream systems can influence templates.

Executive priority

Prioritize immediate remediation for public or multi-tenant systems that render attacker-influenced templates. Upgrade promptly elsewhere after confirming inventory. If exposure existed, involve incident response to assess credential access and server activity; patching prevents future exploitation but does not resolve possible prior compromise.

Technical view

A bypass of the CVE-2026-44966 fix left property-read expressions unfiltered. Attackers could traverse JavaScript constructor properties to reach the Function constructor because validation covered the assignment target but not the right-hand expression. This is CWE-94 remote code execution with CVSS 3.1 score 9.8, fixed in Velocity.js 2.1.7.

Likely exposure

Applications using shepherdwind Velocity.js versions below 2.1.7 are affected. Exposure is highest where templates are supplied or influenced by unauthenticated users, tenants, integrations, or other untrusted sources. The supplied evidence does not identify specific deployments, default configurations, or downstream products.

Exploitation context

The vulnerability is remotely exploitable with low complexity, no privileges, and no user interaction according to the supplied CVSS vector. The bundle marks it absent from KEV, and the cited material provided here does not establish active exploitation in the wild. Treat internet-reachable, attacker-influenced template rendering as urgent.

Researcher notes

This is a validation-scope failure in the earlier CVE-2026-44966 remediation: filtering in the assignment handler did not cover property reads processed through the references path. Assessment should focus on template provenance, every rendering entry point, process privileges, secret availability, and network reachability. No public exploitation evidence is established by the supplied bundle.

Mitigation direction

  • Upgrade Velocity.js to version 2.1.7 or later using the vendor release.
  • Temporarily prevent untrusted parties and integrations from supplying or modifying templates.
  • Restrict the rendering process from credentials, sensitive environment variables, and unnecessary internal-network access.
  • Review the vendor advisory, patch, and release notes before restoring untrusted template rendering.

Validation and detection

  • Inventory applications and dependency lockfiles for shepherdwind Velocity.js versions below 2.1.7.
  • Trace whether users, tenants, integrations, or external data can influence rendered template source.
  • Confirm deployed artifacts resolve Velocity.js 2.1.7 or later, not merely package manifests.
  • Use safe regression tests to verify prohibited property traversal is rejected without executing system operations.
  • Review template-rendering periods for anomalous process activity, credential access, or unexpected internal connections.
Prepared
Confidence
high
Sources
6

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cwe · medium confidence lookup

CWE-94: Code execution behavior lookup

Code execution and unsafe deserialization weaknesses often justify reviewing execution behavior and process telemetry. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
description · low confidence lookup

Execution behavior lookup

The CVE wording references code or command execution, so execution technique review may help defensive triage. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.

Open ATT&CK lookup
description · low confidence lookup

Credential and access behavior lookup

The CVE wording references authentication or credential exposure, so valid-account and credential-access review may help. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.

Open ATT&CK lookup
cve · low confidence lookup

CVE-2026-73649 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Critical
CVSS
9.8 (3.1)
Known Exploited
No
Published

Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

1CVSS vectors
3Timeline events
1ADP providers
5Source links

SSVC decision data

CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: pocAutomatable: yesTechnical Impact: total

CVSS vector scores

1 official score

We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.

ScoreVersionSeverityVectorExploitImpactSource
9.8CVSS 3.1CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H3.95.9GitHub_M

Vulnerability scoring details

Base CVSS 3.1 score

9.8Critical
CVSS 3.1 vector shape for CVE-2026-73649Attack VectorAttack ComplexityPrivileges RequiredUser InteractionScopeConfidentiality ImpactIntegrity ImpactAvailability Impact

Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Attack Vector
NetworkAdjacentLocalPhysical
Attack Complexity
LowHigh
Privileges Required
NoneLowHigh
User Interaction
NoneRequired
Scope
ChangedUnchanged
Confidentiality Impact
HighLowNone
Integrity Impact
HighLowNone
Availability Impact
HighLowNone

Vulnerability timeline

Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.

  1. CVE reservedCVE Program

    The CVE ID was reserved by the assigning CNA.

  2. CVE publishedCVE Program

    The CVE record was published.

  3. CVE updatedCVE Program

    The CVE record metadata indicates this as the latest update time.

ADP provider summaries

CISA-ADPCISA ADP Vulnrichment
other:ssvc
Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
shepherdwindvelocity.js< 2.1.7Listed
Weakness

CWE details

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.

CWE-94 · source CWE mapping

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

Improper Control of Generation of Code ('Code Injection') represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.