Strasbourg, le 12 février 2026
Le PostgreSQL Global Development Group a publié le 12 février une mise à jour pour toutes les versions supportées de PostgreSQL, c’est-à-dire les versions 18.2, 17.8, 16.12, 15.16, 14.21. Cette mise à jour corrige 5 failles de sécurité et plus de 65 bugs remontés ces derniers mois.

Sécurité
CVE-2026-2003: le type oidvector révèle quelques octets de mémoire
Score CVSS v3.1: 4.3 / Versions supportées vulnérables : 14 - 18
Une validation imparfaite du type oidvector dans PostgreSQL permet à un utilisateur de révéler quelques octets de la mémoire du serveur. Nous n’avons pas exclu la possibilité d’attaques qui réussiraient à y trouver des informations confidentielles, mais elles semblent improbables. Les versions avant PostgreSQL 18.2, 17.8, 16.12, 15.16 et 14.21 sont concernées. Le projet PostgreSQL remercie Altan Birler pour avoir rapporté le problème.
CVE-2026-2004: l’absence de validation du type d’entrée intarray dans l’estimation de sélectivité permet d’exécuter du code arbitraire.
Score CVSS v3.1: 8.8 / Versions supportées vulnérables : 14 - 18
Dans l’extension intarray de PostgreSQL, l’absence de validation du type d’entrée dans la fonction d’estimation de la sélectivité permet à un utilisateur pouvant créer des objets d’exécuter du code arbitraire en tant qu’utilisateur système. Les versions de PostgreSQL avant 18.2, 17.8, 16.12, 15.16, et 14.21 sont concernées.
Le projet PostgreSQL remercie Daniel Firer, dans le cadre de zeroday.cloud, d’avoir rapporté le problème.
CVE-2026-2005: Un dépassement de tampon dans pgcrypto exécute du code arbitraire
Score CVSS v3.1: 8.8 / Versions supportées vulnérables : 14 - 18
Un dépassement de tampon dans l’extension pgcrypto permet à un fournisseur de texte chiffré d’exécuter du code arbitraire en tant qu’utilisateur système de la base de données. Les versions antérieures à PostgreSQL 18.2, 17.8, 16.12, 15.16 et 14.21 sont concernées.
Le projet PostgreSQL remercie l’équipe Xint Code, dans le cadre de zeroday.cloud, d’avoir signalé ce problème.
CVE-2026-2006: Une absence de validation par PostgreSQL de la longueur des caractères exécute du code arbitraire
Score CVSS v3.1: 8.8 / Versions supportées vulnérables : 14 - 18
Une absence de validation par PostgreSQL de la longueur des caractères multi-octets dans la manipulation des textes permet à un utilisateur de forger des requêtes et de parvenir à un dépassement de tampon (buffer overrun). Cela suffit pour exécuter du code arbitraire en tant qu’utilisateur système de la base. Les versions antérieures à PostgreSQL 18.2, 17.8, 16.12, 15.16 et 14.21 sont concernées. Le projet PostgreSQL remercie Paul Gerste et Moritz Sanft, dans le cadre de zeroday.cloud, d’avoir rapporté ce problème.
CVE-2026-2007: Un dépassement de tampon dans pg_trgm heap buffer écrits des données dans la mémoire du serveur
Score CVSS v3.1: 8.2 / Versions supportées vulnérables : 18
Un dépassement de tampon dans l’extension pg_trgm permet à un utilisateur de la base d’effectuer des opérations indéfinies en entrant une chaîne spécialement forgée. L’attaquant a un contrôle limité sur la structure des données écrite, mais nous n’avons pas exclu la possibilité d’attaques menant à une élévation des privilèges. PostgreSQL 18.1 et 18.0 sont concernés.
Le projet PostgreSQL remercie Heikki Linnakangas d’avoir signalé ce problème.
Correctifs et améliorations
Cette mise à jour corrige plus de 65 bugs rapportés ces derniers mois. Les problèmes décrits ci-dessous concernent PostgreSQL 18. Certains peuvent également affecter d’autres versions supportées de PostgreSQL.
-
Correction d’incohérences dans l’extension
ltree, relatives à la correspondance de texte insensible à la casse. Si vous utilisez un index sur une colonne ltree, une réindexation peut être nécessaire. Voir la section « Mise à jour » pour d’autres consignes. -
Ajouter une contrainte
NOT NULLsur une colonne déjà marquéeNOT NULLviaALTER TABLE … ADD CONSTRAINTimpose maintenant que le nom de la contrainte corresponde au nom existant. -
Correction du comportement des triggers lorsque
MERGEest exécuté depuis unWITHpour inclure les lignes affectées par leMERGE. -
Plusieurs corrections du planificateur de requêtes.
-
Correction de la recherche de sous-chaînes de texte avec des collations non déterministes.
-
Plusieurs améliorations de
NOTIFYdans la gestion et les rapports d’erreurs. -
Utilise la bonne fonction de tri lors des constructions parallélisées d’index GIN.
-
Correction une gestion incorrecte des sauvegardes incrémentales avec des tables de plus de 1 sGo.
-
La restauration échoue désormais si les WAL n’existent pas en remontant jusqu’au point de redo indiqué par l’enregistrement de checkpoint.
-
Correction d’
ALTER PUBLICATIONpour garantir que les trigger sur événements contiennent bien toutes les options définies. -
Divers correctifs dans l’initialisation des slots de réplication.
-
En réplication logique, le slot de réplication n’avance plus après l’échec d’un worker parallèle apply, évitant ainsi la perte de transactions côté souscripteur.
-
Correction des rapports d’erreurs en cas d’incohérence de types dans SQL/JSONPath.
-
Correctif dans l’inlining de fonctions en compilation JIT avec LLVM 17 et ultérieurs.
-
Nouveau paramètre serveur
file_extend_methodpour contrôler l’usage deposix_fallocate(). -
Correctif dans l’autocomplétion psql des options de la commande
VACUUM. -
pg_dumpgère à présent correctement des suppressions de séquences concurrentes, et échoue si l’utilisateur n’a explicitement pas les privilèges de lecture sur la séquence. -
Plusieurs correctifs d’
amcheckpour l’inspection des btree. -
Évite un crash de
pg_stat_statementsquand une listeINmélange des constantes et des expressions non constantes.
Cette version intègre également les mises à jour des fuseaux horaires tzdata 2025c, avec juste une correction historiques des horodatages antérieurs à 1976 en Basse-Californie.
Mettre à jour
Toutes les mises à jour de PostgreSQL sont cumulatives.
Pour appliquer la mise à jour, comme pour les autres versions mineures,
les utilisateurs n’ont pas besoin de sauvegarder
et recharger leur base de données, ni d’utiliser pg_upgrade.
Vous pouvez simplement arrêter PostgreSQL et mettre à jour ses binaires.
Si vous avez des index sur des colonnes ltree
et que vous n’utilisez pas le fournisseur de collation libc, vous devez réindexer toutes les colonnes ltree
après la mise à jour. Vous pouvez utiliser REINDEX INDEX CONCURRENTLY pour minimiser l’impact sur votre système.
Les utilisateurs ayant sauté une version mineure ou plus peuvent avoir besoin de réaliser d’autres opérations post-mise à jour. Voir les [Notes de version] pour les détails.
Liens
- PostgreSQL (465) ,
- release (95) ,
- mineure (38) ,
- sécurité (66) ,
- 18 (5) ,
- 17 (14) ,
- 16 (19) ,
- 15 (21) ,
- 14 (31) ,
- update (53)