darkhttpd przed wersją 1.15 używa funkcji strcmp() do weryfikacji uwierzytelniania, która nie działa w stałym czasie, co umożliwia zdalnemu atakującemu obejście mechanizmu uwierzytelniania. Podatność jest krytyczna, ponieważ nie wymaga żadnych uprawnień ani interakcji użytkownika i jest dostępna sieciowo.
▸ Pokaż oryginał (EN)
darkhttpd before 1.15 uses strcmp (which is not constant time) to verify authentication, which makes it easier for remote attackers to bypass authentication via a timing side channel.
Funkcja strcmp() porównuje ciągi znaków i kończy działanie natychmiast po napotkaniu pierwszej różnicy między porównywanymi znakami. Czas wykonania tej funkcji jest zatem zależny od liczby zgodnych znaków na początku porównywanych ciągów. Atakujący może mierzyć czas odpowiedzi serwera dla kolejnych prób uwierzytelnienia, stopniowo odgadując poprawne hasło znak po znaku (timing side channel). Taki atak nie wymaga brute-force całej przestrzeni haseł, lecz jedynie sekwencyjnego odkrycia każdego znaku z osobna.
Atakujący może obejść mechanizm uwierzytelniania serwera HTTP i uzyskać nieautoryzowany dostęp do zasobów chronionych hasłem, co prowadzi do pełnego naruszenia poufności, integralności i dostępności serwowanych danych.
Należy zaktualizować darkhttpd do wersji 1.15 lub nowszej. Poprawka dostępna jest w commicie f477619d49f3c4de9ad59bd194265a48ddc03f04 w repozytorium projektu na GitHub, który zastępuje strcmp() funkcją porównującą ciągi w stałym czasie.
darkhttpd (Unix4Lyfe) w wersjach przed 1.15
Podatność zgłoszona i omówiona publicznie na liście oss-security w dniu 2024-01-25. Szczegóły dostępne pod adresem: http://www.openwall.com/lists/oss-security/2024/01/25/1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HUnix4lyfe Darkhttpd
APPUnix4Lyfe< 1.15
Powiązane podatności
A flaw was found in darkhttpd. Invalid error handling allows remote attackers to cause denial-of-service by ac...
darkhttpd through 1.15 allows local users to discover credentials (for --auth) by listing processes and their ...