Een kritieke kwetsbaarheid in PostgreSQL, die meer dan tien jaar onopgemerkt bleef, kan een routineus back-upaccount omzetten in een achterdeur voor volledige overname van de database en server. De kwetsbaarheid, door Cyera Research aangeduid als PostGREShell, zit in de replicatiefunctie van de database en stelt een aanvaller met een laaggeprivilegieerd account met de REPLICATION-kenmerk in staat om willekeurige code te laden en uit te voeren.
Volgens Cyera-onderzoeker Vladimir Tokarev kan deze fout een back-upaccount met beperkte rechten code laten uitvoeren op de database-server, wat leidt tot remote code execution op Windows, Linux en macOS. Dit geeft de aanvaller een voet tussen de deur die kan escaleren naar volledige superuserrechten met blijvende toegang, waardoor een standaard replicatieaccount verandert in een totale compromittering van database en server.
De kwetsbaarheid, geregistreerd als CVE-2026-6471, treft PostgreSQL-versies vanaf 9.4 uit 2014 en is inmiddels gepatcht in alle ondersteunde versies, waaronder 18.6, 17.11, 16.15, 15.19 en 14.24, die op 13 augustus zijn uitgebracht. Hoewel PostgreSQL-installaties op Windows, Linux en macOS kwetsbaar waren, verschillen de voorwaarden voor code-uitvoering per platform.
De oorzaak ligt in de manier waarop PostgreSQL output-plugins voor logische replicatie verwerkt. Deze plugins zijn gecompileerde code die PostgreSQL laadt om databasewijzigingen te formatteren voor externe systemen. Hoewel PostgreSQL beveiligingen heeft om te voorkomen dat niet-superusers willekeurige bibliotheken laden vanaf onveilige locaties, wordt deze controle niet toegepast in het replicatiepad. Hierdoor kan een aanvaller met een replicatieaccount een speciaal geconstrueerde pluginnaam met padtraversals of UNC-paden (op Windows) aanleveren, waarna PostgreSQL deze direct doorgeeft aan het besturingssysteem om te laden. Het laden van een kwaadaardige bibliotheek leidt tot uitvoering van code binnen het PostgreSQL-serverproces.
Deze kwetsbaarheid is ernstig omdat replicatieaccounts vaak worden gebruikt voor back-ups, replicatie, data capture, migraties en monitoring. Vooral Windows-systemen zijn extra kwetsbaar omdat een aanvaller een kwaadaardige DLL op een externe SMB-server kan hosten en PostgreSQL kan laten verwijzen naar deze DLL, zonder dat de kwaadaardige code vooraf op het doelwit hoeft te staan.
De impact gaat verder dan alleen code-uitvoering. Omdat de output-plugin binnen het PostgreSQL-proces draait, kan kwaadaardige code buiten het normale SQL-permissiemodel opereren. Zo kan een plugin interne PostgreSQL-structuren manipuleren om de privileges van de aanvaller te verhogen naar superuser en interne authenticatiegegevens aanpassen. Met superuserrechten kan een aanvaller alle databases en hun inhoud benaderen, inclusief klantgegevens, applicatiesleutels en opgeslagen credentials. Daarnaast kan een PostgreSQL-superuser ook commando’s op het onderliggende besturingssysteem uitvoeren, gevoelige bestanden lezen en data schrijven. Cyera toonde aan dat er meerdere manieren zijn om toegang persistent te maken, bijvoorbeeld via aanpassingen in authenticatieconfiguraties en preloaded libraries die database-herstarts overleven.
De kwetsbaarheid werd in februari gemeld bij het PostgreSQL Security Team, dat de bevindingen onderzocht, een CVE-nummer toekende en in augustus patches uitbracht. Hoewel de CVSS-score van 7.2 net onder de kritieke drempel ligt, benadrukt Cyera het belang van snelle patching om misbruik te voorkomen. Meer details over de kwetsbaarheid en de technische analyse zijn te vinden in het onderzoek van Cyera.
Reacties
Geef een reactie
Vereiste velden zijn gemarkeerd met *