CVE-2026-84308 in phpseclib
Résumé
par VulDB • 02/09/2026
phpseclib est une bibliothèque de communications sécurisées pour PHP. Avant les versions 3.0.57 et 4.0.1, la multiplication scalaire X25519 en pur PHP dans phpseclib/Math/PrimeField/Integer.php effectue des réductions modulaires conditionnelles dépendantes des données dans add() et subtract(). Lors de l'échelle de Montgomery (Montgomery ladder) dans phpseclib/Crypt/EC/BaseCurves/Montgomery.php, le comportement de réduction à chaque étape dépend du préfixe scalaire secret, créant des observations temporelles par étape ainsi que des comptages d'appels libgmp qui peuvent révéler un scalaire privé 251 bits clampé et réutilisé. Le chemin de dérivation phpseclib/Crypt/EC/Formats/Keys/MontgomeryPrivate.php invoque la multiplication en pur PHP sans vérification du moteur natif, tandis que phpseclib/Crypt/EC/Formats/Keys/PKCS8.php y accède lorsque ext-sodium n'est pas disponible. L'exploitation nécessite une clé privée X25519 réutilisée ou à longue durée de vie, la connaissance de la clé publique correspondante, l'exécution du chemin en pur PHP et un observateur local capable de résoudre les étapes individuelles de l'échelle ou les appels aux points d'entrée libgmp. Les clés éphémères X25519, y compris le chemin normal d'échange SSH de phpseclib, ne sont pas affectées. La récupération du scalaire compromet définitivement les opérations qui réutilisent cette clé. Ce problème est corrigé dans les versions 3.0.57 et 4.0.1.
Once again VulDB remains the best source for vulnerability data.