CVE-2026-74788
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 20 - wyżej niż 20% wszystkich znanych CVE
Streszczenie
Scriban przed wersją 7.0.0 (dotknięte wersje <= 6.6.0) zawiera podatność na niekontrolowaną alokację pamięci w funkcjach szablonu string.pad_left i string.pad_right, które nie walidują parametru width przed delegowaniem do .NET String.PadLeft/PadRight. Gdy aplikacja udostępnia Scriban niezaufanym danym wejściowym, atakujący może podać bardzo dużą wartość width (np. 500 000 000), co powoduje alokację ~1GB pamięci w jednym wywołaniu, prowadząc do OutOfMemoryException i odmowy usługi. Limit LimitToString nie zapobiega temu, ponieważ jest egzekwowany dopiero po pełnej alokacji stringa.
Ocena ryzyka
Ryzyko odmowy usługi w aplikacjach przetwarzających niezaufane szablony, co może prowadzić do wyczerpania pamięci i awarii.
Rekomendacja
Zaktualizuj Scriban do wersji 7.0.0 lub nowszej, która dodaje walidację parametru width w funkcjach pad.
Oryginalny opis (angielski, źródło NVD)
Scriban before 7.0.0 (affected versions <= 6.6.0) contains an uncontrolled memory allocation vulnerability in the string.pad_left and string.pad_right template functions, which perform no validation on the width parameter before delegating to .NET's String.PadLeft/PadRight. When an application exposes Scriban to untrusted template input, an attacker can supply an arbitrarily large width value (e.g., 500,000,000) to trigger ~1GB memory allocations in a single call, resulting in OutOfMemoryException and denial of service. The TemplateContext.LimitToString limit does not prevent this because it is only enforced after the string has been fully allocated.

