Katalog CVE

CVE-2026-61781

KrytyczneCVSS 9.9
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Streszczenie

pg_partman to rozszerzenie PostgreSQL zarządzające tabelami partycjonowanymi według czasu lub identyfikatora. W wersjach przed 5.5.0 funkcja create_partition_time() odczytuje zapisywalną wartość tekstową part_config.time_encoder i interpoluje ją bez cytowania identyfikatora do dynamicznie wykonywanego zapytania SELECT. Rola z udokumentowanymi uprawnieniami INSERT i UPDATE partman_user może zapisać kod SQL zamiast nazwy funkcji. Gdy pg_partman_bgw później tworzy partycję podrzędną dla zestawu z kluczem tekstowym lub UUID, worker wykonuje zapisany kod SQL z uprawnieniami pg_partman_bgw.role, które domyślnie odpowiadają superużytkownikowi PostgreSQL. Trwały wiersz konfiguracji może wielokrotnie przywracać podwyższony dostęp przy kolejnych cyklach konserwacji, a skuteczne wykorzystanie może pozwolić na kompromitację całej bazy danych i wykonanie poleceń systemu operacyjnego jako konto usługi PostgreSQL. Problem został naprawiony w wersji 5.5.0.

Ocena ryzyka

Atakujący z uprawnieniami partman_user może uzyskać uprawnienia superużytkownika PostgreSQL, co może prowadzić do pełnej kompromitacji bazy danych i wykonania poleceń systemu operacyjnego.

Rekomendacja

Należy zaktualizować pg_partman do wersji 5.5.0 lub nowszej, która naprawia tę podatność.

Inne podatności w pg_partman

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

pg_partman is a PostgreSQL extension that manages partitioned tables by time or ID. Prior to 5.5.0, create_partition_time() reads the writable part_config.time_encoder text value and interpolates it without identifier quoting into a dynamically executed SELECT statement. A role with the documented partman_user INSERT and UPDATE privileges can store SQL rather than a function name. When pg_partman_bgw later creates a child partition for a text- or UUID-keyed set, the worker executes the stored SQL with pg_partman_bgw.role privileges, which default to PostgreSQL superuser. The persistent configuration row can repeatedly restore elevated access on later maintenance ticks, and successful exploitation can permit database-wide compromise and operating-system command execution as the PostgreSQL service account. This issue is fixed in version 5.5.0.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS