HighGHSA-94g3-g5v7-q4jgCVE-2026-32935
phpseclib's AES-CBC unpadding susceptible to padding oracle timing attack
Published 19 Mar 2026 · Updated 10 Sept 2026
Affected packages
phpseclib/phpseclibComposer
- Affected
- >=3.0.0 <3.0.50
- Fixed in
- 3.0.50
Update to the fixed version for your release line, for example:
composer require phpseclib/phpseclib:^3.0.50phpseclib/phpseclibComposer
- Affected
- >=2.0.0 <2.0.52
- Fixed in
- 2.0.52
Update to the fixed version for your release line, for example:
composer require phpseclib/phpseclib:^2.0.52phpseclib/phpseclibComposer
- Affected
- >=0.1.1 <1.0.27
- Fixed in
- 1.0.27
Update to the fixed version for your release line, for example:
composer require phpseclib/phpseclib:^1.0.27Details
Impact
Those using AES in CBC mode may be susceptible to a padding oracle timing attack.
Patches
https://github.com/phpseclib/phpseclib/commit/ccc21aef71eb170e9bf819b167e67d1fd9e6e788
Workarounds
Use AES in CTR, CFB or OFB modes
References
https://github.com/phpseclib/phpseclib/commit/ccc21aef71eb170e9bf819b167e67d1fd9e6e788
Is GHSA-94g3-g5v7-q4jg 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.