HeadlinesBriefing HeadlinesBriefing.com

Faille RCE de 90 000 $ trouvée chez Google

Hacker News •
×

Un chercheur en sécurité a découvert une faille d'exécution de code à distance dans les sites de documentation pour développeurs de Google. En cartographiant le flux OAuth partagé entre ces sites, le chercheur a remarqué que le point de terminaison /oauth2authorize définissait un cookie de session Flask anormalement volumineux, d'environ 1 200 octets, bien plus que ce qu'exigent un jeton CSRF et une URL de retour. Les cookies de session Flask sont signés mais non chiffrés : leur contenu était donc lisible par quiconque en possédait un.

Le décodage du cookie a révélé un objet sérialisé avec pickle contenant le client_id et le client_secret OAuth de Google en clair. Le chercheur a constaté que le client secret servait aussi de SECRET_KEY à Flask, ce qui signifie que la même valeur détenait et vérifiait la signature. Comme la clé de signature était exposée dans le cookie lui-même, le chercheur pouvait recalculer des signatures valides hors ligne et forger des données de session arbitraires.

Le point de terminaison de rappel lit les données du flux OAuth depuis la session et les transmet à pickle.loads. Avec une session forgée, un attaquant pouvait fournir une charge utile pickle malveillante, faisant de ce problème un chemin d'exécution de code à distance sans authentification. Le chercheur a vérifié la faille de manière sûre à l'aide d'une charge utile qui ne déclenchait que time.sleep, évitant toute commande sur les systèmes de production de Google.

Cette découverte illustre comment le stockage de secrets dans les données de session côté client et la désérialisation de données pickle non fiables peuvent se combiner en une vulnérabilité critique. La faille a valu une prime de 90 000 $.

Source: Hacker News · Résumé par HeadlinesBriefing