Katalog CVE

CVE-2026-73649

KrytyczneCVSS 9.8
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

Velocity.js przed wersją 2.1.7 nie filtruje wyrażeń odczytu właściwości w src/compile/references.ts, co pozwala na dostęp do konstruktora Function przez łańcuch constructor.constructor. Mimo że handler #set waliduje cel przypisania, nie sprawdza wyrażenia po prawej stronie, umożliwiając wykonanie dowolnych poleceń powłoki, dostęp do zmiennych środowiskowych, poświadczeń chmurowych i sieci wewnętrznej w procesie serwera. Problem został naprawiony w wersji 2.1.7.

Ocena ryzyka

Atakujący może wykonać dowolny kod na serwerze, uzyskać dostęp do wrażliwych danych (zmienne środowiskowe, poświadczenia) i przeprowadzić ataki na sieć wewnętrzną, co może prowadzić do pełnej kompromitacji systemu.

Rekomendacja

Zaktualizuj Velocity.js do wersji 2.1.7 lub nowszej i ogranicz zaufanie do szablonów pochodzących z niezaufanych źródeł.

Oryginalny opis (angielski, źródło NVD)

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.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS