Saltar al contenido
DUPIN
ALERTAS · EN VIVO
Contacto

VULNERABILIDAD

CVE-2026-111441 Desbordamiento de búfer de heap en HllObjectUnpack() de openGauss-server

La función HllObjectUnpack() en src/gausskernel/cbb/utils/hll/hll.cpp no valida que lenTotal sea mayor o igual que lenUsed y usa un tamaño de destino incorrecto en memcpy_s(), lo que permite a un usuario con conexión normal a la base de datos provocar una escritura fuera de límites en el heap del servidor mediante un packed HLL malformado. Afecta a 2.1.0, 3.0.x, 3.1.x, 5.0.x, 5.1.0, 6.0.x y 7.0.0-RC1 a RC3; se corrige en 7.0.0-LTS.

Alerta de Nureq Monitor

Detectada 19 OCT · 02:32

CVSS 3.1

8.1ALTA

PROBABILIDAD DE EXPLOTACIÓN (EPSS)

0,4 % PERCENTIL 34

EXPLOTACIÓN ACTIVA

No confirmada

EXPLOIT PÚBLICO

No conocido

Qué es CVE-2026-111441

La función HllObjectUnpack() en src/gausskernel/cbb/utils/hll/hll.cpp no valida que lenTotal sea mayor o igual que lenUsed y usa un tamaño de destino incorrecto en memcpy_s(), lo que permite a un usuario con conexión normal a la base de datos provocar una escritura fuera de límites en el heap del servidor mediante un packed HLL malformado. Afecta a 2.1.0, 3.0.x, 3.1.x, 5.0.x, 5.1.0, 6.0.x y 7.0.0-RC1 a RC3; se corrige en 7.0.0-LTS.

Productos y versiones afectadas

  • openGauss-server

    Versiones no especificadas.

  • openGauss-server

    • 7.0.0-RC1, 7.0.0-RC2 7.0.0-RC3
    • 2.1.0
    • 3.0.0-3.0.6
    • 3.1.0
    • 5.0.0-5.0.5
    • 6.0.0-6.0.6

Qué hacer

  1. Verificá si usás openGauss-server.
  2. Actualizá a la versión corregida que indique el fabricante en su aviso (ver referencias) o aplicá la mitigación que publique.
  3. Revisá registros y accesos de los sistemas expuestos para descartar que se haya aprovechado antes de corregir.

Calculadora CVSS

CVSS 3.1 · 8.1 ALTA

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H

VECTOR DE ATAQUE (AV)
Red
COMPLEJIDAD DEL ATAQUE (AC)
Baja
PRIVILEGIOS REQUERIDOS (PR)
Bajos
INTERACCIÓN DEL USUARIO (UI)
Ninguna
ALCANCE (S)
Sin cambio
CONFIDENCIALIDAD (C)
Ninguna
INTEGRIDAD (I)
Alta
DISPONIBILIDAD (A)
Alta

Abrir la calculadora completa

Descripción original

在 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 。

Referencias

Historial de la alerta

  1. VULNERABILIDAD Nueva vulnerabilidad detectada.

CÓMO SE HIZOResumen traducido automáticamente al español a partir de la descripción original. Ante dudas, la descripción original y las referencias del fabricante son la fuente de verdad. Cómo funciona.