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

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.50
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.52
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.27

Details

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.