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
composer require phpseclib/phpseclib:^1.0.23- Affected
- >=2.0.0 <2.0.47
- Fixed in
- 2.0.47
composer require phpseclib/phpseclib:^2.0.47- Affected
- >=3.0.0 <3.0.36
- Fixed in
- 3.0.36
composer require phpseclib/phpseclib:^3.0.36Details
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
- Linkgithub.com/phpseclib/phpseclib/security/advisories/GHSA-2528-jw5q-ww88
- Advisorynvd.nist.gov/vuln/detail/CVE-2024-27354
- Linkgithub.com/phpseclib/phpseclib/commit/2870c8fab3f132d2ed40a66c97a36fe5ab625698
- Linkgithub.com/phpseclib/phpseclib/commit/ad5dbdf2129f5e0fb644637770b7f33de8ca8575
- Linkgithub.com/phpseclib/phpseclib/commit/c55b75199ec8d12cec6eadf6da99da4a3712fe56
- Linkgist.github.com/katzj/ee72f3c2a00590812b2ea3c0c8890e0b
- Linkgithub.com/FriendsOfPHP/security-advisories/blob/master/phpseclib/phpseclib/CVE-2024-27354.yaml
- Packagegithub.com/phpseclib/phpseclib
- Linkgithub.com/phpseclib/phpseclib/blob/master/phpseclib/Math/PrimeField.php#L49
- Linklists.debian.org/debian-lts-announce/2024/03/msg00002.html
- Linklists.debian.org/debian-lts-announce/2024/03/msg00003.html
Advisory data from OSV.dev (opens OSV.dev in a new tab), refreshed daily.