CRITICAL🇬🇧 English

CVE-2008-2108

PHP: słabe generowanie ziarna losowego na systemach 64-bitowych

CVSS 9.8v3.1pub. 2008-05-07upd. 2026-04-23

Makro GENERATE_SEED w PHP generuje niewystarczającą ilość entropii (24 bity zamiast oczekiwanej) na systemach 64-bitowych, co znacząco osłabia jakość liczb losowych produkowanych przez funkcje rand i mt_rand. Ułatwia to atakującym przeprowadzenie ataku brute force na mechanizmy ochronne oparte na tych funkcjach.

Pokaż oryginał (EN)

The GENERATE_SEED macro in PHP 4.x before 4.4.8 and 5.x before 5.2.5, when running on 64-bit systems, performs a multiplication that generates a portion of zero bits during conversion due to insufficient precision, which produces 24 bits of entropy and simplifies brute force attacks against protection mechanisms that use the rand and mt_rand functions.

🤖 Analiza AI
Jak działa

Na systemach 64-bitowych makro GENERATE_SEED wykonuje mnożenie, podczas którego z powodu niewystarczającej precyzji arytmetycznej część bitów wyniku przyjmuje wartość zero. Skutkuje to tym, że wygenerowane ziarno (seed) zawiera jedynie 24 bity rzeczywistej entropii zamiast wartości oczekiwanej dla danej architektury. Zmniejszona przestrzeń możliwych ziaren sprawia, że przewidzenie kolejnych wartości zwracanych przez rand i mt_rand staje się praktycznie wykonalne za pomocą ataku brute force.

Skutki

Atakujący może przewidzieć wartości generowane przez funkcje rand i mt_rand, co pozwala na obejście mechanizmów bezpieczeństwa opartych na losowości — np. tokenów sesji, tokenów CSRF, jednorazowych haseł lub linków do resetowania hasła.

Mitygacja

Należy zaktualizować PHP do wersji 4.4.8 lub nowszej (dla gałęzi 4.x) albo do wersji 5.2.5 lub nowszej (dla gałęzi 5.x). Użytkownicy dystrybucji Fedora i Ubuntu powinni zastosować patche dostępne u producenta dystrybucji zgodnie z referencjami. Dodatkowo zaleca się zastąpienie funkcji rand i mt_rand kryptograficznie bezpiecznymi źródłami losowości (np. openssl_random_pseudo_bytes) wszędzie tam, gdzie losowość ma znaczenie dla bezpieczeństwa.

Kogo dotyczy

PHP 4.x przed wersją 4.4.8 oraz PHP 5.x przed wersją 5.2.5, działające na systemach 64-bitowych. Dotyczy również dystrybucji Fedora oraz Canonical Ubuntu Linux zawierających podatne wersje PHP.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Canonical Ubuntu

    OS
    Canonical
    6.067.047.108.04
  • Debian

    OS
    Debian
    4.0
  • Fedora Project Fedora

    OS
    Fedoraproject
    89
  • PHP

    APP
    Php
    5.0.0 – 5.2.5 (bez)4.0.0 – 4.4.8 (bez)
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
CWE
Referencje

Powiązane podatności

CVE-2026-24061CRITICAL9.8⚠ KEVPL ✓ten sam produkt

GNU Inetutils telnetd: ominięcie uwierzytelnienia przez zmienną USER

CVE-2025-32463CRITICAL9.3⚠ KEVPL ✓ten sam produkt

Sudo: eskalacja uprawnień do root poprzez opcję --chroot (CVE-2025-32463)

CVE-2025-49113CRITICAL9.9⚠ KEVPL ✓ten sam produkt

RCE przez deserializację PHP w Roundcube Webmail (parametr _from)

CVE-2025-32433CRITICAL10.0⚠ KEVPL ✓ten sam produkt

Erlang/OTP SSH — nieuwierzytelniony RCE (CVSS 10.0)

CVE-2025-24201CRITICAL10.0⚠ KEVPL ✓ten sam produkt

Apple WebKit: out-of-bounds write umożliwiający ucieczkę z sandbox przeglądarki