[CNNVD-2026-01846356] fulltext_mark函数栈溢出漏洞--漏洞处理
一、概述
根据2026 年 4 月漏洞公告(https://www.gbase.cn/loophole/158) 数据库存在 fulltext_mark 函数栈溢出漏洞,漏斗影响范围:v9.5.2.45.7_patch.40 及之前版本、v9.5.3.27.21_patch.39 及之前版本、v9.5.3.28.39 及之前版本、v9.5.3.30.10 及之前版本。为解决漏洞问题,已给出修订版本: v9.5.2.45.7_patch.41、v9.5.3.27.21_patch.40、v9.5.3.28.40、v9.5.3.30.11。
二、问题复现
1、集群版本,以 v9.5.3.28.35 版本为例
2、集群信息

3、根据公告内容,使用示例语句进行复现:
示例语句:
select fulltext_mark('content','keyword','','',1,100,repeat('A',600));

从执行结果、集群状态和system.log日志返回的信息,数据库确实发生宕机的问题,因为集群有启动保护机制,故会自动拉起宕机的集群。
三、解决办法
1、根据公告指示,临时绕行方案:当满足触发场景时,尽可能减少第七个参数的字节数,少于498 个字节。

2、若项目未使用该函数,可选择删除函数规避该漏洞扫描
删除命令:DROP FUNCTION fulltext_mark;
3、若项目有使用到该函数,可跟gbase官方运维同事申请新版本依赖包,再create 建上,删除命令如上,创建如下:
将对应函数拷贝至gcluster($GCLUSTER_BASE/gcluster/server/lib/gbase/plugin/)和gnode($GNODE_BASE/gnode/server/lib/gbase/plugin/)对应目录下,然后创建软链接
ln -s libfulltext_udf.so.0.0.0 libfulltext_udf.so.0
ln -s libfulltext_udf.so.0.0.0 libfulltext_udf.so

进入数据库,创建函数:

验证结果:
4、最终解决方案:联系GBase 售后人员获取解决漏洞的集群版本并升级 ,上面复现的版本的是9.5.3.28.35_patch.2.336fb4d,对应的,需要升级版本至 v953.28.40 以上版本方可解决问题:

验证fulltext_mark 函数栈溢出漏洞已解决。
评论
热门帖子
- 12025-12-01浏览数:183726
- 22023-05-09浏览数:26431
- 42023-09-25浏览数:20095
- 52020-05-11浏览数:18821