Handlebars.js: JavaScript-Injection durch AST-Typverwechslung in compile()
Zusammenfassung
Handlebars.js in den Versionen 4.0.0 bis 4.7.9 akzeptiert in compile() und precompile() vorgeparste AST-Objekte, validiert jedoch nur einen Teil der AST-Werte. Ein Angreifer, der statt einer Template-Zeichenkette ein AST-Objekt liefern kann, kann JavaScript einschleusen, das der Compiler in den generierten Code schreibt, was zur Codeausführung im Serverprozess führen kann. Anwendungen, die ausschliesslich Template-Zeichenketten übergeben, sind nicht betroffen.
Betroffen
- handlebars.js von 4.0.0 bis einschliesslich 4.7.9
- Betroffen nur, wenn die Anwendung nicht-zeichenkettenbasierte AST-Objekte an compile() oder precompile() übergibt
- Abhängigkeiten in Lock-Dateien prüfen; der Bereich, den ein nachgelagertes Audit meldet, beginnt bei 3.0.0, was nicht bestätigt werden konnte
Behoben in
- handlebars.js 4.7.10 (veröffentlicht am 5. Oktober 2026)
- Vorkompilierte Templates müssen ebenfalls mit der korrigierten Version neu erstellt werden
Umgehung
- Nur Template-Zeichenketten an compile() und precompile() zulassen und alle anderen Eingaben ablehnen
- Werden Templates beim Build vorkompiliert, die Runtime-only-Variante (handlebars/runtime) verwenden, sodass compile() auf dem Server nicht verfügbar ist
- Diese Massnahmen sind nur provisorisch; das Patchen ist die vollständige Behebung
Ausnutzung
- CISA-SSVC-Bewertung: Exploitation-Status 'poc', automatisierbar: ja, technische Auswirkung: total
- Keine bestätigte Ausnutzung in freier Wildbahn gefunden; CISA-KEV-Status unbekannt
- EPSS: 0.0064
- Die Ausnutzung setzt voraus, dass eine Anwendung vom Angreifer kontrollierte Objekte, etwa JSON aus einem Request-Body, an den Template-Compiler übergibt
Unsere Empfehlung
- Alle package-lock.json-, yarn.lock- und pnpm-lock.yaml-Dateien auf handlebars unter 4.7.10 prüfen, einschliesslich transitiver und Build-Abhängigkeiten
- Auf 4.7.10 oder neuer aktualisieren, inklusive vorkompilierter Templates
- Codepfade prüfen, die Request-Daten an compile() oder precompile() übergeben, und bis zum Update nur Zeichenketten zulassen
- Herstellerhinweis und CISA KEV auf Änderungen überwachen
Öffentliche Exploits
In PoC-in-GitHub, Metasploit und Exploit-DB ist für diese CVE nichts verzeichnet.
Quellen der Recherche
- GitHub Security Advisory GHSA-8r5x-fm3f-whwj github.com
- Fix commit 703fdcc github.com
- Release v4.7.10 github.com
- Release notes v4.7.10 github.com
- Pull request #2185 github.com
- OSV entry CVE-2026-106446 osv.dev
- Red Hat CVE record access.redhat.com
- Tenable CVE record www.tenable.com
Recherchiert und auf Deutsch und Englisch aufbereitet von einer KI (Claude von Anthropic) auf Basis von NVD, CISA, EPSS und den genannten Quellen. Massgebend sind die Angaben des Herstellers. Recherche vom 30.10.2026 21:03.
Referenzen der NVD (5)
- https://github.com/handlebars-lang/handlebars.js/commit/703fdcc5fd6cc8d1cc0c33cc19de40c467c4b8d2
- https://github.com/handlebars-lang/handlebars.js/pull/2185
- https://github.com/handlebars-lang/handlebars.js/releases/tag/v4.7.10
- https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-8r5x-fm3f-whwj
- https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-8r5x-fm3f-whwj
Quellen
Der Tracker verbindet offizielle, frei nutzbare Datenquellen – laufend aktualisiert:
- NVD (NIST) – CVE, Bewertung (CVSS), betroffene Produkte
- CISA KEV – von der CISA bestätigt aktiv ausgenutzte Lücken
- CISA Vulnrichment – Einschätzung der CISA (SSVC) im offiziellen CVE-Eintrag
- FIRST EPSS – Wahrscheinlichkeit einer Ausnutzung
- Microsoft MSRC – Patch Tuesday: Lücken, Schweregrad, Updates
- PoC-in-GitHub – öffentliche Proof-of-Concept-Repositories
- Metasploit (Rapid7) – Module des Metasploit Framework
- Exploit-DB (OffSec) – Archiv öffentlicher Exploits (nur Verweise)
- Patch-Tage: offizielle Seiten der Hersteller (je Hersteller verlinkt) (Patch-Tage der Hersteller)
Dieses Angebot nutzt Daten der NVD-API, ist aber von der NVD weder unterstützt noch zertifiziert. EPSS-Daten © FIRST.org.
Betroffen? Wir helfen.
Wir prüfen, ob Ihre Systeme betroffen sind, spielen Updates ein und schliessen die Lücke – auf Wunsch auch laufend mit dem System Health Checker.
