In May 2026, the PostgreSQL Global Development Group released coordinated security updates for all supported major versions — 18.4, 17.10, 16.14, 15.18, and 14.23 — fixing eleven security vulnerabilities in a single day. Three of them carry a CVSS score of 8.8, enabling remote code execution, arbitrary file overwrite, and SQL injection by unprivileged database users. Just three months earlier, PostgreSQL had patched a 20-year-old heap buffer overflow in its pgcrypto module. In total, PostgreSQL has published 16 CVEs in 2026 alone — nearly double its 2025 count of nine.
En mai 2026, le PostgreSQL Global Development Group a publié des mises à jour de sécurité coordonnées pour toutes les versions majeures supportées — 18.4, 17.10, 16.14, 15.18 et 14.23 — corrigeant onze vulnérabilités de sécurité en une seule journée. Trois d'entre elles ont un score CVSS de 8,8, permettant l'exécution de code à distance, l'écrasement de fichiers arbitraires et l'injection SQL par des utilisateurs non privilégiés. Trois mois plus tôt, PostgreSQL avait corrigé un dépassement de tampon de tas vieux de 20 ans dans son module pgcrypto. Au total, PostgreSQL a publié 16 CVE en 2026 — près du double de son total 2025 de neuf.
With PostgreSQL now used by 55.6% of all developers — the most popular database in the world for the third consecutive year — and PostgreSQL 14 reaching end of life on November 12, 2026, the stakes have never been higher. This guide covers every critical flaw in detail, explains how to check and patch your version, and provides a developer-focused hardening checklist.
PostgreSQL est utilisé par 55,6% des développeurs — la base de données la plus populaire au monde pour la troisième année consécutive — et PostgreSQL 14 atteint sa fin de vie le 12 novembre 2026. Les enjeux n'ont jamais été aussi élevés. Ce guide couvre chaque faille critique en détail, explique comment vérifier et patcher votre version, et fournit une checklist de durcissement orientée développeur.
Why PostgreSQL Had More Vulnerabilities in 2026 Than Any Recent Year
Pourquoi PostgreSQL a Eu Plus de Vulnérabilités en 2026 Que Ces Dernières Années
PostgreSQL published just 9 CVEs in all of 2025, with an average CVSS score of 6.2. The 2026 surge to 16 CVEs — average CVSS 7.3 — reflects a combination of factors: a broader security audit of the codebase as part of the major PostgreSQL 18 release cycle, increased scrutiny from security researchers following high-profile database breaches across the industry, and the discovery of latent memory-safety issues in older C code paths (some dating back to the early 2000s, like the pgcrypto flaw). The result is two major patch batches — February and May 2026 — that every team running PostgreSQL must have already applied.
PostgreSQL n'a publié que 9 CVE en 2025, avec un score CVSS moyen de 6,2. La montée à 16 CVE en 2026 — CVSS moyen 7,3 — reflète plusieurs facteurs : un audit de sécurité plus large du code dans le cadre du cycle de version majeure PostgreSQL 18, une attention accrue des chercheurs en sécurité suite à des violations de bases de données dans l'industrie, et la découverte de problèmes de sécurité mémoire dans d'anciens chemins de code C (certains datant du début des années 2000, comme la faille pgcrypto). Résultat : deux lots majeurs de correctifs — février et mai 2026 — que chaque équipe utilisant PostgreSQL doit avoir déjà appliqués.
February 2026: CVE-2026-2005 — pgcrypto Heap Buffer Overflow (CVSS 8.8, RCE)
Février 2026 : CVE-2026-2005 — Dépassement de Tampon de Tas pgcrypto (CVSS 8,8, RCE)
On February 12, 2026, PostgreSQL released versions 18.2, 17.8, 16.12, 15.16, and 14.21 to fix CVE-2026-2005, a heap buffer overflow in the pgcrypto extension that had been present in the codebase for more than 20 years — since pgcrypto was first contributed in 2005.
Le 12 février 2026, PostgreSQL a publié les versions 18.2, 17.8, 16.12, 15.16 et 14.21 pour corriger CVE-2026-2005, un dépassement de tampon de tas dans l'extension pgcrypto présent dans le code depuis plus de 20 ans — depuis que pgcrypto a été contribué en 2005.
How it works: The vulnerability lives in pgp_parse_pubenc_sesskey() inside contrib/pgcrypto/pgp-pubdec.c. When parsing a PGP public-key encrypted session key packet, the code decrypts the RSA or ElGamal payload and derives the session key length from the decrypted message as msglen - 3. An attacker who controls the PGP message can manipulate the decrypted payload to push the session key length into hundreds of bytes, far beyond the fixed 32-byte destination buffer on the heap. The resulting overflow allows arbitrary code execution as the OS user running the database.
Comment ça fonctionne : La vulnérabilité se trouve dans pgp_parse_pubenc_sesskey() dans contrib/pgcrypto/pgp-pubdec.c. Lors de l'analyse d'un paquet de clé de session chiffré PGP à clé publique, le code déchiffre la charge utile RSA ou ElGamal et dérive la longueur de la clé de session depuis le message déchiffré comme msglen - 3. Un attaquant contrôlant le message PGP peut manipuler la charge utile pour pousser la longueur de clé de session dans des centaines d'octets, bien au-delà du tampon de destination fixe de 32 octets sur le tas. Le débordement résultant permet l'exécution de code arbitraire en tant qu'utilisateur OS exécutant la base de données.
Who is affected: Any PostgreSQL installation using the pgcrypto extension with PGP functions — pgp_pub_decrypt() in particular. Exploitation does not require superuser privileges; a regular database user who can invoke pgcrypto functions on attacker-supplied data is sufficient. This makes it especially dangerous in multi-tenant setups or SaaS applications where users interact with PGP-encrypted data.
Qui est affecté : Toute installation PostgreSQL utilisant l'extension pgcrypto avec des fonctions PGP — pgp_pub_decrypt() en particulier. L'exploitation ne nécessite pas de privilèges superutilisateur ; un utilisateur de base de données ordinaire pouvant invoquer des fonctions pgcrypto sur des données fournies par un attaquant suffit. Cela le rend particulièrement dangereux dans les configurations multi-locataires ou les applications SaaS où les utilisateurs interagissent avec des données chiffrées PGP.
Fix: Upgrade to PostgreSQL 18.2, 17.8, 16.12, 15.16, or 14.21 (released February 12, 2026). If you cannot patch immediately, consider dropping or restricting access to CREATE EXTENSION pgcrypto on affected databases.
Correctif : Mettez à niveau vers PostgreSQL 18.2, 17.8, 16.12, 15.16 ou 14.21 (publié le 12 février 2026). Si vous ne pouvez pas appliquer le correctif immédiatement, envisagez de supprimer ou de restreindre l'accès à CREATE EXTENSION pgcrypto sur les bases de données affectées.
May 2026: 11 CVEs in One Patch — The Most Significant PostgreSQL Security Release in Years
Mai 2026 : 11 CVE en Un Seul Patch — La Release de Sécurité PostgreSQL La Plus Significative en Années
On May 16, 2026, PostgreSQL released versions 18.4, 17.10, 16.14, 15.18, and 14.23, patching eleven security vulnerabilities identified as CVE-2026-6472 through CVE-2026-6479, CVE-2026-6575, CVE-2026-6637, and CVE-2026-6638. All supported major versions are affected by at least some of these CVEs. This is the largest single security patch release in PostgreSQL's recent history.
Le 16 mai 2026, PostgreSQL a publié les versions 18.4, 17.10, 16.14, 15.18 et 14.23, corrigeant onze vulnérabilités identifiées sous CVE-2026-6472 à CVE-2026-6479, CVE-2026-6575, CVE-2026-6637 et CVE-2026-6638. Toutes les versions majeures supportées sont affectées par au moins certaines de ces CVE. Il s'agit de la plus grande version de patch de sécurité unique de l'histoire récente de PostgreSQL.
| CVE | Component | Type | CVSS | Fixed in |
|---|---|---|---|---|
| CVE | Composant | Type | CVSS | Corrigé dans |
| CVE-2026-6473 | server (integer wraparound) | RCE / Memory | 8.8 | 18.4, 17.10, 16.14, 15.18, 14.23 |
| CVE-2026-6475 | pg_basebackup / pg_rewind | File Overwrite | 8.8 | 18.4, 17.10, 16.14, 15.18, 14.23 |
| CVE-2026-6637 | refint (contrib module) | RCE + SQL Injection | 8.8 | 18.4, 17.10, 16.14, 15.18, 14.23 |
| CVE-2026-6476 | pg_createsubscriber | SQL Injection | 7.2 | 18.4, 17.10, 16.14, 15.18, 14.23 |
| CVE-2026-6638 | pg_dump / client tools | MD5 Timing Attack | 6.8 | 18.4, 17.10, 16.14, 15.18, 14.23 |
| CVE-2026-6472–6479, 6575 | logical replication, server | Various | 5.4–7.8 | 18.4, 17.10, 16.14, 15.18, 14.23 |
CVE-2026-6473: Integer Wraparound Causing Out-of-Bounds Write (CVSS 8.8)
CVE-2026-6473 : Dépassement d'Entier Provoquant une Écriture Hors Limites (CVSS 8,8)
CVE-2026-6473 affects multiple server-side functions that process application-controlled input. An integer wraparound in allocation size calculations allows an attacker-controlled application input provider to cause the server to undersize a memory allocation and then write data beyond the intended buffer boundary. The result is a segmentation fault (server crash), and under favorable memory layout conditions, this out-of-bounds write can be escalated to arbitrary code execution.
CVE-2026-6473 affecte plusieurs fonctions côté serveur qui traitent des entrées contrôlées par l'application. Un dépassement d'entier dans les calculs de taille d'allocation permet à un fournisseur d'entrées applicatives contrôlé par un attaquant de faire en sorte que le serveur sous-dimensionne une allocation mémoire puis écrive des données au-delà de la frontière de tampon prévue. Le résultat est un segfault (plantage du serveur), et dans des conditions favorables de disposition mémoire, cette écriture hors limites peut être escaladée en exécution de code arbitraire.
The practical risk for developers: if your application passes user-controlled data directly into PostgreSQL text manipulation functions without proper sanitization and length checking, an attacker could trigger this overflow through a crafted payload. This makes input validation at the application layer even more critical than previously thought.
Le risque pratique pour les développeurs : si votre application transmet des données contrôlées par l'utilisateur directement dans les fonctions de manipulation de texte PostgreSQL sans sanitisation ni vérification de longueur adéquates, un attaquant pourrait déclencher ce débordement via une charge utile soigneusement construite. Cela rend la validation des entrées au niveau de la couche applicative encore plus critique qu'on ne le pensait.
CVE-2026-6475: Symlink Following in pg_basebackup and pg_rewind (CVSS 8.8)
CVE-2026-6475 : Suivi de Lien Symbolique dans pg_basebackup et pg_rewind (CVSS 8,8)
CVE-2026-6475 targets backup and failover operations. Both pg_basebackup (used to create a streaming base backup) and pg_rewind (used to resynchronize a standby after failover) follow symbolic links on the origin server without sufficient validation in plain format mode. An origin server superuser can craft symlinks in the data directory that cause the utility to overwrite arbitrary files on the machine running the backup client — including shell profile files like /var/lib/postgres/.bashrc or ~/.profile. When the PostgreSQL process subsequently starts (e.g., after a failover), the overwritten shell profile executes attacker-controlled code, achieving OS-level account hijacking.
CVE-2026-6475 cible les opérations de sauvegarde et de basculement. pg_basebackup (utilisé pour créer une sauvegarde de base en streaming) et pg_rewind (utilisé pour resynchroniser un standby après un basculement) suivent des liens symboliques sur le serveur d'origine sans validation suffisante en mode format plain. Un superutilisateur du serveur d'origine peut créer des liens symboliques dans le répertoire de données qui amenent l'utilitaire à écraser des fichiers arbitraires sur la machine exécutant le client de sauvegarde — y compris les fichiers de profil shell comme /var/lib/postgres/.bashrc. Lors du démarrage ultérieur du processus PostgreSQL (par ex. après un basculement), le profil shell écrasé exécute du code contrôlé par l'attaquant.
Who is at risk: Organizations using streaming replication with pg_basebackup or high-availability setups using pg_rewind for failover synchronization. This is particularly relevant for managed PostgreSQL deployments where superuser access may be delegated to application teams or external scripts.
Qui est exposé : Les organisations utilisant la réplication en streaming avec pg_basebackup ou des configurations haute disponibilité utilisant pg_rewind pour la synchronisation de basculement. Ceci est particulièrement pertinent pour les déploiements PostgreSQL gérés où l'accès superutilisateur peut être délégué à des équipes applicatives ou des scripts externes.
CVE-2026-6637: Stack Buffer Overflow & SQL Injection in refint (CVSS 8.8)
CVE-2026-6637 : Dépassement de Tampon de Pile & Injection SQL dans refint (CVSS 8,8)
This is the most complex vulnerability in the May 2026 batch, combining two distinct attack paths in the refint module — a contrib module that implements referential integrity triggers.
Il s'agit de la vulnérabilité la plus complexe du lot de mai 2026, combinant deux chemins d'attaque distincts dans le module refint — un module contrib implémentant des déclencheurs d'intégrité référentielle.
Attack path 1 — Stack buffer overflow: The refint trigger handler uses a fixed-size stack buffer to build the query for checking referential integrity. When a user-controlled column value is long enough to overflow this buffer, the resulting stack smash allows an unprivileged database user to execute arbitrary code as the operating system user running the PostgreSQL server process.
Chemin d'attaque 1 — Dépassement de pile : Le gestionnaire de déclencheur refint utilise un tampon de pile à taille fixe pour construire la requête de vérification de l'intégrité référentielle. Quand une valeur de colonne contrôlée par l'utilisateur est suffisamment longue pour déborder ce tampon, le débordement de pile résultant permet à un utilisateur de base de données non privilégié d'exécuter du code arbitraire en tant qu'utilisateur OS exécutant le processus serveur PostgreSQL.
Attack path 2 — SQL injection: If an application declares a user-controlled column as the primary key in a table that uses a refint cascade trigger, and then facilitates user-controlled updates to that column, the refint module constructs a SQL query by concatenating the primary key value without proper escaping. A malicious primary key update value can inject arbitrary SQL that executes with the privileges of the database user performing the update — enabling privilege escalation, data exfiltration, or lateral movement within the database.
Chemin d'attaque 2 — Injection SQL : Si une application déclare une colonne contrôlée par l'utilisateur comme clé primaire dans une table qui utilise un déclencheur de cascade refint, et facilite les mises à jour de cette colonne par l'utilisateur, le module refint construit une requête SQL en concaténant la valeur de la clé primaire sans échappement adéquat. Une valeur de mise à jour de clé primaire malveillante peut injecter du SQL arbitraire qui s'exécute avec les privilèges de l'utilisateur de base de données effectuant la mise à jour — permettant une escalade de privilèges, l'exfiltration de données ou un mouvement latéral dans la base de données.
Who is affected: Any PostgreSQL database using the refint contrib module (installed via CREATE EXTENSION refint). Check with: SELECT * FROM pg_extension WHERE extname = 'refint';
Qui est affecté : Toute base de données PostgreSQL utilisant le module contrib refint (installé via CREATE EXTENSION refint). Vérifiez avec : SELECT * FROM pg_extension WHERE extname = 'refint';
CVE-2026-6476: SQL Injection in pg_createsubscriber (CVSS 7.2)
CVE-2026-6476 : Injection SQL dans pg_createsubscriber (CVSS 7,2)
CVE-2026-6476 affects pg_createsubscriber, the utility that converts a standby server into a logical replication subscriber. A SQL injection in this tool allows execution of arbitrary SQL as a database superuser during the subscriber setup process. The risk is lower than CVE-2026-6637 because exploiting it typically requires an attacker to control the publication name or subscription parameters passed to pg_createsubscriber — but in automated infrastructure-as-code environments, these parameters may come from external configuration systems that could themselves be compromised.
CVE-2026-6476 affecte pg_createsubscriber, l'utilitaire qui convertit un serveur standby en abonné de réplication logique. Une injection SQL dans cet outil permet l'exécution de SQL arbitraire en tant que superutilisateur de base de données lors du processus de configuration de l'abonné. Le risque est moindre que pour CVE-2026-6637 car son exploitation nécessite généralement qu'un attaquant contrôle le nom de publication ou les paramètres de souscription passés à pg_createsubscriber — mais dans les environnements d'infrastructure-as-code automatisés, ces paramètres peuvent provenir de systèmes de configuration externes qui pourraient eux-mêmes être compromis.
PostgreSQL 14 End of Life: November 12, 2026 — What You Must Do Now
Fin de Vie de PostgreSQL 14 : 12 Novembre 2026 — Ce Que Vous Devez Faire Maintenant
PostgreSQL follows a five-year support cycle for each major version. PostgreSQL 14, released in September 2021, will receive its final security update on November 12, 2026. After that date, PostgreSQL 14 will no longer receive patches for any security vulnerabilities — including future CVEs that may be discovered after EOL. Organizations still running PostgreSQL 14 in production must plan their migration to a supported major version (15, 16, 17, or 18) before this date.
PostgreSQL suit un cycle de support de cinq ans pour chaque version majeure. PostgreSQL 14, sorti en septembre 2021, recevra sa dernière mise à jour de sécurité le 12 novembre 2026. Après cette date, PostgreSQL 14 ne recevra plus de correctifs pour aucune vulnérabilité de sécurité — y compris les futures CVE qui pourraient être découvertes après la fin de vie. Les organisations utilisant encore PostgreSQL 14 en production doivent planifier leur migration vers une version majeure supportée (15, 16, 17 ou 18) avant cette date.
The migration window is tighter than it looks. A PostgreSQL major version upgrade (e.g., 14 → 17) requires using pg_upgrade or logical replication for a live migration — not a simple package update. For large databases, the process needs thorough testing in a staging environment. With only five months remaining, teams that have not yet started their upgrade assessment should begin immediately.
La fenêtre de migration est plus étroite qu'il n'y paraît. Une mise à niveau de version majeure PostgreSQL (ex. 14 → 17) nécessite l'utilisation de pg_upgrade ou de la réplication logique pour une migration live — pas une simple mise à jour de package. Pour les grandes bases de données, le processus nécessite des tests approfondis dans un environnement de staging. Avec seulement cinq mois restants, les équipes qui n'ont pas encore commencé leur évaluation de mise à niveau doivent commencer immédiatement.
⚠️ PostgreSQL 14 EOL Timeline
⚠️ Calendrier de Fin de Vie PostgreSQL 14
September 2021: PostgreSQL 14 released → November 12, 2026: final security patch → No more updates. PostgreSQL 15 EOL: November 2025 (already EOL). PostgreSQL 16, 17, 18: supported through 2028–2030.
Septembre 2021 : sortie PostgreSQL 14 → 12 novembre 2026 : dernier patch de sécurité → Plus aucune mise à jour. PostgreSQL 15 EOL : novembre 2025 (déjà EOL). PostgreSQL 16, 17, 18 : supportés jusqu'en 2028–2030.
How to Check Your PostgreSQL Version and Apply Security Patches
Comment Vérifier Votre Version PostgreSQL et Appliquer les Correctifs de Sécurité
Check your current PostgreSQL version from inside the database:
Vérifiez votre version PostgreSQL actuelle depuis l'intérieur de la base de données :
-- Check server version
SELECT version();
-- Example output: PostgreSQL 17.8 on x86_64-pc-linux-gnu...
-- Quick version number check
SHOW server_version;
-- Example output: 17.8
-- Check from the OS
psql --version
# or
pg_config --version
To upgrade on Debian/Ubuntu-based systems (the most common production setup):
Pour mettre à niveau sur les systèmes basés sur Debian/Ubuntu (la configuration de production la plus courante) :
# Add the official PostgreSQL APT repository
sudo apt install -y postgresql-common
sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
# Update and upgrade
sudo apt update
sudo apt upgrade postgresql-17 # or postgresql-18, postgresql-16, etc.
# Verify the new version
psql --version
# Expected: psql (PostgreSQL) 17.10
For Red Hat / CentOS / AlmaLinux / Rocky Linux:
Pour Red Hat / CentOS / AlmaLinux / Rocky Linux :
# Install the PGDG repository
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# Update PostgreSQL
sudo dnf update postgresql17-server # adjust version as needed
# Restart the service
sudo systemctl restart postgresql-17
Check which extensions are installed (to assess exposure to CVE-2026-6637 and CVE-2026-2005):
Vérifiez les extensions installées (pour évaluer l'exposition à CVE-2026-6637 et CVE-2026-2005) :
-- List all installed extensions
SELECT extname, extversion FROM pg_extension ORDER BY extname;
-- Specifically check for risky extensions
SELECT extname FROM pg_extension
WHERE extname IN ('pgcrypto', 'refint');
PostgreSQL Security Hardening Checklist for Developers
Checklist de Durcissement Sécurité PostgreSQL pour Développeurs
Beyond patching, these practices reduce your PostgreSQL attack surface independently of CVEs:
Au-delà du patching, ces pratiques réduisent votre surface d'attaque PostgreSQL indépendamment des CVE :
✅ 1. Apply the principle of least privilege
✅ 1. Appliquer le principe du moindre privilège
Application users should never connect as postgres (superuser). Create dedicated users with only the permissions they need. Use GRANT SELECT, INSERT, UPDATE ON specific_table TO app_user; — never GRANT ALL PRIVILEGES. This limits the blast radius of CVE-2026-6637's SQL injection path.
Les utilisateurs applicatifs ne doivent jamais se connecter en tant que postgres (superutilisateur). Créez des utilisateurs dédiés avec uniquement les permissions nécessaires. Utilisez GRANT SELECT, INSERT, UPDATE ON table_spécifique TO app_user; — jamais GRANT ALL PRIVILEGES. Cela limite le rayon d'impact du chemin d'injection SQL de CVE-2026-6637.
✅ 2. Always use parameterized queries — never string concatenation
✅ 2. Toujours utiliser des requêtes paramétrées — jamais la concaténation de chaînes
Use prepared statements ($1, $2 placeholders) in all database drivers (psycopg3, node-postgres, JDBC, etc.). CVE-2026-6637's SQL injection requires that application code treats a primary key column as a user-controlled string — a pattern that parameterized queries prevent entirely.
Utilisez des instructions préparées (placeholders $1, $2) dans tous les pilotes de base de données (psycopg3, node-postgres, JDBC, etc.). L'injection SQL de CVE-2026-6637 nécessite que le code applicatif traite une colonne de clé primaire comme une chaîne contrôlée par l'utilisateur — un schéma que les requêtes paramétrées préviennent complètement.
✅ 3. Disable extensions you don't use
✅ 3. Désactiver les extensions inutilisées
If your application doesn't use PGP encryption, run DROP EXTENSION IF EXISTS pgcrypto;. If you use refint triggers, consider replacing them with declarative FOREIGN KEY constraints (which PostgreSQL natively enforces) or application-level integrity checks. Only keep extensions that serve an active purpose.
Si votre application n'utilise pas le chiffrement PGP, exécutez DROP EXTENSION IF EXISTS pgcrypto;. Si vous utilisez des déclencheurs refint, envisagez de les remplacer par des contraintes FOREIGN KEY déclaratives (que PostgreSQL applique nativement) ou des vérifications d'intégrité au niveau applicatif. Ne conservez que les extensions qui servent un objectif actif.
✅ 4. Restrict pg_basebackup and pg_rewind to trusted networks
✅ 4. Restreindre pg_basebackup et pg_rewind aux réseaux de confiance
Configure pg_hba.conf to allow replication connections only from known, trusted IP ranges. Use SSL/TLS for all replication connections. Never expose the PostgreSQL replication port (5432) directly to the public internet. The CVE-2026-6475 symlink attack requires the origin server to already be under attacker control, but defense in depth limits lateral movement opportunities.
Configurez pg_hba.conf pour n'autoriser les connexions de réplication qu'à partir de plages IP connues et de confiance. Utilisez SSL/TLS pour toutes les connexions de réplication. N'exposez jamais le port de réplication PostgreSQL (5432) directement sur Internet public. L'attaque par lien symbolique CVE-2026-6475 nécessite que le serveur d'origine soit déjà sous le contrôle d'un attaquant, mais la défense en profondeur limite les opportunités de mouvement latéral.
✅ 5. Validate input length before passing to database functions
✅ 5. Valider la longueur des entrées avant de les passer aux fonctions de base de données
CVE-2026-6473 is triggered by oversized input to text manipulation functions. Enforce maximum length constraints at the application layer (not just in the database schema) and validate that text fields don't exceed reasonable bounds. Use varchar(n) or text with CHECK constraints rather than unbounded text columns wherever possible.
CVE-2026-6473 est déclenchée par une entrée surdimensionnée dans les fonctions de manipulation de texte. Appliquez des contraintes de longueur maximale au niveau de la couche applicative (pas seulement dans le schéma de base de données) et vérifiez que les champs texte ne dépassent pas des limites raisonnables. Utilisez varchar(n) ou text avec des contraintes CHECK plutôt que des colonnes texte non bornées quand c'est possible.
✅ 6. Monitor for PostgreSQL security advisories automatically
✅ 6. Surveiller automatiquement les avis de sécurité PostgreSQL
Subscribe to the PostgreSQL security announcements mailing list and monitor your dependency lockfiles with automated CVE scanning. The time between a PostgreSQL advisory and active exploitation attempts in the wild has shrunk significantly — patching within 48 hours of a release is now the expected baseline for production systems.
Abonnez-vous à la liste de diffusion des annonces de sécurité PostgreSQL et surveillez vos lockfiles de dépendances avec un scan CVE automatisé. Le délai entre un avis PostgreSQL et les tentatives d'exploitation actives dans la nature a considérablement réduit — patcher dans les 48 heures suivant une release est maintenant la base attendue pour les systèmes de production.
Frequently Asked Questions
Questions Fréquentes
Which PostgreSQL versions are affected by the May 2026 CVEs?
Quelles versions PostgreSQL sont affectées par les CVE de mai 2026 ?
All supported major versions are affected: PostgreSQL 14, 15, 16, 17, and 18, and all minor versions before 14.23, 15.18, 16.14, 17.10, and 18.4. PostgreSQL 13 and older are no longer supported and may also be vulnerable but will not receive patches. If you run PostgreSQL 13 or older, you should upgrade immediately as you are no longer receiving any security updates.
Toutes les versions majeures supportées sont affectées : PostgreSQL 14, 15, 16, 17 et 18, et toutes les versions mineures antérieures à 14.23, 15.18, 16.14, 17.10 et 18.4. PostgreSQL 13 et les versions plus anciennes ne sont plus supportées et peuvent être vulnérables mais ne recevront pas de correctifs. Si vous exécutez PostgreSQL 13 ou une version antérieure, vous devez mettre à niveau immédiatement car vous ne recevez plus aucune mise à jour de sécurité.
Do I need to use refint or pgcrypto to be at risk?
Dois-je utiliser refint ou pgcrypto pour être exposé ?
For CVE-2026-6637 (the refint stack overflow + SQL injection), yes — you must have the refint extension installed. Most applications use native FOREIGN KEY constraints and do not use refint. Check with SELECT extname FROM pg_extension WHERE extname = 'refint';. For CVE-2026-2005 (pgcrypto), you must have pgcrypto installed and be calling pgp_pub_decrypt() or similar functions on attacker-influenced data. For CVE-2026-6473 and CVE-2026-6475, all PostgreSQL installations are affected regardless of extensions.
Pour CVE-2026-6637 (dépassement de pile refint + injection SQL), oui — l'extension refint doit être installée. La plupart des applications utilisent des contraintes FOREIGN KEY natives et n'utilisent pas refint. Vérifiez avec SELECT extname FROM pg_extension WHERE extname = 'refint';. Pour CVE-2026-2005 (pgcrypto), pgcrypto doit être installé et vous devez appeler pgp_pub_decrypt() ou des fonctions similaires sur des données influencées par un attaquant. Pour CVE-2026-6473 et CVE-2026-6475, toutes les installations PostgreSQL sont affectées indépendamment des extensions.
How do I upgrade from PostgreSQL 14 before its EOL date?
Comment mettre à niveau depuis PostgreSQL 14 avant sa date EOL ?
Major version upgrades require pg_upgrade for an offline upgrade or logical replication for a near-zero-downtime migration. The safest path: (1) Set up a new PostgreSQL 17 instance, (2) use logical replication to sync data from your PostgreSQL 14 primary, (3) after confirming data integrity, switch your application to the new instance. For small databases, pg_dump + pg_restore is also viable. Document your migration path, test thoroughly in staging, and plan the cutover during a maintenance window with at least 5 months of buffer before November 12.
Les mises à niveau de version majeure nécessitent pg_upgrade pour une mise à niveau hors ligne ou la réplication logique pour une migration quasi sans downtime. Le chemin le plus sûr : (1) Configurer une nouvelle instance PostgreSQL 17, (2) utiliser la réplication logique pour synchroniser les données depuis votre primaire PostgreSQL 14, (3) après confirmation de l'intégrité des données, basculer votre application vers la nouvelle instance. Pour les petites bases de données, pg_dump + pg_restore est également viable. Documentez votre chemin de migration, testez soigneusement en staging et planifiez le basculement pendant une fenêtre de maintenance avec au moins 5 mois de marge avant le 12 novembre.
Are managed PostgreSQL services (AWS RDS, Google Cloud SQL, Azure) automatically patched?
Les services PostgreSQL gérés (AWS RDS, Google Cloud SQL, Azure) sont-ils automatiquement patchés ?
Managed services typically apply minor version patches automatically within days to weeks of a release, but this behavior depends on your maintenance window configuration and auto minor version upgrade settings. You should verify your current version in your cloud console and confirm that auto-patching is enabled. Major version upgrades (e.g., 14 → 17) always require manual action even on managed services — the provider will not migrate you automatically at EOL.
Les services gérés appliquent généralement les correctifs de version mineure automatiquement dans les jours à semaines suivant une release, mais ce comportement dépend de votre configuration de fenêtre de maintenance et des paramètres de mise à niveau automatique de version mineure. Vous devriez vérifier votre version actuelle dans votre console cloud et confirmer que le patching automatique est activé. Les mises à niveau de version majeure (ex. 14 → 17) nécessitent toujours une action manuelle même sur les services gérés — le fournisseur ne vous migrera pas automatiquement à la fin de vie.
What is the difference between a minor version upgrade (e.g., 17.8 → 17.10) and a major upgrade (e.g., 14 → 17)?
Quelle est la différence entre une mise à niveau mineure (ex. 17.8 → 17.10) et une mise à niveau majeure (ex. 14 → 17) ?
Minor version upgrades (e.g., 17.8 → 17.10) only contain bug fixes and security patches. They are safe to apply by simply stopping PostgreSQL, upgrading the binaries, and restarting. No dump/restore or schema changes are needed. Major version upgrades change the internal data format and require pg_upgrade or a dump/restore cycle. Always test minor upgrades in staging first, but they can typically be applied to production during a brief maintenance window.
Les mises à niveau mineures (ex. 17.8 → 17.10) ne contiennent que des corrections de bugs et des patches de sécurité. Elles sont sûres à appliquer en arrêtant simplement PostgreSQL, en mettant à niveau les binaires et en redémarrant. Aucun dump/restore ni changement de schéma n'est nécessaire. Les mises à niveau de version majeure changent le format interne des données et nécessitent pg_upgrade ou un cycle dump/restore. Testez toujours les mises à niveau mineures en staging d'abord, mais elles peuvent généralement être appliquées en production pendant une courte fenêtre de maintenance.
Monitor Your PostgreSQL Dependencies Automatically
Surveillez Vos Dépendances PostgreSQL Automatiquement
CVE OptiBot scans your lockfiles daily against the OSV.dev database and alerts you the moment a new PostgreSQL CVE (or any other dependency vulnerability) is published that affects your stack. No agents, no code access — just your lockfiles.
CVE OptiBot scanne vos lockfiles chaque jour contre la base de données OSV.dev et vous alerte dès qu'une nouvelle CVE PostgreSQL (ou toute autre vulnérabilité de dépendance) est publiée et affecte votre stack. Pas d'agents, pas d'accès au code — seulement vos lockfiles.
Start free monitoring Démarrer le monitoring gratuit