Biblioteka linkify-it do rozpoznawania linków w tekście z obsługą Unicode zawiera podatność powodującą nadmierne zużycie CPU przy przetwarzaniu spreparowanego wejścia. Atakujący może wywołać odmowę usługi (DoS) bez żadnego uwierzytelnienia, przesyłając odpowiednio przygotowany tekst.
▸ Pokaż oryginał (EN)
linkify-it is a links recognition library with full Unicode support. Prior to 5.0.2, the mailto: schema validator used by .test() and .match() can be invoked at every mailto: occurrence and scan the remaining input through src_email_name in lib/re.mjs, causing O(n^2) CPU consumption on crafted user text. This issue is fixed in version 5.0.2.
Walidator schematu mailto: używany przez metody .test() oraz .match() jest wywoływany przy każdym wystąpieniu ciągu mailto: w przetwarzanym tekście. Każde takie wywołanie uruchamia skanowanie pozostałej części wejścia przez wyrażenie regularne src_email_name zdefiniowane w pliku lib/re.mjs. Powoduje to kwadratową złożoność obliczeniową O(n²) względem długości wejścia, co przy spreparowanym ciągu prowadzi do znacznego wzrostu zużycia CPU.
Atakujący może doprowadzić do całkowitego wyczerpania zasobów CPU procesu przetwarzającego dane wejściowe, powodując odmowę usługi (DoS) dla aplikacji korzystającej z biblioteki.
Należy zaktualizować bibliotekę linkify-it do wersji 5.0.2 lub nowszej, w której problem został naprawiony. Patch dostępny jest w repozytorium producenta na GitHub.
Biblioteka linkify-it w wersjach wcześniejszych niż 5.0.2
Podatność sklasyfikowana jako CWE-407 (Algorithmic Complexity — nieefektywna złożoność algorytmiczna). Poprawka wprowadzona w commicie 105e5d77f7d119871d2b2d86ed208568eb3e7ffe w repozytorium markdown-it/linkify-it.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HMarkdown It Linkify It
APPMarkdown-It< 5.0.2