CVE-2024-27354
phpseclib: guardrails needed on isPrime and randomPrime
An issue was discovered in phpseclib 1.x before 1.0.23, 2.x before 2.0.47, and 3.x before 3.0.36. An attacker can construct a malformed certificate containing an extremely large prime to cause a denial of service (CPU consumption for an isPrime primality check). NOTE: this issue was introduced when attempting to fix CVE-2023-27560.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
7.5
An issue was discovered in phpseclib 1.x before 1.0.23, 2.x before 2.0.47, and 3.x before 3.0.36. An attacker can construct a malformed certificate containing an extremely large prime to cause a denial of service (CPU consumption for an isPrime primality check). NOTE: this issue was introduced when attempting to fix CVE-2023-27560.
- Record
CVE-2024-27354- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-400
- Updated
- 2026-11-02
EUVDEUVD-2024-0936
7.5
phpseclib: guardrails needed on isPrime and randomPrime
- Record
EUVD-2024-0936- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-2528-jw5q-ww88
8.7
phpseclib: guardrails needed on isPrime and randomPrime
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
- Record
GHSA-2528-jw5q-ww88- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-400
- Updated
- 2026-11-02
GitHub AdvisoriesGHSA-hg35-mp25-qf6h
8.7
Duplicate Advisory: phpseclib: guardrails needed on isPrime and randomPrime
Duplicate Advisory
This advisory has been withdrawn because it is a duplicate of GHSA-2528-jw5q-ww88. This link is maintained to preserve external references.
Original Description
An issue was discovered in phpseclib 1.x before 1.0.23, 2.x before 2.0.47, and 3.x before 3.0.36. An attacker can construct a malformed certificate containing an extremely large prime to cause a denial of service (CPU consumption for an isPrime primality check). NOTE: this issue was introduced when attempting to fix CVE-2023-27560.
- Record
GHSA-hg35-mp25-qf6h- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-400
- Updated
- 2026-11-02
NVD
7.5
An issue was discovered in phpseclib 1.x before 1.0.23, 2.x before 2.0.47, and 3.x before 3.0.36. An attacker can construct a malformed certificate containing an extremely large prime to cause a denial of service (CPU consumption for an isPrime primality check). NOTE: this issue was introduced when attempting to fix CVE-2023-27560.
- Record
CVE-2024-27354- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-400
- Updated
- 2026-11-02
OSV
7.5
An issue was discovered in phpseclib 1.x before 1.0.23, 2.x before 2.0.47, and 3.x before 3.0.36. An attacker can construct a malformed certificate containing an extremely large prime to cause a denial of service (CPU consumption for an isPrime primality check). NOTE: this issue was introduced when attempting to fix CVE-2023-27560.
- Record
CVE-2024-27354- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
Show 7 moreShow less
OSVDEBIAN-CVE-2024-27354
7.5
An issue was discovered in phpseclib 1.x before 1.0.23, 2.x before 2.0.47, and 3.x before 3.0.36. An attacker can construct a malformed certificate containing an extremely large prime to cause a denial of service (CPU consumption for an isPrime primality check). NOTE: this issue was introduced when attempting to fix CVE-2023-27560.
- Record
DEBIAN-CVE-2024-27354- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVGHSA-2528-jw5q-ww88
8.7
phpseclib: guardrails needed on isPrime and randomPrime
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
- Record
GHSA-2528-jw5q-ww88- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-400
- Updated
- 2026-11-02
OSVGHSA-hg35-mp25-qf6h
8.7
Duplicate Advisory: phpseclib: guardrails needed on isPrime and randomPrime
Duplicate Advisory
This advisory has been withdrawn because it is a duplicate of GHSA-2528-jw5q-ww88. This link is maintained to preserve external references.
Original Description
An issue was discovered in phpseclib 1.x before 1.0.23, 2.x before 2.0.47, and 3.x before 3.0.36. An attacker can construct a malformed certificate containing an extremely large prime to cause a denial of service (CPU consumption for an isPrime primality check). NOTE: this issue was introduced when attempting to fix CVE-2023-27560.
- Record
GHSA-hg35-mp25-qf6h- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-400
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2024-27354
7.5
An issue was discovered in phpseclib 1.x before 1.0.23, 2.x before 2.0.47, and 3.x before 3.0.36. An attacker can construct a malformed certificate containing an extremely large prime to cause a denial of service (CPU consumption for an isPrime primality check). NOTE: this issue was introduced when attempting to fix CVE-2023-27560.
- Record
UBUNTU-CVE-2024-27354- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVCLSA-2026-1783386122 No score
TuxCare security update for phpseclib/phpseclib (1 CVE)
TuxCare rebuilt phpseclib/phpseclib to address 1 CVE. Fixed in 0.3.10-p3+tuxcare.
- Record
CLSA-2026-1783386122- Updated
- 2026-11-02
OSVUSN-7404-1 No score
phpseclib vulnerabilities
It was discovered that phpseclib did not correctly handle RSA PKCS#1 v1.5 signature verification. An attacker could possibly use this issue to bypass authentication. This issue only affected Ubuntu 20.04 LTS. (CVE-2021-30130)
It was discovered that phpseclib did not correctly handle certain characters in certain TLS fields, which could lead to name confusion. An attacker could possibly use this issue to bypass authentication. (CVE-2023-52892)
It was discovered that phpseclib incorrectly limited the size of prime numbers generated by isPrime. An attacker could possibly use this issue to cause a denial of service. (CVE-2024-27354)
It was discovered that phpseclib did not correctly handle processing the ASN.1 object identifier of a certificate. An attacker could possibly use this issue to cause a denial of service. This issue only affected Ubuntu 20.04 LTS and Ubuntu 22.04 LTS. (CVE-2024-27355)
- Record
USN-7404-1- Updated
- 2026-11-02
OSVUSN-8769-1 No score
phpseclib vulnerability
It was discovered that phpseclib did not perform padding validation in constant time when using AES in CBC mode. A remote attacker could possibly use this issue to conduct a padding oracle timing attack and obtain sensitive information.
- Record
USN-8769-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
phpseclib/phpseclibPackagist |
0.1.1 up to 1.0.23 | 1.0.23 |
phpseclib/phpseclibPackagist |
2.0.0 up to 2.0.47 | 2.0.47 |
phpseclib/phpseclibPackagist |
3.0.0 up to 3.0.36 | 3.0.36 |
phpseclib/phpseclibTuxCare:Packagist |
0.3.10 up to 0.3.10-p3+tuxcare, plus listed versions 0.3.10-p1+tuxcare0.3.10-p2+tuxcare |
0.3.10-p3+tuxcare |
php-phpseclibDebian:12 |
before 2.0.42-1+deb12u2, plus listed versions 2.0.42-12.0.42-1+deb12u1 |
2.0.42-1+deb12u2 |
php-phpseclibDebian:13 |
before 2.0.47-1 | 2.0.47-1 |
php-phpseclibDebian:14 |
before 2.0.47-1 | 2.0.47-1 |
php-phpseclib3Debian:12 |
before 3.0.19-1+deb12u3, plus listed versions 3.0.19-13.0.19-1+deb12u13.0.19-1+deb12u2 |
3.0.19-1+deb12u3 |
php-phpseclib3Debian:13 |
before 3.0.36-1 | 3.0.36-1 |
php-phpseclib3Debian:14 |
before 3.0.36-1 | 3.0.36-1 |
Show 32 moreShow less
| Package | Affected | Fixed |
|---|---|---|
phpseclibDebian:12 |
before 1.0.20-1+deb12u2, plus listed versions 1.0.20-11.0.20-1+deb12u1 |
1.0.20-1+deb12u2 |
phpseclibDebian:13 |
before 1.0.23-1 | 1.0.23-1 |
phpseclibDebian:10 From an advisory covering 2 CVEs |
before 1.0.19-3~deb10u3, plus listed versions 1.0.14-11.0.15-11.0.16-11.0.16-21.0.17-1 Show 6 moreShow less1.0.18-11.0.18-21.0.19-11.0.19-21.0.19-3~deb10u11.0.19-3~deb10u2 |
1.0.19-3~deb10u3 |
php-phpseclibDebian:10 From an advisory covering 2 CVEs |
before 2.0.30-2~deb10u3, plus listed versions 2.0.14-12.0.15-12.0.17-12.0.18-12.0.19-1 Show 16 moreShow less2.0.20-12.0.21-12.0.21-22.0.21-32.0.22-12.0.23-12.0.23-22.0.25-12.0.26-12.0.27-12.0.28-12.0.29-12.0.29-22.0.30-12.0.30-2~deb10u12.0.30-2~deb10u2 |
2.0.30-2~deb10u3 |
phpseclib/phpseclibPackagist |
0.1.1 up to 1.0.23, plus listed versions 0.3.00.3.10.3.100.3.50.3.6 Show 26 moreShow less0.3.70.3.80.3.91.0.01.0.11.0.101.0.111.0.121.0.131.0.141.0.151.0.161.0.171.0.181.0.191.0.21.0.201.0.211.0.221.0.31.0.41.0.51.0.61.0.71.0.81.0.9 |
1.0.23 |
phpseclib/phpseclibPackagist |
2.0.0 up to 2.0.47, plus listed versions 2.0.12.0.102.0.112.0.122.0.13 Show 41 moreShow less2.0.142.0.152.0.162.0.172.0.182.0.192.0.22.0.202.0.212.0.222.0.232.0.242.0.252.0.262.0.272.0.282.0.292.0.32.0.302.0.312.0.322.0.332.0.342.0.352.0.362.0.372.0.382.0.392.0.42.0.402.0.412.0.422.0.432.0.442.0.452.0.462.0.52.0.62.0.72.0.82.0.9 |
2.0.47 |
phpseclib/phpseclibPackagist |
3.0.0 up to 3.0.36, plus listed versions 3.0.13.0.103.0.113.0.123.0.13 Show 21 moreShow less3.0.143.0.153.0.163.0.173.0.183.0.193.0.23.0.203.0.213.0.223.0.233.0.33.0.333.0.343.0.353.0.43.0.53.0.63.0.73.0.83.0.9 |
3.0.36 |
php-phpseclibUbuntu:Pro:16.04:LTS |
before 2.0.1-1ubuntu0.1~esm2, plus listed versions 2.0.1-12.0.1-1build1 |
2.0.1-1ubuntu0.1~esm2 |
phpseclibUbuntu:Pro:16.04:LTS |
before 1.0.1-3ubuntu0.1+esm1, plus listed versions 0.3.10-31.0.0-21.0.0-31.0.1-11.0.1-31.0.1-3ubuntu0.1 |
1.0.1-3ubuntu0.1+esm1 |
php-phpseclibUbuntu:Pro:18.04:LTS |
before 2.0.9-1ubuntu0.1~esm2, plus listed versions 2.0.6-12.0.7-12.0.9-1 |
2.0.9-1ubuntu0.1~esm2 |
phpseclibUbuntu:Pro:18.04:LTS |
before 1.0.9-1ubuntu0.1~esm1, plus listed versions 1.0.7-11.0.8-11.0.9-1 |
1.0.9-1ubuntu0.1~esm1 |
php-phpseclibUbuntu:Pro:20.04:LTS |
before 2.0.23-2ubuntu0.1~esm2, plus listed versions 2.0.21-22.0.23-2 |
2.0.23-2ubuntu0.1~esm2 |
phpseclibUbuntu:Pro:20.04:LTS |
before 1.0.18-2ubuntu0.1~esm1, plus listed versions 1.0.16-21.0.18-2 |
1.0.18-2ubuntu0.1~esm1 |
phpseclibUbuntu:22.04:LTS |
before 1.0.20-1+deb12u3build0.22.04.1, plus listed versions 1.0.19-3ubuntu21.0.19-3ubuntu31.0.20-1 |
1.0.20-1+deb12u3build0.22.04.1 |
php-phpseclibUbuntu:Pro:22.04:LTS |
before 2.0.36-1ubuntu0.1~esm2, plus listed versions 2.0.30-2ubuntu12.0.34-12.0.35-12.0.36-1 |
2.0.36-1ubuntu0.1~esm2 |
php-phpseclib3Ubuntu:Pro:22.04:LTS |
before 3.0.13-1ubuntu0.1~esm1, plus listed versions 3.0.9-13.0.10-13.0.12-23.0.13-1 |
3.0.13-1ubuntu0.1~esm1 |
phpseclibUbuntu:Pro:22.04:LTS |
before 1.0.20-1ubuntu0.1~esm1, plus listed versions 1.0.19-3ubuntu21.0.19-3ubuntu31.0.20-1 |
1.0.20-1ubuntu0.1~esm1 |
php-phpseclibUbuntu:Pro:16.04:LTS From an advisory covering 4 CVEs |
before 2.0.1-1ubuntu0.1~esm2, plus listed versions 2.0.1-12.0.1-1build1 |
2.0.1-1ubuntu0.1~esm2 |
phpseclibUbuntu:Pro:16.04:LTS From an advisory covering 4 CVEs |
before 1.0.1-3ubuntu0.1+esm1, plus listed versions 0.3.10-31.0.0-21.0.0-31.0.1-11.0.1-31.0.1-3ubuntu0.1 |
1.0.1-3ubuntu0.1+esm1 |
php-phpseclibUbuntu:Pro:18.04:LTS From an advisory covering 4 CVEs |
before 2.0.9-1ubuntu0.1~esm2, plus listed versions 2.0.6-12.0.7-12.0.9-1 |
2.0.9-1ubuntu0.1~esm2 |
phpseclibUbuntu:Pro:18.04:LTS From an advisory covering 4 CVEs |
before 1.0.9-1ubuntu0.1~esm1, plus listed versions 1.0.7-11.0.8-11.0.9-1 |
1.0.9-1ubuntu0.1~esm1 |
php-phpseclibUbuntu:Pro:20.04:LTS From an advisory covering 4 CVEs |
before 2.0.23-2ubuntu0.1~esm2, plus listed versions 2.0.21-22.0.23-2 |
2.0.23-2ubuntu0.1~esm2 |
phpseclibUbuntu:Pro:20.04:LTS From an advisory covering 4 CVEs |
before 1.0.18-2ubuntu0.1~esm1, plus listed versions 1.0.16-21.0.18-2 |
1.0.18-2ubuntu0.1~esm1 |
php-phpseclibUbuntu:Pro:22.04:LTS From an advisory covering 4 CVEs |
before 2.0.36-1ubuntu0.1~esm2, plus listed versions 2.0.30-2ubuntu12.0.34-12.0.35-12.0.36-1 |
2.0.36-1ubuntu0.1~esm2 |
php-phpseclib3Ubuntu:Pro:22.04:LTS From an advisory covering 4 CVEs |
before 3.0.13-1ubuntu0.1~esm1, plus listed versions 3.0.9-13.0.10-13.0.12-23.0.13-1 |
3.0.13-1ubuntu0.1~esm1 |
phpseclibUbuntu:Pro:22.04:LTS From an advisory covering 4 CVEs |
before 1.0.20-1ubuntu0.1~esm1, plus listed versions 1.0.19-3ubuntu21.0.19-3ubuntu31.0.20-1 |
1.0.20-1ubuntu0.1~esm1 |
phpseclibUbuntu:Pro:16.04:LTS From an advisory covering 5 CVEs |
before 1.0.1-3ubuntu0.1+esm1, plus listed versions 0.3.10-31.0.0-21.0.0-31.0.1-11.0.1-31.0.1-3ubuntu0.1 |
1.0.1-3ubuntu0.1+esm1 |
phpseclibUbuntu:Pro:18.04:LTS From an advisory covering 5 CVEs |
before 1.0.9-1ubuntu0.1~esm2, plus listed versions 1.0.7-11.0.8-11.0.9-11.0.9-1ubuntu0.1~esm1 |
1.0.9-1ubuntu0.1~esm2 |
phpseclibUbuntu:Pro:20.04:LTS From an advisory covering 5 CVEs |
before 1.0.18-2ubuntu0.1~esm2, plus listed versions 1.0.16-21.0.18-21.0.18-2ubuntu0.1~esm1 |
1.0.18-2ubuntu0.1~esm2 |
phpseclibUbuntu:22.04:LTS From an advisory covering 5 CVEs |
before 1.0.20-1+deb12u3build0.22.04.1, plus listed versions 1.0.19-3ubuntu21.0.19-3ubuntu31.0.20-1 |
1.0.20-1+deb12u3build0.22.04.1 |
phpseclibUbuntu:Pro:24.04:LTS From an advisory covering 5 CVEs |
before 1.0.23-1ubuntu0.1~esm1, plus listed versions 1.0.21-21.0.22-11.0.23-1 |
1.0.23-1ubuntu0.1~esm1 |
phpseclibUbuntu:Pro:26.04:LTS From an advisory covering 5 CVEs |
before 1.0.24-1ubuntu0.1~esm1, plus listed versions 1.0.23-61.0.24-1 |
1.0.24-1ubuntu0.1~esm1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| affected | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2024-27354 is a high vulnerability (CVSS 7.5) in Phpseclib, published March 1, 2024. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.60%, the 48th percentile. Fixed in phpseclib/phpseclib 1.0.23.
References
github.com/phpseclib/phpseclib/blob/master/phpseclib/Math/PrimeField.php
gist.github.com/katzj/ee72f3c2a00590812b2ea3c0c8890e0b
lists.debian.org/debian-lts-announce/2024/03/msg00002.html
lists.debian.org/debian-lts-announce/2024/03/msg00003.html
github.com/phpseclib/phpseclib/security/advisories/GHSA-2528-jw5q-ww88
nvd.nist.gov/vuln/detail/CVE-2024-27354
Show 18 moreShow less
github.com/phpseclib/phpseclib/commit/2870c8fab3f132d2ed40a66c97a36fe5ab625698
github.com/phpseclib/phpseclib/commit/ad5dbdf2129f5e0fb644637770b7f33de8ca8575
github.com/phpseclib/phpseclib/commit/c55b75199ec8d12cec6eadf6da99da4a3712fe56
github.com/FriendsOfPHP/security-advisories/blob/master/phpseclib/phpseclib/CVE-2024-27354.yaml
github.com/advisories/GHSA-2528-jw5q-ww88
github.com/advisories/GHSA-hg35-mp25-qf6h
github.com/CVEProject/cvelistV5/tree/main/cves/2024/27xxx/CVE-2024-27354.json
security-tracker.debian.org/tracker/CVE-2024-27354
github.com/phpseclib/phpseclib
ubuntu.com/security/CVE-2024-27354
cve.org/CVERecord?id=CVE-2024-27354
ubuntu.com/security/notices/USN-7404-1
ubuntu.com/security/notices/USN-8769-1
ubuntu.com/security/CVE-2021-30130
ubuntu.com/security/CVE-2023-52892
ubuntu.com/security/CVE-2024-27355
ubuntu.com/security/CVE-2023-48795
ubuntu.com/security/CVE-2026-32935