CVE-2026-57082
ŚrednieCVSS 5.9Streszczenie
Podatność w bibliotece Net::BitTorrent dla Perla (wersje do 2.0.1) polega na generowaniu 160-bitowego klucza prywatnego Diffie-Hellmana dla uzgadniania MSE przy użyciu nienadającej się do kryptografii funkcji PRNG (rand()). Ponieważ losowe dopełnienie wysyłane w postaci jawnej pochodzi z tego samego generatora, pasywny obserwator może odtworzyć stan PRNG, a następnie klucz prywatny i klucze RC4, co pozwala na odszyfrowanie połączenia.
Ocena ryzyka
Organizacja używająca Net::BitTorrent do komunikacji z MSE naraża się na całkowite odszyfrowanie ruchu przez pasywnego atakującego, co niweczy ochronę przed obserwacją zapewnianą przez MSE i może prowadzić do wycieku wrażliwych danych.
Rekomendacja
Należy natychmiast zaktualizować bibliotekę Net::BitTorrent do wersji 2.0.2 lub nowszej, która używa kryptograficznie bezpiecznego generatora liczb losowych. Jeśli aktualizacja nie jest możliwa, należy wyłączyć funkcję MSE lub zastąpić bibliotekę inną implementacją.
Oryginalny opis (angielski, źródło NVD)
Net::BitTorrent versions through 2.0.1 for Perl generate the MSE Diffie-Hellman private key with a non-cryptographic PRNG. The MSE (Message Stream Encryption) handshake derives its 160-bit Diffie-Hellman private key from Perl's rand(), a non-cryptographic drand48-class generator seeded once per process, in KeyExchange.pm. The shared secret and the RC4 keys derived from it (the SHA-1 of "keyA" or "keyB", the shared secret, and the infohash) therefore depend entirely on a predictable PRNG. The same handshake sends, in cleartext, random padding drawn from the same rand() sequence in _random_pad, immediately after the public key and the private-key draw. A passive observer of the handshake recovers the PRNG state from the cleartext padding, reconstructs the private key, computes the shared secret from the peer's public key on the wire, derives the RC4 keys, and decrypts the connection, defeating the passive-observation obfuscation MSE provides.

