„`html
Zusammenfassung
CVE-2026-74789 ist eine Denial-of-Service (DoS) Schwachstelle in Scriban vor Version 7.0.0. Die Template-Engine implementiert ihre LoopLimit-Beschränkung unzureichend und ermöglicht es Angreifern, durch speziell gestaltete Ausdrücke massive CPU- und Speicherressourcen zu verbrauchen, auch wenn LoopLimit auf minimale Werte konfiguriert ist.
Betroffene Systeme
Betroffen sind alle Scriban-Installationen mit Versionen bis einschließlich 6.6.0. Die Schwachstelle manifestiert sich insbesondere in Anwendungen, die:
- Nutzer-kontrollierte Templates rendern
- LoopLimit als Sicherheitsmechanismus verwenden
- Multi-Tenant-Umgebungen mit unvertrautem Template-Code betreiben
Technische Details
Das Kernproblem liegt in der selektiven Anwendung der LoopLimit-Constraint. Während explizite Schleifen-Statements (for, while) korrekt limitiert werden, fehlt die Validierung bei:
- Range-Operatoren:
{{ 1..1000000 | array.size }} - String-Multiplikation:
{{ 'A' * 200000000 }} - Anderen integrierten Operatoren und Funktionen
Diese Expressions können auch bei LoopLimit=1 massive Iterationen durchführen. Ein Angreifer kann dadurch Speicher-Amplifikation erreichen und den Host-Server zum DoS bringen.
Empfohlene Massnahmen
- Sofortmaßnahme: Update auf Scriban 7.0.0 oder höher durchführen
- Temporär: Input-Validierung implementieren und komplexe Expressions blockieren
- Monitoring: CPU- und Speicherauslastung bei Template-Rendering überwachen
- Isolation: Template-Rendering in separaten Prozessen mit Ressource-Limits ausführen
- Audit: Bestehende Templates auf verdächtige Range- und Multiplikationsoperatoren prüfen
Bewertung
CVSS 7.5 (High): Netzwerk-basierter Angriff ohne Authentifizierung erforderlich. Die Schwachstelle ermöglicht vollständige Serviceunterbrechung. Für Anwendungen mit nutzer-kontrollierten Templates stellt dies eine kritische Bedrohung dar. Die Verfügbarkeit des Systems wird direkt kompromittiert.
„`