Quebrando Math.random(): Um Algoritmo Aprimorado para Inverter Xorshift128+

2025-09-04
Quebrando Math.random(): Um Algoritmo Aprimorado para Inverter Xorshift128+

A recente vulnerabilidade CVE-2025-7783 explora um caso limite no ecossistema Node.js, afetando aplicativos que usam axios ou a biblioteca request descontinuada. O ataque requer cinco saídas consecutivas do Math.random() do JavaScript, permitindo a previsão de saídas futuras usando o solucionador z3. Este post de blog apresenta uma abordagem mais eficiente. O autor demonstra um algoritmo de 226 operações para inverter o algoritmo Xorshift128+ usado pelo Math.random(), exigindo apenas duas saídas completas de 64 bits. Ao analisar o Xorshift128+, conhecer apenas os 26 bits menos significativos de R1 permite determinar os bits restantes de L1 e R2. O post também discute a adaptação disso para a função Math.random() completa, destacando os desafios devido ao truncamento de bits e propondo uma solução usando três saídas. Finalmente, o autor compartilha sua experiência usando o ChatGPT para pesquisa, observando seu potencial enquanto reconhece as limitações atuais.

Desenvolvimento