Biblioteka PCRE (Perl Compatible Regular Expressions) w wersjach przed 8.38 nieprawidłowo obsługuje określone wzorce wyrażeń regularnych, co może prowadzić do nieskończonej rekurencji. Podatność jest krytyczna, ponieważ może być wywołana zdalnie bez uwierzytelnienia przez przesłanie sprytnie skonstruowanego wyrażenia regularnego.
▸ Pokaż oryginał (EN)
PCRE before 8.38 mishandles the /(?:|a|){100}x/ pattern and related patterns, which allows remote attackers to cause a denial of service (infinite recursion) or possibly have unspecified other impact via a crafted regular expression, as demonstrated by a JavaScript RegExp object encountered by Konqueror.
Biblioteka PCRE nieprawidłowo przetwarza wzorce takie jak /(?:|a|){100}x/ oraz podobne konstrukcje zawierające powtórzenia grup alternatywnych. Błąd wynika z nieprawidłowej obsługi buforów (CWE-119) oraz wadliwego przetwarzania wyrażeń regularnych (CWE-185), co prowadzi do nieskończonej rekurencji podczas dopasowywania wzorca. Jako przykład exploitacji wskazano obiekt JavaScript RegExp napotkany przez przeglądarkę Konqueror, co sugeruje możliwość wywołania podatności poprzez złośliwą stronę internetową lub dane wejściowe przetwarzane przez aplikację korzystającą z PCRE.
Atakujący może doprowadzić do odmowy usługi (DoS) poprzez zawieszenie lub crash aplikacji korzystającej z biblioteki PCRE. Opis wskazuje również na możliwy, bliżej nieokreślony dodatkowy wpływ na system, co przy ocenie CVSS 9.8 może obejmować naruszenie poufności, integralności i dostępności.
Należy zaktualizować bibliotekę PCRE do wersji 8.38 lub nowszej. Dla dystrybucji Fedora należy zastosować patche dostępne w repozytoriach zgodnie z referencjami. Aplikacje wbudowujące PCRE (np. PHP) powinny zostać zaktualizowane do wersji zawierających poprawioną bibliotekę.
Biblioteka PCRE w wersjach przed 8.38, a także produkty ją wykorzystujące: PHP oraz Fedora Linux (wersje wskazane w referencjach producenta)
Podatność została publicznie ujawniona 29 listopada 2015 r. na liście oss-security. Szczegóły zmian dostępne są w oficjalnym logu zmian projektu PCRE (ChangeLog).
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HFedora Project Fedora
OSFedoraproject22Pcre Perl Compatible Regular Expression Library
APPPcre≤ 8.37PHP
APPPhp5.5.0 – 5.5.32 (bez)5.6.0 – 5.6.18 (bez)7.0.0 – 7.0.3 (bez)
Powiązane podatności
PHP CGI argument injection – RCE na Windows przez mechanizm Best-Fit
Type Confusion w V8 (Google Chrome) — RCE przez spreparowaną stronę HTML
Type Confusion w silniku V8 Chrome — zdalne wykonanie kodu (RCE)
Use-after-free w Google Chrome Visuals umożliwiający ucieczkę z sandbox
Integer overflow w Skia w Google Chrome — sandbox escape