HighGHSA-2528-jw5q-ww88CVE-2024-27354

phpseclib: guardrails needed on isPrime and randomPrime

Published 6 May 2026 · Updated 6 May 2026

Affected packages

Affected
>=0.1.1 <1.0.23
Fixed in
1.0.23
Update to the fixed version for your release line, for example:composer require phpseclib/phpseclib:^1.0.23
Affected
>=2.0.0 <2.0.47
Fixed in
2.0.47
Update to the fixed version for your release line, for example:composer require phpseclib/phpseclib:^2.0.47
Affected
>=3.0.0 <3.0.36
Fixed in
3.0.36
Update to the fixed version for your release line, for example:composer require phpseclib/phpseclib:^3.0.36

Details

Impact

Anyone trying to generate a prime and testing the primality of a number.

Patches

https://github.com/phpseclib/phpseclib/commit/ad5dbdf2129f5e0fb644637770b7f33de8ca8575

Workarounds

Using the GMP extension would probably help, assuming that one has its own guardrails.

Resources

https://github.com/phpseclib/phpseclib/commit/ad5dbdf2129f5e0fb644637770b7f33de8ca8575 https://www.usenix.org/system/files/conference/usenixsecurity25/sec25cycle1-prepub-599-shi-bing.pdf

Is GHSA-2528-jw5q-ww88 in any of your client repos?

Checking one package by hand is fine. Checking it across forty client projects is not. NPMscan reads the lockfiles in every GitHub repo you pick, finds each project with an affected phpseclib/phpseclib, and gives you the command that fixes it.

References

Advisory data from OSV.dev (opens OSV.dev in a new tab), refreshed daily.