Oprava vydána CVSS 8,8 Aktuálně
PostgreSQL opravil 52 bezpečnostních chyb, nejzávažnější CVE-2026-6460 dovolí spustit kód na databázovém serveru
Projekt PostgreSQL ve čtvrtek 12. listopadu 2026 vydal verze 18.7, 17.12, 16.16, 15.20 a 14.25 s opravou 52 bezpečnostních chyb a více než 140 dalších. Nejvíc pozornosti si zaslouží CVE-2026-6460 (CVSS 8,8): uživatel, který smí v databázi vytvářet objekty, může přes záměnu typů po ALTER … SET DATA TYPE spustit libovolný kód pod účtem, pod kterým běží databáze. Úplná ochrana navíc vyžaduje přestavět rozšíření psaná v C. Zneužití se nehlásí. PostgreSQL 14.25 je poslední verze řady 14.
Ve zkratce
- Týká se: správců vlastních serverů PostgreSQL řad 14 až 18 a vývojářů a dodavatelů rozšíření psaných v C. Spravované databáze v cloudu aktualizuje poskytovatel – ověřte u něj, kdy nasadí nové verze.
- Nejdůležitější: CVE-2026-6460 (CVSS 8,8) – kdo smí vytvářet objekty (tabulky, typy), může přes záměnu typů po změně datového typu sloupce spustit kód na serveru jako systémový uživatel databáze. Dalších 31 chyb má rovněž skóre 8,8 a většina z nich podle popisu projektu umožňuje spustit kód.
- Většina chyb vyžaduje přihlášeného uživatele databáze. Riziko je proto největší tam, kde k databázi přistupuje víc lidí nebo aplikací s právem vytvářet objekty: sdílené a vícenájemní instalace, analytické platformy, vývojová prostředí, napadená webová aplikace.
- Pozor i na nástroje: pg_dump, pg_restore, reindexdb a vacuumdb mají vlastní chyby (SQL injection, spuštění kódu při obnově nedůvěryhodné zálohy). Aktualizujte i klientské balíčky na stanicích a v CI.
Zranitelnosti: CVE-2026-6460, CVE-2026-18447, CVE-2026-14661, CVE-2026-116314, CVE-2026-116330
Co se stalo
PostgreSQL Global Development Group ve čtvrtek 12. listopadu 2026 vydal opravné verze všech podporovaných řad: 18.7, 17.12, 16.16, 15.20 a 14.25 (a k tomu druhého kandidáta na vydání PostgreSQL 19). Opravují 52 bezpečnostních chyb (CVE) a podle oznámení přes 140 dalších chyb.
Jde o vedlejší verze: stačí zastavit server a vyměnit binární soubory, dump a obnova ani pg_upgrade nejsou potřeba. Kvůli opravě CVE-2026-6460 je ale potřeba přestavět rozšíření psaná v C a po aktualizaci podle situace i přeindexovat některé indexy.
Oznámení zneužití neuvádí. PostgreSQL 14.25 je poslední verzí řady 14 – řada 14 už další opravy nedostane.
Technické podrobnosti
Údaje jsou z bezpečnostního oznámení PostgreSQL, poznámek k vydání 18.7 a záznamu NVD. Návod ke zneužití nezveřejňujeme.
CVE-2026-6460 (CVSS 3.1 8,8, CWE-843 – záměna typů): uživatel, který smí vytvářet objekty, může spustit libovolný kód pod účtem operačního systému, pod kterým běží databáze. Hlavní cestou je ALTER … SET DATA TYPE (změna datového typu sloupce nebo složeného typu), projekt uvádí i další sekvence příkazů DDL, například přidání sloupce, ROLLBACK a nové přidání sloupce.
Příčina: PostgreSQL nedostatečně sledoval, jakého typu jsou uložené hodnoty, a hodnoty samy svůj typ nenesly. Po změně struktury typu tak v systému mohly zůstat „zastaralé“ hodnoty se starým rozložením – v katalogu, v proměnných PL/pgSQL a jinde. Když je server přečetl podle nové struktury, četl paměť špatně. Nebezpečné byly hlavně změny složených typů souběžně s dotazy, které je používají.
Oprava podle poznámek k vydání:
- zavádí verzování složených hodnot, aby server poznal hodnotu, která neodpovídá aktuálnímu popisu typu,
- přidává zámky (např. proti
ALTER TYPEna typu použitém v ještě nepotvrzenémCREATE TABLE), - zpřísňuje, kdy je
ALTER COLUMN TYPEpovolené, pokud na typu něco závisí (např. výchozí výraz funkce), - přidává parametr serveru
composite_type_mismatch, kterým jde kontroly vypnout – s bezpečnostním rizikem.
Chybu nahlásila řada výzkumníků a týmů, mezi nimi OpenAI Security Research, program Anthropic OSS a Ada Logics.
Další chyby ze stejného vydání (výběr):
| CVE | Co dělá | CVSS |
|---|---|---|
| CVE-2026-18447 | záměna typů u výstupních parametrů → spuštění kódu | 8,8 |
| CVE-2026-14661 | dblink a předplatné logické replikace mohou připisovat do libovolných souborů |
8,1 |
| CVE-2026-120145 | logická replikace může zapisovat do systémového katalogu odběratele → spuštění kódu | 8,8 |
| CVE-2026-116314 | pg_restore nekontroluje archivy jiného než textového formátu → spuštění kódu |
8,8 |
| CVE-2026-116330 | restore.sql v tar záloze z pg_dump neblokuje příkazy psql |
8,8 |
| CVE-2026-116318, CVE-2026-116325 | SQL injection v pg_dump (název omezení) a reindexdb (název indexu) |
8,8 / 8,0 |
| CVE-2026-116313 | vacuumdb --missing-stats-only: vlastník databáze spustí kód jako uživatel vacuumdb |
7,2 |
| CVE-2026-6467, CVE-2026-120153 | skripty rozšíření: podvržení objektů a SQL injection přes názvy | 7,2 |
| několik CVE | use-after-free v PL/Perl a PL/Tcl → spuštění kódu | 8,8 |
| CVE-2026-116311, CVE-2026-120154 | obejití politik zabezpečení na úrovni řádků (RLS) | 5,4 / 4,3 |
Celkem 32 chyb má skóre 8,8 a většina z nich podle popisu vede ke spuštění kódu; většina chyb vyžaduje přihlášeného uživatele databáze, typicky s právem vytvářet objekty.
Koho se to týká
| Řada | Zranitelné | Opravené |
|---|---|---|
| PostgreSQL 18 | před 18.7 | 18.7 |
| PostgreSQL 17 | před 17.12 | 17.12 |
| PostgreSQL 16 | před 16.16 | 16.16 |
| PostgreSQL 15 | před 15.20 | 15.20 |
| PostgreSQL 14 | před 14.25 | 14.25 (poslední verze řady) |
- Nejvíc ohrožené jsou servery, kde mají právo vytvářet objekty nedůvěryhodní nebo méně důvěryhodní uživatelé: sdílený hosting databází, vícenájemní aplikace, analytická prostředí, kde si analytici vytvářejí vlastní tabulky, a aplikace s jedním všemocným účtem.
- Rozšíření psaná v C (vlastní i od třetích stran) je potřeba přestavět proti nové verzi; některá podle projektu vyžadují úpravu kódu.
- Chyby v
pg_dump,pg_restore,reindexdbavacuumdbse týkají i klientských balíčků – stanic správců, zálohovacích serverů a CI, které obnovují zálohy. - Starší řady (13 a dřív) projekt už nepodporuje a opravy pro ně nevydává.
Jak poznat napadení
Projekt indikátory napadení nezveřejnil a zneužití neuvádí. Co doporučujeme zkontrolovat (vlastní doporučení, ne pokyn projektu):
- Kdo smí vytvářet objekty: projděte práva
CREATEna schématech (\dn+v psql), vlastníky schémat a role sCREATEDBneboCREATEROLE(\du). - Neobvyklé příkazy DDL v logu: zapněte dočasně
log_statement = 'ddl'a hledejte opakovanéALTER … TYPEaALTER TABLE … ADD COLUMNsROLLBACKod aplikačních účtů, které za běžného provozu strukturu nemění. - Pády backendů v logu serveru (
server process … was terminated by signal 11) – záměna typů a use-after-free se často projeví pádem procesu. - Podřízené procesy a soubory účtu postgres v systému: neznámé procesy spuštěné pod uživatelem databáze, nové soubory mimo datový adresář, nové úlohy cron.
Vektor CVSS si rozeberete v CVSS kalkulačce.
Co udělat
- Aktualizujte server na 18.7, 17.12, 16.16, 15.20 nebo 14.25 (balíčky distribuce nebo PGDG). Ověřte verzi
SELECT version();. - Přestavte rozšíření v C – balíčky rozšíření aktualizujte spolu se serverem, vlastní rozšíření přeložte znovu. Parametr
composite_type_mismatchvypínejte jen dočasně a s vědomím rizika. - Aktualizujte klientské nástroje (
pg_dump,pg_restore,reindexdb,vacuumdb) na stanicích, zálohovacích serverech a v CI. Neobnovujte zálohy z nedůvěryhodných zdrojů. - Omezte právo vytvářet objekty: aplikační účty by neměly vlastnit schéma ani mít
CREATE, pokud ho nepotřebují; migrace struktury pouštějte samostatným účtem. - Po aktualizaci projděte doporučení z oznámení: přeindexujte indexy GIN při podezření na poškození, GiST indexy
pg_trgmsgist_trgm_ops, tabulky s chyboumissing chunk numbera B-tree indexy na sloupcíchbpcharbez délky; při přírůstkových zálohách udělejte novou plnou zálohu a zkontrolujte omezeníNOT NULL NO INHERITna partitionovaných tabulkách. - PostgreSQL 14: naplánujte přechod na novější hlavní verzi, oprav už nebude.
Časová osa
Aktualizace
- 13. 11. 2026 – první verze článku.
Časté otázky
Zneužívá se CVE-2026-6460?
Projekt PostgreSQL zneužití neuvádí a CISA v záznamu NVD z 13. 11. 2026 hodnotí stav zneužití jako žádný. Technický rozbor ani veřejný exploit jsme k 13. 11. nenašli. Opravy ale ukazují, kde chyba je, a databázové servery bývají cílem, proto aktualizujte v nejbližším údržbovém okně.
Útočník potřebuje účet v databázi. Proč je to tak vážné?
Protože z uživatele databáze se stane uživatel operačního systému. Kdo spustí kód jako účet postgres, přečte všechna data ve všech databázích na serveru (bez ohledu na práva v PostgreSQL), může měnit konfiguraci a odtud pokračovat dál do sítě. Účet s právem vytvářet tabulky mívají běžně aplikace – a útočník ho získá třeba přes SQL injection ve webové aplikaci.
Proč musím přestavět rozšíření?
Oprava CVE-2026-6460 přidává do PostgreSQL verzování složených hodnot, aby server poznal, že hodnota neodpovídá aktuální struktuře typu. Poznámky k vydání výslovně píší, že plná ochrana vyžaduje přestavět rozšíření v jazyce C a některá budou potřebovat i úpravu zdrojového kódu. Balíčky z distribuce nebo z repozitáře PGDG přestavují jejich správci – aktualizujte je spolu se serverem. Vlastní rozšíření přeložte znovu proti nové verzi.
Můžu kontrolu vypnout, když mi rozšíření po aktualizaci nefunguje?
Nový parametr serveru composite_type_mismatch kontroly vypíná, ale projekt výslovně upozorňuje na bezpečnostní riziko. Použijte ho jen dočasně, než dodavatel rozšíření vydá opravenou verzi, a jen na serveru, kde nemají práva k vytváření objektů nedůvěryhodní uživatelé.
Používáme PostgreSQL 14. Co teď?
Verze 14.25 je podle oznámení poslední verzí řady 14 – další opravy chyb ani bezpečnostní opravy už nevyjdou. Nainstalujte 14.25 hned a naplánujte přechod na novější hlavní verzi (pg_upgrade nebo dump a obnova). PostgreSQL 19 má podle projektu vyjít 19. 11. 2026.
Zdroje
Našli jste v článku chybu? Dejte nám vědět, opravu vyznačíme.