Briser Math.random() : Un algorithme amélioré pour inverser Xorshift128+

2025-09-04
Briser Math.random() : Un algorithme amélioré pour inverser Xorshift128+

La vulnérabilité récente CVE-2025-7783 exploite un cas extrême dans l'écosystème Node.js, affectant les applications utilisant axios ou la bibliothèque request obsolète. L'attaque nécessite cinq sorties consécutives de Math.random() de JavaScript, permettant la prédiction des sorties futures à l'aide du solveur z3. Ce billet de blog présente une approche plus efficace. L'auteur démontre un algorithme de 226 opérations pour inverser l'algorithme Xorshift128+ utilisé par Math.random(), ne nécessitant que deux sorties complètes de 64 bits. En analysant Xorshift128+, connaître seulement les 26 bits les moins significatifs de R1 permet de déterminer les bits restants de L1 et R2. L'article discute également de l'adaptation de ceci à la fonction Math.random() complète, soulignant les défis liés à la troncature des bits et proposant une solution utilisant trois sorties. Enfin, l'auteur partage son expérience en utilisant ChatGPT pour la recherche, en observant son potentiel tout en reconnaissant les limitations actuelles.

Développement