CVE-2026-111438
ŚrednieCVSS 6.5Streszczenie
W openGauss-server w pliku src/common/backend/libpq/hba.cpp występuje obejście kontroli dostępu przy uwierzytelnianiu połączeń replikacyjnych. Funkcja hba_getauthmethod() dla nadawcy replikacji HADR/SW nie wymaga is_node_internal_connection() i wywołuje check_hba_replication(), która wykonuje tylko słabe dopasowanie po znaczniku replication, pomijając pełne reguły pg_hba (w tym zakaz zaufania zdalnego). Umożliwia to zewnętrznym połączeniom replikacyjnym obejście ograniczeń i odczyt danych backupu oraz logów przez protokół replikacji.
Ocena ryzyka
Atakujący z sieci zewnętrznej może obejść politykę pg_hba i uzyskać dostęp do danych replikacji, w tym kopii zapasowych i logów. Narusza to poufność i integralność danych w klastrze openGauss.
Rekomendacja
Zaktualizuj openGauss-server do wersji 7.0.0-LTS lub nowszej, która wymusza is_node_internal_connection dla nadawców replikacji HADR/SW. Do czasu aktualizacji ogranicz dostęp sieciowy do portów replikacji.
Inne podatności w openGauss-server
Zobacz wszystkie- CVE-2026-111439Średnie
W openGauss-server w module src/common/backend/utils/adt/genfile.cpp wbudowana funkcja pg_read_binary_file_blocks() ma wadę weryfikacji uprawnień. Funkcja sprawdza jedynie zakres parametrów startBlockNum i blockCount, a następnie wywołuje ReadBinaryFileBlocksFirstCall(), która nie weryfikuje uprawnień SELECT użytkownika. Każdy użytkownik z zwykłym dostępem do bazy może odczytać bloki binarne danych tabeli bez uprawnień SELECT, jeśli zna ścieżkę pliku relacji.
- CVE-2026-111441Wysokie
W openGauss-server w pliku hll.cpp funkcja HllObjectUnpack() ma wadę walidacji długości. Po sparsowaniu lenUsed i lenTotal z dostarczonego przez użytkownika packed HLL sprawdza jedynie, czy długość wejścia pokrywa HLL_HEAD_SIZE + lenUsed, następnie alokuje bufor według lenTotal i kopiuje dane przez memcpy_s() według lenUsed, nie sprawdzając lenTotal >= lenUsed i podając jako rozmiar docelowy lenUsed zamiast lenTotal. Zwykły użytkownik bazy może skonstruować zniekształcony packed HLL (np. przez ::hll do hll_in()) i wywołać przepełnienie sterty po stronie serwera.
Oryginalny opis (angielski, źródło NVD)
在 openGauss-server 的 src/common/backend/libpq/hba.cpp 中,复制连接认证存在访问控制绕过。hba_getauthmethod() 在处理 HADR/SW 复制发送方时,不要求 is_node_internal_connection(),直接调用 check_hba_replication()。check_hba_replication() 仅按 replication 标记做弱匹配,缺少普通 check_hba() 中的远程 trust 禁止等完整校验。因此,非内部网络的 HADR/SW 复制连接可绕过内部连接限制和完整 pg_hba 策略完成认证,进而通过复制协议读取备份与日志数据。 此问题随 HADR 复制发送方绕过内部连接校验进入代码,自 3.0.0 起即存在。受影响版本包括 3.0.x、3.1.x、5.0.x、5.1.0、6.0.x,以及 7.0.0-RC1、7.0.0-RC2、7.0.0-RC3。该问题已在 7.0.0-LTS版本修复,通过要求 HADR/SW 复制发送方必须经过 is_node_internal_connection 校验,使外部复制连接改走普通 check_hba() 并触发禁止远程 trust 策略。修复pr见https://gitcode.com/opengauss/openGauss-server/pull/9757。
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

