„`html
Zusammenfassung
Die Sicherheitslücke CVE-2026-74788 betrifft Scriban vor Version 7.0.0 (betroffene Versionen ≤ 6.6.0) und ermöglicht einen Denial-of-Service-Angriff durch unkontrollierte Speicherallokation. Die Schwachstelle liegt in den Template-Funktionen string.pad_left und string.pad_right, die keine Validierung des width-Parameters durchführen. Ein Angreifer kann eine beliebig große Breitenwert eingeben, um massive Speicherallokationen auszulösen und dadurch die betroffene Anwendung zum Absturz zu bringen.
Betroffene Systeme
Betroffen sind alle Scriban-Installationen mit Versionsnummern ≤ 6.6.0. Das Risiko ist erhöht bei Anwendungen, die Scriban-Template-Funktionen gegenüber untrusted input (unvertrautem Benutzereingaben oder externen Datenquellen) exponieren. Dies betrifft typischerweise Web-Anwendungen, die Benutzer-definierte Templates verarbeiten oder Template-Funktionen über externe APIs zur Verfügung stellen.
Technische Details
Die Schwachstelle basiert auf fehlender Eingabevalidierung in den string.pad_left und string.pad_right Funktionen. Diese delegieren direkt an die .NET-Methoden String.PadLeft/PadRight, ohne den width-Parameter zu prüfen. Ein Angreifer kann extrem große Werte (z.B. 500.000.000) übergeben, was zu ~1GB Speicherallokationen in einem einzelnen Funktionsaufruf führt. Dies resultiert in einer OutOfMemoryException und einem Denial-of-Service. Das TemplateContext.LimitToString-Limit bietet keinen Schutz, da es erst nach vollständiger Speicherallokation durchgesetzt wird.
Empfohlene Massnahmen
- Sofortiges Upgrade auf Scriban 7.0.0 oder höher
- Falls kein Upgrade möglich ist: Implementierung von Input-Validierung vor der Template-Verarbeitung
- Beschränkung der width-Parameter auf sichere Maximalwerte (z.B. 10.000)
- Ressourcenlimitierung auf Betriebssystem-Ebene (Memory Limits)
- Monitoring von Out-of-Memory-Exceptions in Produktionsumgebungen
Bewertung
CVSS-Score: 7.5 (High). Der Schweregrad ist erhöht, da ein einfacher Netzwerk-basierter Angriff ohne Authentifizierung möglich ist. Ein Angreifer mit Zugriff auf untrusted Template-Input kann die Verfügbarkeit der Anwendung kompromittieren. Ein Patch ist derzeit nicht verfügbar.
„`