PHP 開(kāi)源項(xiàng)目 ADOdb 最近發(fā)布了新版本 v5.22.9,專(zhuān)注于解決一個(gè)極為嚴(yán)重的安全漏洞,CVE-2025-46337。據(jù)官方透露,這一漏洞的 CVSS 風(fēng)險(xiǎn)評(píng)分高達(dá) 10 分,意味著其潛在危害極大,可能影響全球范圍內(nèi)高達(dá) 280 萬(wàn)個(gè)已部署 ADOdb 的環(huán)境。
ADOdb 是一個(gè)深受開(kāi)發(fā)者喜愛(ài)的 PHP 數(shù)據(jù)庫(kù)抽象層組件,通過(guò)提供統(tǒng)一的 API 接口,使得開(kāi)發(fā)者能夠使用相同的語(yǔ)法操作多種數(shù)據(jù)庫(kù)系統(tǒng),包括 MySQL、PostgreSQL、SQLite、Oracle、Microsoft SQL Server、IBM DB2 和 Sybase 等。這一特性大大簡(jiǎn)化了跨數(shù)據(jù)庫(kù)開(kāi)發(fā)的復(fù)雜性。
CVE-2025-46337 是一個(gè) SQL 注入漏洞,具體存在于 ADOdb 庫(kù)的 PostgreSQL 驅(qū)動(dòng)中。當(dāng)開(kāi)發(fā)者通過(guò) ADOdb 連接 PostgreSQL 數(shù)據(jù)庫(kù),并調(diào)用 pg_insert_id 函數(shù)時(shí),如果傳入了未經(jīng)適當(dāng)處理的用戶(hù)輸入且未進(jìn)行必要的轉(zhuǎn)義,就可能觸發(fā)該漏洞。這將允許攻擊者遠(yuǎn)程執(zhí)行任意 SQL 命令,對(duì)數(shù)據(jù)庫(kù)安全構(gòu)成重大威脅。
該漏洞波及多個(gè) PostgreSQL 驅(qū)動(dòng)版本,包括 postgres64、postgres7、postgres8 和 postgres9。在最糟糕的情況下,黑客可以完全控制 SQL 執(zhí)行流程,竊取或刪除敏感數(shù)據(jù),甚至遠(yuǎn)程執(zhí)行惡意代碼。因此,ADOdb 官方強(qiáng)烈建議開(kāi)發(fā)者盡快升級(jí)至 v5.22.9 版本,以消除這一安全隱患。ADOdb 的 GitHub 發(fā)布頁(yè)面提供了升級(jí)所需的詳細(xì)信息。
有趣的是,這一漏洞的發(fā)現(xiàn)者 Marco Napp 原本是一名專(zhuān)注于黑盒滲透測(cè)試的安全研究人員。為了更深入地理解白盒測(cè)試,他開(kāi)始嘗試使用 SonarQube 靜態(tài)代碼分析工具,對(duì) Moodle 開(kāi)源項(xiàng)目和 VtigerCRM 客戶(hù)關(guān)系管理系統(tǒng)進(jìn)行掃描。令人驚訝的是,在兩個(gè)項(xiàng)目中都發(fā)現(xiàn)了相同的 SQL 注入漏洞。
Marco Napp 隨后進(jìn)行了深入調(diào)查,發(fā)現(xiàn)這些漏洞的根源在于它們共同依賴(lài)的 ADOdb 組件。于是,他迅速向 ADOdb 官方報(bào)告了這一發(fā)現(xiàn)。這一行動(dòng)不僅體現(xiàn)了 Marco Napp 的專(zhuān)業(yè)素養(yǎng),也再次證明了靜態(tài)應(yīng)用安全測(cè)試在發(fā)現(xiàn)潛在安全漏洞方面的重要性。
此次事件再次提醒廣大開(kāi)發(fā)者,保持開(kāi)源組件的及時(shí)更新和安全維護(hù)至關(guān)重要。通過(guò)及時(shí)修復(fù)已知漏洞,可以有效降低系統(tǒng)遭受攻擊的風(fēng)險(xiǎn),保障數(shù)據(jù)安全和業(yè)務(wù)穩(wěn)定運(yùn)行。