CVE-2026-111439: pg_read_binary_file_blocks 缺少初始用户权限校验,普通用户可读取 relation 文件块

Published Oct 19, 2026
·
Updated

在 openGauss-server的 src/common/backend/utils/adt/genfile.cpp 模块中,内置函数 pgreadbinaryfileblocks() 存在权限校验逻辑缺陷。该函数在入口处仅校验了起始块号(startBlockNum)和块数量(blockCount)的范围,随后直接调用底层文件读取例程 ReadBinaryFileBlocksFirstCall()。该底层例程仅执行了路径规范化检查以及针对 .. 路径遍历和数据目录边界的基本检查,缺失了对调用者数据库权限(如 SELECT 权限)的校验。此外,辅助函数 isrowdatafile() 也仅用于识别文件形态,未包含权限检查。因此,任何拥有普通数据库连接权限的用户,只要能够通过 pgrelationfilepath() 等函数获取到目标表的底层关系文件路径(例如压缩数据的 compress 文件路径),即可无需具备该表的 SELECT 权限,直接读取表数据的二进制块。 此漏洞影响此前3.0.0到6.0.0间的所有版本及补丁版,并在7.0.0-LTS版本修复。修复patch详见:https://gitcode.com/opengauss/openGauss-server/pull/9374。

Affected Software

1 affected component
openGauss openGauss-server>=3.0.0<=6.0.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade openGauss-server to a version that resolves this vulnerability.

    Fixed in 7.0.0-LTSPatch 9374

Event History

Oct 19, 2026
CVE Published
via MITRE·07:59 AM
Data Sourced
via MITRE·07:59 AM
DescriptionSeverityWeakness
Data Sourced
via NVD·08:17 AM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Who can exploit this issue?

A user with ordinary database connection access can exploit it if they can obtain the underlying relation-file path for a target table, such as via pg_relation_filepath(). The user does not need SELECT permission on that table.

2

What data can an attacker access?

The attacker can read binary blocks from relation files, including files associated with compressed data such as paths ending in _compress. The issue exposes table data through file-block reads rather than normal SQL permission checks.

3

Which versions are affected and which version contains the fix?

All releases and patch releases from 3.0.0 through 6.0.0 are affected. The issue is fixed in 7.0.0-LTS.

4

How can I determine whether a user may have exploited the issue?

Review use of pg_read_binary_file_blocks() by non-privileged users, especially calls targeting relation-file paths obtained through pg_relation_filepath() or compressed-table _compress paths. The provided information does not identify a specific audit-log event or indicator of compromise.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203