Moduł Apache::Session::Generate::ModUniqueId w wersjach od 1.54 do 1.94 generuje identyfikatory sesji Perl w sposób kryptograficznie niepewny, opierając się na przewidywalnych danych. Atakujący może odgadnąć lub odtworzyć identyfikatory sesji innych użytkowników, co prowadzi do przejęcia ich sesji.
▸ Pokaż oryginał (EN)
Apache::Session::Generate::ModUniqueId versions from 1.54 through 1.94 for Perl session ids are insecure. Apache::Session::Generate::ModUniqueId (added in version 1.54) uses the value of the UNIQUE_ID environment variable for the session id. The UNIQUE_ID variable is set by the Apache mod_unique_id plugin, which generates unique ids for the request. The id is based on the IPv4 address, the process id, the epoch time, a 16-bit counter and a thread index, with no obfuscation. The server IP is often available to the public, and if not available, can be guessed from previous session ids being issued. The process ids may also be guessed from previous session ids. The timestamp is easily guessed (and leaked in the HTTP Date response header). The purpose of mod_unique_id is to assign a unique id to requests so that events can be correlated in different logs. The id is not designed, nor is it suitable for security purposes.
Moduł używa wartości zmiennej środowiskowej UNIQUE_ID ustawianej przez wtyczkę Apache mod_unique_id jako identyfikatora sesji. Wartość ta jest konstruowana na podstawie adresu IPv4 serwera, identyfikatora procesu, czasu epoch, 16-bitowego licznika oraz indeksu wątku — bez żadnego maskowania ani elementu losowego. Adres IP serwera jest często publicznie dostępny lub możliwy do odgadnięcia na podstawie wcześniej uzyskanych identyfikatorów sesji. Znacznik czasu jest łatwy do przewidzenia, a dodatkowo jest ujawniany w nagłówku odpowiedzi HTTP (Date). Identyfikatory procesów również mogą być wywnioskowane z poprzednich identyfikatorów sesji.
Atakujący może przewidzieć lub odtworzyć ważne identyfikatory sesji innych użytkowników, uzyskując tym samym nieautoryzowany dostęp do ich sesji (session hijacking) oraz skojarzonych z nimi danych i uprawnień.
Należy zaprzestać używania modułu Apache::Session::Generate::ModUniqueId jako generatora identyfikatorów sesji. Producent zaleca przejście na Apache::Session::Generate::Random, który generuje kryptograficznie bezpieczne identyfikatory sesji. Należy zastosować patche dostępne u producenta zgodnie z referencjami.
Apache::Session::Generate::ModUniqueId dla Perl w wersjach od 1.54 do 1.94 (włącznie).
CWE-340 (generowanie przewidywalnych liczb lub identyfikatorów) potwierdza charakter podatności. Moduł Apache::Session::Generate::ModUniqueId został dodany w wersji 1.54 i nigdy nie był przeznaczony do zastosowań związanych z bezpieczeństwem — mod_unique_id służy wyłącznie do korelacji logów. Informacja o podatności została opublikowana na liście oss-security w dniu 2026-05-06.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:NChorny Apache\
APPChorny\