PHP 开源项目 ADOdb 最近发布了新版本 v5.22.9,专注于解决一个极为严重的安全漏洞,CVE-2025-46337。据官方透露,这一漏洞的 CVSS 风险评分高达 10 分,意味着其潜在危害极大,可能影响全球范围内高达 280 万个已部署 ADOdb 的环境。
ADOdb 是一个深受开发者喜爱的 PHP 数据库抽象层组件,通过提供统一的 API 接口,使得开发者能够使用相同的语法操作多种数据库系统,包括 MySQL、PostgreSQL、SQLite、Oracle、Microsoft SQL Server、IBM DB2 和 Sybase 等。这一特性大大简化了跨数据库开发的复杂性。
CVE-2025-46337 是一个 SQL 注入漏洞,具体存在于 ADOdb 库的 PostgreSQL 驱动中。当开发者通过 ADOdb 连接 PostgreSQL 数据库,并调用 pg_insert_id 函数时,如果传入了未经适当处理的用户输入且未进行必要的转义,就可能触发该漏洞。这将允许攻击者远程执行任意 SQL 命令,对数据库安全构成重大威胁。
该漏洞波及多个 PostgreSQL 驱动版本,包括 postgres64、postgres7、postgres8 和 postgres9。在最糟糕的情况下,黑客可以完全控制 SQL 执行流程,窃取或删除敏感数据,甚至远程执行恶意代码。因此,ADOdb 官方强烈建议开发者尽快升级至 v5.22.9 版本,以消除这一安全隐患。ADOdb 的 GitHub 发布页面提供了升级所需的详细信息。
有趣的是,这一漏洞的发现者 Marco Napp 原本是一名专注于黑盒渗透测试的安全研究人员。为了更深入地理解白盒测试,他开始尝试使用 SonarQube 静态代码分析工具,对 Moodle 开源项目和 VtigerCRM 客户关系管理系统进行扫描。令人惊讶的是,在两个项目中都发现了相同的 SQL 注入漏洞。
Marco Napp 随后进行了深入调查,发现这些漏洞的根源在于它们共同依赖的 ADOdb 组件。于是,他迅速向 ADOdb 官方报告了这一发现。这一行动不仅体现了 Marco Napp 的专业素养,也再次证明了静态应用安全测试在发现潜在安全漏洞方面的重要性。
此次事件再次提醒广大开发者,保持开源组件的及时更新和安全维护至关重要。通过及时修复已知漏洞,可以有效降低系统遭受攻击的风险,保障数据安全和业务稳定运行。