漏洞概述 安全研究员Salah Chafai(漏洞利用开发与安全专家)近日披露,库存轻量级C语言JSON解析库cJSON存在一个高危漏洞(编号CVE-2025-57052
,高危CVSS评分9.8)。解析攻击者可构造畸形JSON指针绕过数组边界检查,漏洞导致内存越界访问
、库存段错误 、高危权限提升或拒绝服务攻击
。亿华云解析 该漏洞源于cJSON_Utils.c文件中的漏洞decode_array_index_from_pointer函数。研究报告指出 :"循环错误地检查pointer[0]而非pointer[position],库存导致非数字字符被当作数组索引处理 。高危" 这种逻辑错误意味着类似"0A"的解析输入会被解析为索引10,高防服务器即使数组仅包含三个元素。漏洞此类越界访问可能导致应用程序崩溃,库存或在特定场景下允许攻击者读取/篡改预期范围外的高危内存
。 Chafai发布了一个简易C程序演示漏洞利用过程 :当使用cJSON解析用户JSON数组时,解析合法索引"0"和"1"能正确返回Alice和Bob的模板下载数据
,但精心构造的索引"0A"会使cJSON尝试访问不存在的第10个元素。 报告强调
:"提供索引0A将导致cJSON访问越界的索引10,云计算可能引发段错误(崩溃)。" 由于cJSON被嵌入到无数项目中,受影响软件包括 : 报告警告:"任何使用cJSON解析JSON指针的源码库软件...都可能遭受拒绝服务攻击。在可向JSON指针API提供畸形输入的环境中
,风险尤为严重。" 攻击者可利用CVE-2025-57052实现: 修复方法简单直接
:修正循环条件判断。服务器租用 漏洞代码: 修复后代码: 该修复确保指针字符串中的每个字符在被解析为数组索引前都经过正确验证
。