Les ingénieurs de Tailscale ont remonté une série d'incidents de corruption de données dans leur infrastructure jusqu'à une race condition long-dormante dans le traitement du write-ahead log (WAL) de SQLite. Le bug, qui existait sans être détecté depuis plus de 16 ans, apparaît lors de la phase de checkpoint lorsque SQLite réinitialise le fichier WAL.

La vulnérabilité surgit lorsque plusieurs processus accèdent simultanément à une base de données en mode WAL. Dans des conditions de timing très précises durant les opérations de checkpoint, la race condition peut entraîner une perte de données – une défaillance critique en environnement de production. La fenêtre étroite pour déclencher le bug explique pourquoi il est resté latent si longtemps ; il faut une séquence spécifique d'opérations et d'interactions entre processus pour qu'il se manifeste.

La découverte de Tailscale est significative car le mode write-ahead log de SQLite est largement déployé dans les applications cherchant une meilleure concurrence et une récupération après crash. L'enquête illustre comment le débogage d'incidents en production sur des systèmes à grande échelle peut révéler des vulnérabilités dans des composants logiciels fondamentaux utilisés par des millions de développeurs. Corriger ces bugs requiert une coordination soigneuse avec les mainteneurs de SQLite.