CVE-2026-32698CVE-2026-32698是OpenProject项目管理软件中的一个严重安全漏洞,CVSS评分高达9.1。该漏洞允许具有管理员权限的攻击者通过构造恶意的自定义字段名称进行SQL注入攻击。当该自定义字段被用于成本报告(Cost Report)功能时,攻击者注入的恶意SQL代码会被直接执行,从而实现对数据库的未授权操作。更为严重的是,攻击者可以结合OpenProject Repositories模块中的另一个缺陷,通过SQL注入修改项目标识符,使其包含特殊字符(如点和斜杠),然后利用git仓库checkout功能将仓库checkout到服务器上的任意路径。如果攻击者将恶意代码checkout到OpenProject应用程序的特定路径,在应用重启后即可实现Ruby代码注入和远程代码执行。由于自定义字段功能仅对具有完整管理员权限的用户开放,虽然攻击面相对有限,但一旦攻击成功,将导致服务器完全沦陷。
漏洞根源在于OpenProject的Cost Report功能在处理自定义字段名称时缺乏充分的输入验证和SQL语句参数化。具体来说,当用户在成本报告中添加自定义字段时,系统直接将字段名称拼接到SQL查询语句中,攻击者可以通过在自定义字段名称中嵌入SQL语句(如单引号、UNION SELECT等)来操纵查询逻辑。由于自定义字段只能由管理员创建,攻击者需要先获取管理员账号或提升当前用户权限至管理员级别。结合Repositories模块的缺陷,攻击者可以:1)利用SQL注入修改项目标识符为任意字符串(如../../etc/cron.d/malicious);2)通过git checkout功能将包含恶意Ruby代码的仓库checkout到目标路径;3)触发应用重启以执行注入的代码。整个攻击链充分利用了多个安全缺陷的组合效应,实现了从SQL注入到远程代码执行的权限提升。