جزئیات آسیب‌پذیری

CVE-2026-111441

openGauss-server openGauss-server

HLL 反序列化 lenTotal/lenUsed 校验缺失导致堆越界写

CVSS 3.1
8.1بالا

شرح رسمی (انگلیسی)

在 openGauss-server 的 src/gausskernel/cbb/utils/hll/hll.cpp 中,内置函数 HllObjectUnpack() 存在长度校验缺陷。该函数从用户提供的 packed HLL 解析 lenUsed 与 lenTotal 后,仅检查输入长度足以覆盖 HLL_HEAD_SIZE + lenUsed,随后按 lenTotal 分配缓冲区、按 lenUsed 调用 memcpy_s() 拷贝输入,既未校验 lenTotal >= lenUsed,也将 memcpy_s() 目标大小写成 lenUsed 而非实际分配的 lenTotal,导致安全拷贝无法拦截越界写。hll_in()、hll_print()、hll_cardinality() 等 SQL 入口会走同一解包路径。因此,普通数据库连接用户只需构造 lenTotal 小于 lenUsed 的畸形 packed HLL(例如经 ::hll 进入 hll_in()),即可触发服务端堆越界写,存在内存破坏风险。此问题随 packed HLL 解包函数 HllObjectUnpack() 进入代码,v2.1.0 起即存在。受影响版本包括 2.1.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 版本修复,通过在 HllObjectUnpack() 中补齐 lenUsed <= lenTotal 校验,并将 memcpy_s() 的目标大小改为实际分配的 lenTotal。修复 PR 见 https://gitcode.com/opengauss/openGauss-server/pull/9380 。

امتیازهای CVSS

امتیازنسخهمنبعبردار
8.1بالا 3.1 CVEProject cvelistV5 (CNA) (openGauss) CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H

محصولات آسیب‌پذیر

فروشندهمحصولنسخه‌هامنبع
openGauss-server openGauss-server 2.1.0 CVEProject cvelistV5 (CNA)
openGauss-server openGauss-server 3.0.0-3.0.6 CVEProject cvelistV5 (CNA)
openGauss-server openGauss-server 3.1.0 CVEProject cvelistV5 (CNA)
openGauss-server openGauss-server 5.0.0-5.0.5 CVEProject cvelistV5 (CNA)
openGauss-server openGauss-server 6.0.0-6.0.6 CVEProject cvelistV5 (CNA)
openGauss-server openGauss-server 7.0.0-RC1, 7.0.0-RC2 7.0.0-RC3 CVEProject cvelistV5 (CNA)

منابع و راهنماها

۱
هشدار CVEهای بعدی این محصولمحصول را دنبال کنید تا آسیب‌پذیری‌های تازه را در تلگرام بگیرید.

اطلاعات

تاریخ انتشار
۱۴۰۵/۰۷/۲۷
آخرین به‌روزرسانی
۱۴۰۵/۰۷/۲۷
وضعیت
منتشرشده
صادرکننده (CNA)
openGauss

پیش‌بینی بهره‌برداری (EPSS)

۰٫۴٪
احتمال بهره‌برداری در ۳۰ روز
۳۴٫۹٪
صدک (نسبت به همه‌ی CVEها)

ارزیابی SSVC (CISA)

قابل خودکارسازی
خیر
وضعیت بهره‌برداری
ندارد
اثر فنی
جزئی

ضعف‌ها (CWE)

  • CWE-122
    Heap-based buffer overflow