CVE-2025-57052:cJSON庫存在CVSS 9.8高危JSON解析漏洞(含PoC)
漏洞概述
安全研究員Salah Chafai(漏洞利用開發(fā)與安全專家)近日披露,輕量級C語言JSON解析庫cJSON存在一個高危漏洞(編號CVE-2025-57052,CVSS評分9.8)。攻擊者可構(gòu)造畸形JSON指針繞過數(shù)組邊界檢查,導(dǎo)致內(nèi)存越界訪問、段錯誤、權(quán)限提升或拒絕服務(wù)攻擊。

技術(shù)細(xì)節(jié)
該漏洞源于cJSON_Utils.c文件中的decode_array_index_from_pointer函數(shù)。研究報告指出:"循環(huán)錯誤地檢查pointer[0]而非pointer[position],導(dǎo)致非數(shù)字字符被當(dāng)作數(shù)組索引處理。"
這種邏輯錯誤意味著類似"0A"的輸入會被解析為索引10,即使數(shù)組僅包含三個元素。此類越界訪問可能導(dǎo)致應(yīng)用程序崩潰,或在特定場景下允許攻擊者讀取/篡改預(yù)期范圍外的內(nèi)存。
漏洞驗證
Chafai發(fā)布了一個簡易C程序演示漏洞利用過程:當(dāng)使用cJSON解析用戶JSON數(shù)組時,合法索引"0"和"1"能正確返回Alice和Bob的數(shù)據(jù),但精心構(gòu)造的索引"0A"會使cJSON嘗試訪問不存在的第10個元素。
報告強調(diào):"提供索引0A將導(dǎo)致cJSON訪問越界的索引10,可能引發(fā)段錯誤(崩潰)。"
影響范圍
由于cJSON被嵌入到無數(shù)項目中,受影響軟件包括:
- 處理JSON指針的Web API
 - 依賴輕量級解析器的嵌入式/IoT設(shè)備
 - 需要結(jié)構(gòu)化JSON輸入的桌面/服務(wù)器應(yīng)用
 
報告警告:"任何使用cJSON解析JSON指針的軟件...都可能遭受拒絕服務(wù)攻擊。在可向JSON指針API提供畸形輸入的環(huán)境中,風(fēng)險尤為嚴(yán)重。"
攻擊場景
攻擊者可利用CVE-2025-57052實現(xiàn):
- 通過段錯誤使服務(wù)崩潰
 - 利用cJSON與atoi函數(shù)解析差異繞過應(yīng)用層檢查
 - 通過讀取已分配內(nèi)存區(qū)域外的數(shù)據(jù)實現(xiàn)權(quán)限提升或訪問敏感信息
 
修復(fù)方案
修復(fù)方法簡單直接:修正循環(huán)條件判斷。
漏洞代碼:
for (position = 0; (pointer[position] >= '0') && (pointer[0] <= '9'); position++)修復(fù)后代碼:
for (position = 0; (pointer[position] >= '0') && (pointer[position] <= '9'); position++)該修復(fù)確保指針字符串中的每個字符在被解析為數(shù)組索引前都經(jīng)過正確驗證。















 
 
 
















 
 
 
 