Une étude de cas sur la divulgation de vulnérabilité pour Lakebase Postgres
par Aaron Kobayashi, Mehmet D. Ince, Anurag Srivastava et Alexey Kondratov
Certains de nos meilleurs investissements en matière de sécurité n'ont pas été des outils ou des scanners. Ils ont été consacrés aux relations humaines. Databricks propose un programme de bug bounty car le moyen le plus rapide de trouver les points faibles d'une plateforme est de laisser des personnes talentueuses et curieuses les chercher, et de s'assurer que lorsqu'elles trouvent quelque chose, un rapport de bonne foi reçoive une réponse de bonne foi. La plupart des rapports sont des transactions discrètes : quelqu'un trouve un bogue, nous le corrigeons, et tout le monde passe à autre chose.
De temps en temps, l'un d'eux se transforme en une histoire vraiment passionnante. En voici une.
Il y a quelques semaines, un chercheur externe, Mehmet Ince, nous a signalé une faille de sécurité liée à la gestion de la mémoire dans une extension Postgres intégrée aux plateformes Postgres gérées, notamment Lakebase Postgres et Neon. Ce qui mérite d'être raconté, ce n'est pas seulement le bogue en soi. C'est tout ce qui s'est passé autour : comment nos systèmes de détection ont repéré ses tests, la rapidité avec laquelle nous avons pu protéger nos clients, et comment le correctif final a été partagé là où il devait l'être. Dans le monde de l'open source, pour que tout le monde puisse en bénéficier, pas seulement nous.
Si vous dirigez une équipe de sécurité, gérez une infrastructure open source managée, ou si vous êtes simplement curieux de savoir à quoi ressemble une relation saine entre un chercheur et un fournisseur des deux côtés, cet article est pour vous. Mehmet a détaillé l'analyse technique approfondie de l'exploitation sur son propre blog. Ici, nous voulons plutôt parler de la collaboration.
| Le blog de Mehmet fait référence à une exposition de données entre clients sur une autre plateforme. Databricks exécute Lakebase Postgres et Neon sur une architecture microVM qui offre une frontière de sécurité robuste entre les instances de calcul. L'exploit de Mehmet n'a eu aucun impact sur les données des clients de Databricks. |
|---|
L'écosystème d'extensions de Postgres est l'un des principaux moteurs de sa popularité. Bien que le support varie selon les fournisseurs, les clients s'attendent à ce que les offres managées prennent en charge les options de base et tierces les plus utilisées. L'une d'elles est PostGIS, la boîte à outils géospatiale. Au sein de PostGIS se trouve une extension plus petite et plus discrète appelée address_standardizer, qui transforme une adresse non structurée comme 123 Main St en un format normalisé.
Mehmet a découvert que address_standardizer présentait une faille classique de gestion de la mémoire : une valeur entièrement contrôlée par l'appelant (faisant partie d'une « règle » de grammaire que l'appelant peut fournir) était utilisée pour indexer un tableau interne de taille fixe sans vérification des limites. Si vous lui fournissez une valeur hors limites, vous obtenez un accès mémoire hors limites.
L'