CVE-2025-7394
CVE-2025-7394
In short
After a process fork, the RAND_bytes() function in wolfSSL's OpenSSL compatibility layer could generate predictable random numbers instead of truly random ones. This is dangerous for applications that generate cryptographic keys or tokens after forking, as attackers might be able to guess or reproduce these supposedly random values.
Technical detail
The RAND_poll() function fails to properly reseed the Hash-DRBG after fork() is called, allowing RAND_bytes() to return predictable values in child processes. This affects applications explicitly using RAND_bytes() post-fork without calling RAND_poll() first. The vulnerability has been mitigated by implementing automatic reseeding detection when a new process is spawned, though applications relying on RAND_bytes() in forked contexts should update to the patched version.
Summary generated and translated by AI from the official description.
In the OpenSSL compatibility layer implementation, the function RAND_poll() was not behaving as expected and leading to the potential for predictable values returned from RAND_bytes() after fork() is called. This can lead to weak or predictable random numbers generated in applications that are both using RAND_bytes() and doing fork() operations. This only affects applications explicitly calling RAND_bytes() after fork() and does not affect any internal TLS operations. Although RAND_bytes() documentation in OpenSSL calls out not being safe for use with fork() without first calling RAND_poll(), an additional code change was also made in wolfSSL to make RAND_bytes() behave similar to OpenSSL after a fork() call without calling RAND_poll(). Now the Hash-DRBG used gets reseeded after detecting running in a new process. If making use of RAND_bytes() and calling fork() we recommend updating to the latest version of wolfSSL. Thanks to Per Allansson from Appgate for the report.
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:P/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N