ADOdb SQLite3驱动高危漏洞CVE-2025-54119
ADODB(Active Data Objects Data Base)是种数据库抽象层组件,最初为PHP设计,后扩展至多语言,旨在解决不同数据库API不兼容。
ADODB通过封装MySQL、PostgreSQL、Oracle等20余种数据库的差异,提供统一编程接口,降低代码因数据库切换而产生的调整成本。
一、基本情况
ADOdb是一个PHP数据库类库,提供了执行查询和管理数据库的抽象,产品被嵌入到无数PHP项目中,用于简化数据库查询和后端逻辑。
ADODB是Web系统PHP存取数据库的中间函式组件,被应用于入侵检测系统BASE、Snort等场景,通过解压配置即可集成至LAMP环境。
栋科技漏洞库关注到ADOdb SQLite3驱动中存在一个可导致SQL注入攻击的漏洞,该漏洞被追踪为CVE-2025-54119,CVSS 3.1评分10.0。
二、漏洞分析
CVE-2025-54119漏洞是ADOdb SQLite3受影响版本的驱动中存在的可能导致SQL注入攻击的漏洞,影响5.22.10之前版本的SQLite3驱动。
漏洞源于对查询参数未进行适当的转义处理,当使用ADOdb连接到sqlite3数据库并使用精心设计的表名调用时可能被执行任意SQL语句。
可导致查询参数未进行适当的转义处理的方法中表名参数如下:
metaColumns()
metaForeignKeys()
metaIndexes()
当不受信任的用户输入作为$table参数传递给上述这些函数时,攻击者就可以利用这一漏洞在数据库中注入并执行任意SQL语句。
尽管上述这些方法通常只用于模式自省(如检索列元数据或外键关系),但不当的验证仍旧可能为攻击者操纵后端SQL查询开启一个通道。
即便是没有直接数据操纵端点的情况下,官方指出所述严重程度对应最坏使用场景,如允许用户提供的数据未经处理直接传递给上述方法。
ADOdb官方已在5.22.10版本中通过提交5b8bd52修复该漏洞,强烈建议所有使用ADOdb SQLite3驱动的开发者立即升级修复该高危漏洞。
如果暂时无法立即升级,可以通过仅向metaColumns()、metaForeignKeys()和metaIndexes()方法的$table参数传递受控数据来临时缓解。
临时缓解措施的做法只不过是严格清理和控制传入漏洞方法的$table参数,但需注意,仅依赖手动验证并非万全之策,官方强烈建议升级。
三、影响范围
ADOdb < 5.22.10
四、修复建议
ADOdb >= 5.22.10
五、参考链接
