CVE-2026-111439
ŚrednieCVSS 4.3Streszczenie
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.
Ocena ryzyka
Użytkownik bez uprawnień SELECT może odczytać dane tabeli, co stanowi naruszenie poufności i kontroli dostępu. Podatność dotyczy wersji od 3.0.0 do 6.0.0 i została naprawiona w 7.0.0-LTS.
Rekomendacja
Zaktualizuj openGauss-server do wersji 7.0.0-LTS lub nowszej, która zawiera poprawkę. Jeśli aktualizacja nie jest możliwa, ogranicz dostęp do funkcji pg_read_binary_file_blocks() i monitoruj nietypowe odczyty plików.
Inne podatności w openGauss-server
Zobacz wszystkie- CVE-2026-111438Średnie
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.
- 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/utils/adt/genfile.cpp 模块中,内置函数 pg_read_binary_file_blocks() 存在权限校验逻辑缺陷。该函数在入口处仅校验了起始块号(startBlockNum)和块数量(blockCount)的范围,随后直接调用底层文件读取例程 ReadBinaryFileBlocksFirstCall()。该底层例程仅执行了路径规范化检查以及针对 .. 路径遍历和数据目录边界的基本检查,缺失了对调用者数据库权限(如 SELECT 权限)的校验。此外,辅助函数 is_row_data_file() 也仅用于识别文件形态,未包含权限检查。因此,任何拥有普通数据库连接权限的用户,只要能够通过 pg_relation_filepath() 等函数获取到目标表的底层关系文件路径(例如压缩数据的 _compress 文件路径),即可无需具备该表的 SELECT 权限,直接读取表数据的二进制块。 此漏洞影响此前3.0.0到6.0.0间的所有版本及补丁版,并在7.0.0-LTS版本修复。修复patch详见:https://gitcode.com/opengauss/openGauss-server/pull/9374。
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

