Vulnerabilidades de segurança decorrentes do PRNG fraco do Dart/Flutter

2024-12-13

A pesquisa da Zellic descobriu várias vulnerabilidades de segurança causadas por um gerador de números pseudoaleatórios (PRNG) fraco em Dart/Flutter. Uma falha na inicialização da função `Random()` no Dart SDK resultou em entropia insuficiente nas chaves geradas, tornando-as suscetíveis a ataques de força bruta. Isso permitiu que atacantes acessassem facilmente o Dart Tooling Daemon, permitindo que eles lessem ou escrevessem arquivos de espaço de trabalho e até executassem código arbitrário. Além disso, os projetos Proton Wallet e SelfPrivacy também foram afetados por esse PRNG fraco, experimentando vulnerabilidades de criptografia e problemas de senhas previsíveis, respectivamente. Embora a vulnerabilidade tenha sido corrigida, os desenvolvedores são instados a ter cuidado ao usar a função `Random()` e usar `Random.secure()` quando números aleatórios criptograficamente seguros forem necessários.