Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with low-privilege database account
-
ExploitResolve target relation file path via pg_relation_filepath()
-
ExecutionCall pg_read_binary_file_blocks() bypassing SELECT check
-
ImpactRead protected table binary data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated attacker holding any ordinary openGauss database connection (a valid low-privilege account); it is NOT remote-unauthenticated. The attacker must be able to call the built-in functions pg_relation_filepath() to obtain the target table's underlying relation file path (including compressed _compress file paths) and pg_read_binary_file_blocks() to read the raw blocks. The decisive missing control is that ReadBinaryFileBlocksFirstCall() and is_row_data_file() perform only path normalization, '..' traversal, and data-directory boundary checks - not a caller SELECT-permission check. Limiting factors: a valid database account is required; only openGauss-server versions 3.0.0 through 6.0.0 (and their patch builds) are affected, with the flaw fixed in 7.0.0-LTS; and the returned data is raw binary blocks that an attacker must parse/reconstruct to recover meaningful rows. |
| Impact | This is a genuine but moderate-priority authorization flaw (CWE-862 Missing Authorization). The provided CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N, base 4.3) is internally consistent with the description: exploitation is over the network via a normal database session (AV:N), is low-complexity (AC:L), but requires an authenticated low-privilege account (PR:L), with confidentiality-only impact (C:L, I:N, A:N). No EPSS score was provided, so exploitation probability cannot be quantified. The vulnerability is NOT in CISA KEV, so there is no confirmed active exploitation. The only reference is the vendor fix (PR 9374), which is a patch, not weaponized exploit code - therefore no public exploit identified at time of analysis. Signals are consistent rather than conflicting: a medium CVSS, no KEV, no POC, and a confidentiality-only impact all point to a real-but-not-urgent insider/multi-tenant data-exposure risk rather than a mass-exploitation threat. One caveat worth noting: the C:L rating arguably understates impact, since the flaw lets an authenticated user read the raw binary blocks of ANY table (bypassing SELECT), which in a multi-tenant or least-privilege database could expose high-value data - defenders handling sensitive data stores should treat the confidentiality impact as potentially higher than the base score implies. |
| Exploit ScenarioDerived | A low-privileged user holding only a normal openGauss database connection - but lacking SELECT permission on a sensitive table - calls pg_relation_filepath() to resolve that table's underlying relation file path (including _compress files for compressed data), then invokes pg_read_binary_file_blocks() to read its raw binary blocks directly, bypassing the missing SELECT authorization check and exfiltrating data they are not entitled to see. Because AV:N/AC:L applies, this requires only an authenticated session and simple SQL calls. No public exploit is identified; the vendor patch is available in PR 9374. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 19, 2026
Missing authorization in openGauss Server 3.0.0 through 6.0.0 lets any authenticated low-privilege database user read raw table-data blocks without holding SELECT on the target table. The user can call pg_relation_filepath() to obtain the relation file path, including compressed _compress paths, then call pg_read_binary_file_blocks() to read blocks because the underlying ReadBinaryFileBlocksFirstCall() and is_row_data_file() checks cover path normalization and data-directory boundaries but not caller privileges. The issue is fixed in 7.0.0-LTS, has a CVSS score of 4.3 (PR:L, C:L), and no public exploit was identified at time of analysis.
RemediationAI
Vendor-released patch: openGauss 7.0.0-LTS, with the fix referenced at https://gitcode.com/opengauss/openGauss-server/pull/9374; older 3.0.0-through-6.0.0 builds, including patch builds, remain affected. If immediate upgrade is not possible, revoke EXECUTE on pg_read_binary_file_blocks() from PUBLIC and grant it only to trusted administrative roles, and restrict access to pg_relation_filepath() where practical; side effects are that monitoring, backup, maintenance, or application queries relying on those built-ins may fail until privileges are restored. Additionally audit for non-privileged accounts calling pg_read_binary_file_blocks() or pg_relation_filepath() against unexpected relation paths and enforce least-privilege database accounts, recognizing that these are compensating controls rather than a substitute for the 7.0.0-LTS patch.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
openGauss Server is a PostgreSQL-family relational database; the flaw is in src/common/backend/utils/adt/genfile.cpp, where the built-in pg_read_binary_file_blocks() validates only startBlockNum and blockCount ranges before invoking ReadBinaryFileBlocksFirstCall(). That routine performs path normalization, '..' traversal checks, and data-directory boundary checks, but does not verify the caller's database privileges such as SELECT on the target relation; the helper is_row_data_file() also only identifies file shape. CWE-862 (Missing Authorization) is therefore the correct root-cause class: the security decision is absent rather than incorrectly implemented. The CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N vector and the independent assessment agree that a valid low-privilege database account is required, so this is not remote-unauthenticated exploitation; the supplied 'Authentication Bypass' tag is best interpreted as an authorization bypass. The data exposed is raw binary blocks, which the attacker must parse or reconstruct to recover meaningful rows, and no CPE, EPSS, KEV, or POC data was supplied.
Know when Opengauss gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
Exploited over a normal DB session so AV:N/AC:L; a valid low-privilege account is required so PR:L; impact is unauthorized read of raw binary blocks only, so C:L, I:N, A:N.
Primary rating from Vendor (a1a479f7-907b-4ae8-a999-9148cadc9224).
CVSS VectorVendor: a1a479f7-907b-4ae8-a999-9148cadc9224
DescriptionCVE.org
在 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。
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Unsafe reflective class loading in openGauss-connector-jdbc's LogFactory lets an attacker who controls the JDBC 'logger'
An issue in Huawei Technologies opengauss (openGauss 5.0.0 build) v.7.3.0 allows a local attacker to cause a denial of s
EUVD-2026-104112
GHSA-cr5j-x763-5676
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB