首页 网络安全 正文
  • 本文约1720字,阅读需9分钟
  • 24
  • 0

Bacula-Web中的SQL注入漏洞CVE-2025-45346

摘要

栋科技漏洞库关注到Bacula-Web低于v9.7.1的版本中存在一个SQL注入漏洞,该漏洞现已被追踪为CVE-2025-45346,漏洞CVSS评分8.1。

Bacula-Web是开源备份监控工具,使用PHP作为主要编程语言,结合Twig模板引擎,提供强大Web界面用于监控和管理 Bacula 备份系统。

Bacula-Web提供关于 Bacula 备份基础设施的丰富的报告和信息,用户可以轻松地监视备份作业的状态、使用的卷、每周备份统计等信息。

一、基本情况

Bacula-Web是个PHP Web应用程序,提供查看已经运行的Bacula备份作业的摘要和图形的简便方法,简化了数据备份与恢复的流程管理。

Bacula-Web备份管理系统前端界面与 Bacula 或Bacula Enterprise后端配合,提供了直观图形界面管理和监控备份、存储设备、客户端等。

Bacula-Web中的SQL注入漏洞CVE-2025-45346

栋科技漏洞库关注到Bacula-Web低于v9.7.1的版本中存在一个SQL注入漏洞,该漏洞现已被追踪为CVE-2025-45346,漏洞CVSS评分8.1。

二、漏洞分析

CVE-2025-45346漏洞是备份监控工具版本低于v9.7.1系统存在的SQL注入漏洞,允许远程攻击者通过特制HTTP GET请求执行任意代码。

该漏洞允许远程攻击者通过精心构建的HTTP GET请求请求执行任意代码,从而注入恶意SQL代码,该漏洞位于所有版本在 v9.7.1 之前。

攻击者可利用CVE-2025-45346漏洞执行任意 SQL 命令,可能导致数据泄露、篡改或远程代码执行。

漏洞代码如下:

application/Table/JobFileTable.php

Lines changed: 4 additions & 2 deletions

Original file line number    Diff line number    Diff line change

@@ -61,7 +61,8 @@ public function getJobFiles($jobId, $limit, $offset, string $filename = '')

            $fields = array('Job.Name', 'Job.JobStatus', 'File.FileIndex', 'Path.Path', 'Filename.Name AS Filename');

            $where = array("File.JobId = $jobId");

            if (! empty($filename)) {

                $where[] = "(Filename.Name LIKE '%$filename%' OR Path.Path LIKE '%$filename%' OR concat(Path.Path, '', Filename.Name) = '$filename')";

                $this->addParameter('filename', '%'.$filename.'%');

                $where[] = "(Filename.Name LIKE :filename OR Path.Path LIKE :filename OR concat(Path.Path, '', Filename.Name) = :filename)";

            }

            $orderby = 'File.FileIndex ASC';

@@ -84,7 +85,8 @@ public function getJobFiles($jobId, $limit, $offset, string $filename = '')

            $where = ["File.JobId = $jobId"];

            if (!empty($filename)) {

                $where[] = "(File.Filename LIKE '%$filename%' OR Path.Path LIKE '%$filename%' OR concat(Path.Path, '', File.Filename) = '$filename')";

                $this->addParameter('filename', '%'.$filename.'%');

                $where[] = "(File.Filename LIKE :filename OR Path.Path LIKE :filename OR concat(Path.Path, '', File.Filename) = :filename)";

            }

            $orderby = 'File.FileIndex ASC';

三、影响范围

Bacula-Web <= v9.7.1

四、修复建议

Bacula-Web > v9.7.1

五、参考链接

管理员已设置登录后刷新可查看



扫描二维码,在手机上阅读
评论
更换验证码
友情链接