Faille PostgreSQL : 52 correctifs dont un bug vieux de 22 ans

Une faille PostgreSQL vieille de 22 ans, CVE-2026-6460, permet l'exécution de code à distance après authentification.
Une faille PostgreSQL vieille de 22 ans vient d’être corrigée. Elle permet à un utilisateur authentifié d’exécuter du code sur le serveur de base de données. Les mises à jour de sécurité publiées par le projet corrigent ce défaut, ainsi que 51 autres vulnérabilités. Au total, ce sont donc 52 failles qui sont traitées d’un seul coup.
Une faille PostgreSQL vieille de 22 ans
Le défaut principal est suivi sous l’identifiant CVE-2026-6460. Son score CVSS atteint 8,8, ce qui le classe parmi les vulnérabilités de gravité élevée. Il s’agit d’une confusion de type, ou type confusion en anglais.
Le bug est resté présent dans le code pendant 22 ans. Pourtant, il n’est pas exploitable par n’importe qui. L’attaquant doit d’abord disposer d’un compte valide sur la base. Il doit en outre avoir le droit de créer des objets.
Ce prérequis limite le risque, mais il ne l’élimine pas. En effet, de nombreux environnements accordent ce droit à des développeurs, à des applications ou à des comptes de service. Un compte compromis suffit alors pour tenter l’attaque.
Comment fonctionne la confusion de type
Une confusion de type survient quand un programme traite une donnée comme si elle appartenait à un autre type. Le logiciel interprète alors la mémoire de façon erronée. Cette erreur peut conduire à des comportements imprévus.
Dans le pire des cas, un attaquant détourne ce mécanisme pour exécuter son propre code. C’est précisément ce que permet la vulnérabilité CVE-2026-6460. L’utilisateur qui crée des objets peut ainsi obtenir une exécution de code à distance, ou RCE, sur la machine qui héberge PostgreSQL.
Les conséquences sont sérieuses. Le code exécuté s’appuie sur les droits du système d’exploitation associés au serveur de base de données. Autrement dit, l’attaquant ne reste plus cantonné aux données SQL. Il peut agir sur le serveur lui-même, avec les privilèges du compte qui fait tourner le service.
Cela ouvre plusieurs possibilités :
- lire ou modifier des fichiers accessibles à ce compte ;
- accéder à l’ensemble des bases hébergées sur l’instance ;
- utiliser le serveur comme point d’appui vers le reste du réseau.
Les extensions en C doivent être recompilées
Appliquer la mise à jour ne suffit pas toujours. La protection complète exige une étape supplémentaire. Il faut en effet recompiler les extensions écrites en langage C installées sur le serveur.
La raison tient à la nature de ces extensions. Elles sont compilées contre une version précise du code de PostgreSQL. Par conséquent, une extension construite avant le correctif peut conserver le comportement vulnérable. Mettre à jour le serveur seul laisserait alors une brèche ouverte.
Cette contrainte concerne surtout les entreprises qui utilisent des modules maison ou des extensions tierces. Les équipes doivent donc dresser l’inventaire de ce qui est installé. Ensuite, elles doivent reconstruire chaque extension en C avec la version corrigée.
Les 51 autres failles sont également couvertes par ces mises à jour. Elles ne sont pas détaillées ici. Toutefois, leur nombre justifie à lui seul une application rapide des correctifs.
Comment se protéger de cette faille PostgreSQL
Les administrateurs doivent agir en suivant un ordre simple. D’abord, il faut identifier toutes les instances PostgreSQL de l’organisation. Cela inclut les serveurs de test, les conteneurs et les bases gérées par des équipes de développement.
Ensuite, il faut déployer les versions corrigées publiées par le projet. Par ailleurs, il est prudent de consulter les notes de version officielles pour vérifier la branche concernée. Enfin, il faut recompiler les extensions en C, sans quoi le correctif reste partiel.
Quelques mesures complémentaires réduisent l’exposition :
- restreindre le droit de créer des objets aux seuls comptes qui en ont besoin ;
- revoir régulièrement les rôles et les privilèges accordés ;
- faire tourner PostgreSQL avec un compte système aux droits minimaux ;
- surveiller les connexions et les créations d’objets inhabituelles.
Ce qu’il faut retenir
- La vulnérabilité CVE-2026-6460 est une confusion de type notée 8,8 sur l’échelle CVSS.
- Elle date de 22 ans et permet une exécution de code à distance après authentification.
- L’attaquant doit pouvoir se connecter et créer des objets dans la base.
- Le code exécuté dispose des droits du système d’exploitation du service PostgreSQL.
- Les mises à jour corrigent 52 failles au total, soit 51 autres en plus de celle-ci.
- Les extensions en langage C doivent être recompilées pour une protection complète.
Le plus sûr reste d’appliquer les correctifs sans attendre. Un compte légitime mais compromis suffit pour exploiter ce type de défaut. Mieux vaut donc corriger vite et réduire les privilèges au strict nécessaire.
Source : PostgreSQL Patches 52 Flaws, Including 22-Year-Old Bug Enabling Authenticated RCE