phpseclib up to 3.0.56/4.0.0 X25519 Scalar Multiplication Integer.php add/subtract timing discrepancy
| CVSS Meta Temp Score | Current Exploit Price (≈) | CTI Interest Score |
|---|---|---|
| 4.3 | $0-$5k | 0.00+ |
Summary
A vulnerability identified as problematic has been detected in phpseclib up to 3.0.56/4.0.0. Affected by this issue is the function add/subtract of the file phpseclib/Math/PrimeField/Integer.php of the component X25519 Scalar Multiplication. The manipulation leads to timing discrepancy.
This vulnerability is referenced as CVE-2026-84308. The attack can only be performed from a local environment. No exploit is available.
Details
A vulnerability was found in phpseclib up to 3.0.56/4.0.0 and classified as problematic. This issue affects the function add/subtract of the file phpseclib/Math/PrimeField/Integer.php of the component X25519 Scalar Multiplication. The manipulation with an unknown input leads to a timing discrepancy vulnerability. Using CWE to declare the problem leads to CWE-208. Two separate operations in a product require different amounts of time to complete, in a way that is observable to an actor and reveals security-relevant information about the state of the product, such as whether a particular operation was successful or not. Impacted is confidentiality. The summary by CVE is:
phpseclib is a PHP secure communications library. Prior to 3.0.57 and 4.0.1, pure-PHP X25519 scalar multiplication in phpseclib/Math/PrimeField/Integer.php performs data-dependent conditional modular reductions in add() and subtract(). During the Montgomery ladder in phpseclib/Crypt/EC/BaseCurves/Montgomery.php, the reduction behavior of each step depends on the secret scalar prefix, creating per-step timing and libgmp call-count observations that can reveal a reused 251-bit clamped private scalar. The phpseclib/Crypt/EC/Formats/Keys/MontgomeryPrivate.php derivation path invokes the pure-PHP multiplication without a native-engine check, while phpseclib/Crypt/EC/Formats/Keys/PKCS8.php reaches it when ext-sodium is unavailable. Exploitation requires a reused or long-lived X25519 private key, knowledge of the corresponding public key, execution of the pure-PHP path, and a local observer capable of resolving individual ladder steps or libgmp entry-point calls. Ephemeral X25519 keys, including phpseclib's normal SSH exchange path, are not affected. Recovery of the scalar permanently compromises operations that reuse that key. This issue is fixed in versions 3.0.57 and 4.0.1.
The advisory is shared at github.com. The identification of this vulnerability is CVE-2026-84308 since 09/01/2026. The exploitation is known to be difficult. An attack has to be approached locally. Technical details are known, but no exploit is available. MITRE ATT&CK project uses the attack technique T1592 for this issue.
By approaching the search of inurl:phpseclib/Math/PrimeField/Integer.php it is possible to find vulnerable targets with Google Hacking.
Upgrading to version 3.0.57 or 4.0.1 eliminates this vulnerability.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.
Product
Name
Version
- 3.0.0
- 3.0.1
- 3.0.2
- 3.0.3
- 3.0.4
- 3.0.5
- 3.0.6
- 3.0.7
- 3.0.8
- 3.0.9
- 3.0.10
- 3.0.11
- 3.0.12
- 3.0.13
- 3.0.14
- 3.0.15
- 3.0.16
- 3.0.17
- 3.0.18
- 3.0.19
- 3.0.20
- 3.0.21
- 3.0.22
- 3.0.23
- 3.0.24
- 3.0.25
- 3.0.26
- 3.0.27
- 3.0.28
- 3.0.29
- 3.0.30
- 3.0.31
- 3.0.32
- 3.0.33
- 3.0.34
- 3.0.35
- 3.0.36
- 3.0.37
- 3.0.38
- 3.0.39
- 3.0.40
- 3.0.41
- 3.0.42
- 3.0.43
- 3.0.44
- 3.0.45
- 3.0.46
- 3.0.47
- 3.0.48
- 3.0.49
- 3.0.50
- 3.0.51
- 3.0.52
- 3.0.53
- 3.0.54
- 3.0.55
- 3.0.56
- 4.0
Website
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔒VulDB Reliability: 🔍
CVSSv3
VulDB Meta Base Score: 4.4VulDB Meta Temp Score: 4.3
VulDB Base Score: 2.5
VulDB Temp Score: 2.4
VulDB Vector: 🔒
VulDB Reliability: 🔍
CNA Base Score: 6.3
CNA Vector (GitHub_M): 🔒
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vector | Complexity | Authentication | Confidentiality | Integrity | Availability |
|---|---|---|---|---|---|
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
VulDB Base Score: 🔒
VulDB Temp Score: 🔒
VulDB Reliability: 🔍
Exploiting
Class: Timing discrepancyCWE: CWE-208 / CWE-203 / CWE-200
CAPEC: 🔒
ATT&CK: 🔒
Physical: Partially
Local: Yes
Remote: No
Availability: 🔒
Status: Not defined
Google Hack: 🔒
Price Prediction: 🔍
Current Price Estimation: 🔒
| 0-Day | Unlock | Unlock | Unlock | Unlock |
|---|---|---|---|---|
| Today | Unlock | Unlock | Unlock | Unlock |
Threat Intelligence
Interest: 🔍Active Actors: 🔍
Active APT Groups: 🔍
Countermeasures
Recommended: UpgradeStatus: 🔍
0-Day Time: 🔒
Upgrade: phpseclib 3.0.57/4.0.1
Timeline
09/01/2026 Advisory disclosed09/01/2026 CVE reserved
09/01/2026 VulDB entry created
09/01/2026 VulDB entry last update
Sources
Product: github.comAdvisory: github.com
Status: Confirmed
CVE: CVE-2026-84308 (🔒)
GCVE (CVE): GCVE-0-2026-84308
GCVE (VulDB): GCVE-100-397805
Entry
Created: 09/01/2026 21:40Changes: 09/01/2026 21:40 (65)
Complete: 🔍
Cache ID: 216::103
If you want to get the best quality for vulnerability data then you always have to consider VulDB.
No comments yet. Languages: en.
Please log in to comment.