CRITICAL🇬🇧 English

CVE-2024-25191

Auth Bypass w php-jwt 1.0.0 przez timing side channel (strcmp)

CVSS 9.8v3.1pub. 2024-02-08upd. 2025-06-12

Biblioteka php-jwt 1.0.0 używa funkcji strcmp do weryfikacji tokenów JWT, która nie jest odporna na ataki czasowe (timing side channel). Umożliwia to obejście mechanizmu uwierzytelniania bez znajomości prawidłowego tokenu.

Pokaż oryginał (EN)

php-jwt 1.0.0 uses strcmp (which is not constant time) to verify authentication, which makes it easier to bypass authentication via a timing side channel.

🤖 Analiza AI
Jak działa

Funkcja strcmp porównuje ciągi znaków znak po znaku i kończy działanie w momencie napotkania pierwszej różnicy, co powoduje zmienność czasu odpowiedzi w zależności od liczby poprawnych znaków na początku porównywanego ciągu. Atakujący może mierzyć czas odpowiedzi serwera dla kolejnych prób i na tej podstawie stopniowo odgadywać prawidłową wartość tokenu JWT. Tego rodzaju podatność, zwana timing side channel (CWE-203), pozwala na odtworzenie sekretu bez bezpośredniego dostępu do jego wartości. Bezpieczna implementacja powinna stosować porównanie w stałym czasie (constant-time comparison).

Skutki

Atakujący może obejść mechanizm uwierzytelniania oparty na tokenach JWT i uzyskać nieautoryzowany dostęp do zasobów chronionych aplikacji, co zagraża poufności, integralności i dostępności systemu.

Mitygacja

Należy zastosować patche dostępne u producenta zgodnie z referencjami. Zaleca się wymianę funkcji strcmp na funkcję porównującą w stałym czasie (np. hash_equals w PHP) we wszystkich miejscach weryfikacji tokenów JWT.

Kogo dotyczy

Zihanggao php-jwt w wersji 1.0.0

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Zihanggao PHP Jwt

    APP
    Zihanggao
    1.0.0
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
Auth Bypass
CWE
Referencje