IPBUF安全漏洞报告
English
CVE-2025-68156 CVSS 7.5 高危

CVE-2025-68156: Expr库递归栈溢出漏洞导致拒绝服务

披露日期: 2025-12-16

漏洞信息

漏洞编号
CVE-2025-68156
漏洞类型
栈溢出/拒绝服务
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
expr-lang/expr

相关标签

栈溢出拒绝服务递归深度Go语言Expr库

漏洞概述

Expr是Go语言的表达式语言库,在1.17.7之前的版本中存在栈溢出漏洞。多个内置函数(flatten、min、max、mean、median)在处理用户提供的深度嵌套或循环数据结构时,没有限制递归深度,可能导致无限递归,最终超出Go运行时栈限制而崩溃。攻击者可通过构造恶意输入触发此漏洞,造成应用程序拒绝服务。

技术细节

漏洞源于内置函数对用户数据的递归遍历缺乏深度控制。当遇到循环引用或过深嵌套的数据结构时,递归调用链不断增长,最终导致栈空间耗尽。修复方案在v1.17.7版本中引入最大递归深度限制机制。

攻击链分析

STEP 1
1
识别目标应用使用expr-lang/expr库处理用户输入
STEP 2
2
构造包含循环引用或深度嵌套的数据结构
STEP 3
3
通过API或用户输入将该数据结构传递给Expr求值函数
STEP 4
4
触发内置函数(如flatten、min等)执行递归遍历
STEP 5
5
超出栈限制导致panic,应用程序崩溃

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
构造包含循环引用的数据结构作为表达式求值输入

影响范围

expr-lang/expr < 1.17.7

防御指南

临时缓解措施
在表达式求值前检查数据结构的深度和循环引用,或升级到修复版本

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表