issue处理注意事项:
1. 提交正常修复分支的修复PR时,必须关联当前issue,否则无法关闭当前issue;
2. 模板内容需要填写完整, 无论是受影响或者不受影响都需要填写完整内容;
3. 以下为模板中需要填写完整的内容, 请复制到评论区回复;
注: 内容的关键词(影响性分析说明, openEuler评分, 受影响版本排查(受影响/不受影响), 修复是否涉及abi变化(是/否), 原因说明)不能省略,省略后cve-manager将无法正常解析填写内容.
影响性分析说明:
openEuler评分: (评分和向量)
受影响版本排查(受影响/不受影响):
1.master(1.652):
2.openEuler-20.03-LTS-SP4(1.643):
3.openEuler-22.03-LTS-SP4(1.643):
4.openEuler-24.03-LTS-Next(1.648):
5.openEuler-24.03-LTS-SP1(1.643):
6.openEuler-24.03-LTS-SP3(1.643):
7.openEuler-24.03-LTS-SP4(1.648):
修复是否涉及abi变化(是/否):
1.master(1.652):
2.openEuler-20.03-LTS-SP4(1.643):
3.openEuler-22.03-LTS-SP4(1.643):
4.openEuler-24.03-LTS-Next(1.648):
5.openEuler-24.03-LTS-SP1(1.643):
6.openEuler-24.03-LTS-SP3(1.643):
7.openEuler-24.03-LTS-SP4(1.648):
原因说明:
1.master(1.652):
2.openEuler-20.03-LTS-SP4(1.643):
3.openEuler-22.03-LTS-SP4(1.643):
4.openEuler-24.03-LTS-Next(1.648):
5.openEuler-24.03-LTS-SP1(1.643):
6.openEuler-24.03-LTS-SP3(1.643):
7.openEuler-24.03-LTS-SP4(1.648):
原因说明填写请参考下方表格(注意:版本是否受影响和版本的原因说明必须对应,例如master版本分支受影响,那原因说明只能是受影响对应的原因之一!):
分支状态 |
原因说明 | 使用场景 |
|---|---|---|
| 受影响 | 正常修复 | 受影响且需要修复(包含升级版本修复)的漏洞; 受影响且已经修复的漏洞(历史修复PR也需要关联issue); 若因特殊原因无法修复,应修改原因说明为【不修复-特殊原因】,并在安委会备案相关情况。 |
| 受影响 | 暂不修复-漏洞仍在分析中 | 已关注到相关漏洞,正在处理,未明确漏洞影响和修复方案。 |
| 受影响 | 暂不修复-暂无解决方案或补丁 | 当前没有可用的修复或补救措施。【影响性分析】中应包含有关为什么没有修复或补救措施的详细说明、上游相关PR等。 |
| 受影响 | 不修复-超出修复范围 | 没有漏洞的修复计划。当版本停维、软件包宣布生命周期终止或弃用使用。 |
| 受影响 | 不修复-特殊原因导致不再修复 | 如存在其他特殊情况不修复相关漏洞,或评估后无法升级修复,应在openEuler社区安全委员会例会进行说明备案。 【影响性分析】中应包含不发布修复的详细说明、特殊情况还应有安委会会议纪要。 |
| 不受影响 | 不受影响-组件不存在 | 软件不受影响,因为易受攻击的组件不在产品中。 |
| 不受影响 | 不受影响-已有内置的内联控制或缓解措施 | 内置的内联控制或缓解措施可防止攻击者利用漏洞 |
| 不受影响 | 不受影响-漏洞代码不能被攻击者触发 | 易受攻击的组件存在,并且该组件包含易受攻击的代码。但是,易受攻击的代码的使用方式使得攻击者无法进行任何预期的攻击。 |
| 不受影响 | 不受影响-漏洞代码不在执行路径 | 易受影响的代码在执行过程中不可访问,包括产品的非预期状态。产品不使用也不执行的组件。 |
| 不受影响 | 不受影响-漏洞代码不存在 | 产品不受影响,因为漏洞背后的代码在产品中不存在。与component_not_present不同的是,有问题的组件存在,但由于某种原因(例如安全的编译器选项)使漏洞的特定代码不存在于组件中。 |
issue处理具体操作请参考:
https://atomgit.com/openeuler/cve-manager/blob/master/cve-vulner-manager/doc/md/manual.md
pr关联issue具体操作请参考:
https://docs.atomgit.com/docs/help/home/org_project/pullrequests/pr-related-issue


Welcome To openEuler Community
Hey @zhengzongmin , thanks for your contribution to the community.
Bot Usage Manual
I'm the Bot here serving you. You can find the instructions on how to interact with me at Here . That means you can comment below every pull request or issue to trigger Bot Commands. You can self-configure the PR merge rules for this repository. For more details, please refer to Here.
Contact Guide
If you have any questions, please contact the SIG: sig-perl-modules ,
and any of the maintainers: @shinwell_hu ,
and any of the committers: @licunlong, @overweight, @shenyangyang .


| 参考网址 | 关联pr | 状态 | 补丁链接 |
|---|---|---|---|
| https://www.opencve.io/cve/CVE-2026-78030 | None | None | https://github.com/perl5-dbi/dbi/commit/315c6ce703b8b3cbe9188062d9ec80730293554a |
| https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2026-78030 | |||
| https://security-tracker.debian.org/tracker/CVE-2026-78030 | None | None | https://github.com/perl5-dbi/dbi/commit/315c6ce703b8b3cbe9188062d9ec80730293554a |
| http://www.cnnvd.org.cn/web/vulnerability/queryLds.tag?qcvCnnvdid=CVE-2026-78030 | |||
| https://nvd.nist.gov/vuln/detail/CVE-2026-78030 | |||
| https://ubuntu.com/security/CVE-2026-78030 | None | None | https://discourse.ubuntu.com/c/project |
说明:补丁链接仅供初步排查参考,实际可用性请人工再次确认,补丁下载验证可使用CVE补丁工具。
若补丁不准确,烦请在此issue下评论 '/report-patch 参考网址 补丁链接1,补丁链接2' 反馈正确信息,便于我们不断优化工具,不胜感激。
如 /report-patch https://security-tracker.debian.org/tracker/CVE-2021-3997 https://github.com/systemd/systemd/commit/5b1cf7a9be37e20133c0208005274ce4a5b5c6a1


@zhengzongmin CVE信息从NVD同步成功, 稍后请重新加载页面.


/branches openEuler-24.03-LTS /patch_url https://github.com/perl5-dbi/dbi/commit/315c6ce703b8b3cbe9188062d9ec80730293554a.patch /name fly_fzc /email 2385803914@qq.com


评论已生成并写入流水线输出(ai_output/step8-comment.md,39 行,已同步至 step8-comment_20260923_160713.log)。评论内容如下:
【任务 #19 · openEuler-24.03-LTS】CVE-2026-78030
1. 是否受影响
结论:受影响。
CVE-2026-78030 源于 DBD::DBM 将 dbm_type / dbm_mldbm 连接属性未经校验直接传给 require,攻击者可通过路径形字符串诱导加载并执行任意模块。Step 4 源码影响性分析确认,漏洞代码在 openEuler-24.03-LTS 分支(DBI-1.643)源码 lib/DBD/DBM.pm 中逐字存在,且补丁未预先应用:
- L194
require $ser_mod(dbm_mldbm 经 s|:😐/|g 转路径,位于 get_dbm_versions L163) - L320
$INC{"$tie_type.pm"} or require "$tie_type.pm"(dbm_type,位于 init_table_meta L311) - L390
$MLDBM::Serializer = $meta->{dbm_mldbm}(open_data L348)
分支状态:
- openEuler-24.03-LTS(1.643):受影响
2. 是否有修复补丁
上游补丁:https://github.com/perl5-dbi/dbi/commit/315c6ce703b8b3cbe9188062d9ec80730293554a.patch
3. 补丁适配情况
已生成适配补丁 backport-CVE-2026-78030.patch(状态:adapted,置信度:high),无前置补丁。
- 冲突原因:9 个 hunk 中 3 个因 baseline(DBI-1.643)与上游新版本上下文差异需适配——Makefile.PL:80 的 suggests 列表引号风格、版本号不同且无 RPC::PlClient 条目;lib/DBD/DBM.pm:77 与 :254 处 baseline 使用全限定包变量(如 $DBD::DBM::db::imp_data_size、@DBD::DBM::Table::ISA)而非上游 our 风格。
- 适配内容:3 处均为纯上下文行调整,核心 +/- 变更行 151/151 逐字节一致,核心修复逻辑完全保真(如 -use Carp qw/carp/; → +use Carp; +use Module::Load ();、+“Params::Util” => '1.100' 均逐字节保留),其余 6 个 hunk 原样保留。
- 落地验证:适配后补丁已 git apply 到源码目录并提交(commit b277ca1,baseline fabd16a),git diff --stat 确认 4 files changed, 144 insertions(+), 7 deletions(-);在 pristine baseline worktree 上 git apply --check 通过;perl 语法检查(stub 依赖)patched 与 baseline 均通过。
4. 是否提交 PR
已提交 PR:https://gitcode.com/src-openeuler/perl-DBI/merge_requests/76(openEuler-24.03-LTS)
──────── 复制以下内容回填 issue ────────
受影响版本排查(受影响/不受影响):
1.openEuler-24.03-LTS(1.643): 受影响
ABI 变化:N/A
原因说明:
1.正常修复
────────────────────────────────────────


/branches openEuler-24.03-LTS-SP1 openEuler-24.03-LTS-SP4 openEuler-20.03-LTS-SP4 /patch_url https://github.com/perl5-dbi/dbi/commit/315c6ce703b8b3cbe9188062d9ec80730293554a.patch /name fly_fzc /email 2385803914@qq.com


【任务 #19 · openEuler-24.03-LTS-SP1】CVE-2026-78030
1. 是否受影响
结论:受影响。
CVE-2026-78030 源于 DBD::DBM 中 dbm_type/dbm_mldbm 参数未做任何校验即直达 require,可被用于加载任意 Perl 模块。经 Step 4 源码影响性分析,漏洞代码在 openEuler-24.03-LTS-SP1 的 DBI 1.643 源码中逐字存在(lib/DBD/DBM.pm:get_dbm_versions :163 的 require $ser_mod :194、init_table_meta :311 的 require 调用 :320/:325、open_data :348 的 $MLDBM::Serializer = $meta->{dbm_mldbm} :390),漏洞模式匹配,6 个 core hunk 的目标位置全部找到且修复未被预置。
分支状态:
- openEuler-24.03-LTS-SP1(1.643):受影响
2. 是否有修复补丁
有,上游社区补丁:https://github.com/perl5-dbi/dbi/commit/315c6ce703b8b3cbe9188062d9ec80730293554a.patch
3. 补丁适配情况
[原补丁] backport-CVE-2026-78030.patch 已完成适配(confidence: high),无前置补丁。
- 冲突原因:原补丁基于 DBI 1.647+ 生成,与 openEuler DBI 1.643 基线上下文存在差异,9 个 hunk 中 3 个不匹配——Makefile.PL 依赖块(上游为双引号且含 "RPC::PlClient"=>0.2020,基线为单引号且依赖版本不同、无 RPC::PlClient 条目);DBM.pm 两处 hunk(基线为包变量
$DBD::DBM::db::imp_data_size/@ISA声明,上游为our声明)。 - 适配内容:仅调整上下文行与 hunk 行号(Makefile.PL -80,+80→-69,+69;DBM.pm -77,+92→-76,+91、-254,+269→-252,+267),核心 +/- 变更行与原补丁逐字节一致(已脚本化逐行比对确认),修复逻辑完全保真;其余 6 个 hunk 原样保留。
- 落地验证:适配补丁在干净 baseline worktree 上
git apply --check零 offset 通过,已应用并提交到 source_dir(git diff --stat:4 files changed, 144 insertions(+), 7 deletions(-)),适配后 DBM.pm 经 stub 库perl -c语法检查通过。
4. 是否提交 PR
已提交 PR:https://gitcode.com/src-openeuler/perl-DBI/merge_requests/77(openEuler-24.03-LTS-SP1)
──────── 复制以下内容回填 issue ────────
受影响版本排查(受影响/不受影响):
1.openEuler-24.03-LTS-SP1(1.643): 受影响
ABI 变化:否
原因说明:
1.正常修复
────────────────────────────────────────


【任务 #19 · openEuler-24.03-LTS-SP4】CVE-2026-78030
1. 受影响性结论:受影响
CVE-2026-78030:DBD::DBM 的 dbm_type / dbm_mldbm 属性未经模块名校验即直传 require,可导致加载任意模块。Step 4 源码影响性分析确认漏洞代码存在于本版本源码:核心修复位置 get_dbm_versions(lib/DBD/DBM.pm:164)、init_table_meta(:312)、open_data(:349)均存在于 DBI-1.648,且三处漏洞模式逐字匹配——dbm_mldbm 未校验直传 require(:195 require $ser_mod)、dbm_type 未校验直传 require(:321 require "$tie_type.pm")、$MLDBM::Serializer 未校验赋值(:391)。
分支状态:
- openEuler-24.03-LTS-SP4(1.648):受影响
2. 修复补丁
上游补丁:https://github.com/perl5-dbi/dbi/commit/315c6ce703b8b3cbe9188062d9ec80730293554a.patch
3. 补丁适配情况([原补丁] backport-CVE-2026-78030.patch:已适配,置信度 high)
- 冲突原因:原补丁 9 个 hunk 中 8 个可直接应用(lib/DBD/DBM.pm 全部 6 个 hunk 干净应用、MANIFEST、新建测试 t/53dbm_module_name.t);仅 Makefile.PL 失败——hunk 上下文包含 baseline 中不存在的
"RPC::PlClient" => 0.2020,行(1.648 的 suggests 列表首项直接是 RPC::PlServer)。 - 适配内容:纯上下文调整——移除该不存在的上下文行,hunk 头由
@@ -80,6 +80,7 @@调整为@@ -77,6 +77,7 @@;核心新增行"Params::Util" => '1.100',逐字节保留,插入位置(Net::Daemon 与 SQL::Statement 之间)与原补丁语义一致。核心修复逻辑保真:适配补丁 163 个核心变更行与原补丁逐字节一致,偏离度 0。 - 落地验证:补丁已应用到源码目录并 commit(git diff --stat HEAD~1 确认 4 个文件变更:MANIFEST +1、Makefile.PL +1、lib/DBD/DBM.pm +34/-7、t/53dbm_module_name.t 新增 115 行);适配补丁在原始 baseline 21f8103 上
git apply --check前向通过,已应用状态下反向校验(git apply --check -R)通过。
无前置补丁。
4. PR
已提交修复 PR(openEuler-24.03-LTS-SP4):https://gitcode.com/src-openeuler/perl-DBI/merge_requests/78
──────── 复制以下内容回填 issue ────────
受影响版本排查(受影响/不受影响):
1.openEuler-24.03-LTS-SP4(1.648): 受影响
ABI 变化:N/A
原因说明:
1.正常修复
────────────────────────────────────────


任务已识别:根据事实清单为 issue #19 生成 CVE-2026-78030 的评论。事实数据(受影响性结论、补丁链接、适配详情、PR 链接)均已从任务目录的流水线产物中核实,现直接输出评论内容。
【任务 #19 · openEuler-20.03-LTS-SP4】CVE-2026-78030
受影响性结论:受影响
CVE-2026-78030 漏洞代码存在于本版本(DBI 1.643)源码中,需要修复。CVE 指明的三处漏洞 sink 在 lib/DBD/DBM.pm 中逐字存在:
- init_table_meta 第 320 行(
$INC{"$tie_type.pm"} or require "$tie_type.pm",dbm_type 未校验)与第 325 行(MLDBM require) - get_dbm_versions 第 194 行(由 dbm_mldbm 构造的
require $ser_mod) - open_data 第 390 行(
$MLDBM::Serializer赋值为未校验的 dbm_mldbm)
且该文件中无 Module::Load / Params::Util / _CLASS 等修复痕迹,修复尚未应用。
分支状态:
- openEuler-20.03-LTS-SP4(1.643):受影响
修复补丁
上游社区补丁:https://github.com/perl5-dbi/dbi/commit/315c6ce703b8b3cbe9188062d9ec80730293554a.patch
补丁适配情况
已完成适配:backport-CVE-2026-78030.patch(状态:已适配,置信度:高)。无前置补丁。
- 冲突原因:3 个 hunk 因上游 master 与 DBI 1.643 基线代码漂移而上下文不匹配,差异均为变量声明风格与列表写法,不涉及核心修复逻辑。
- 适配内容:仅做上下文行对齐与行号调整——(1) Makefile.PL suggests 列表(上游为双引号并新增 RPC::PlClient 等,基线为旧式单引号列表),新增行
"Params::Util" => '1.100'逐字节保留;(2) lib/DBD/DBM.pm 的 DBD::DBM::db 包(上游our声明 vs 基线全限定包变量),核心行use Carp;+use Module::Load ();逐字节保留;(3) DBD::DBM::Table 包(同因our @ISAvs 全限定@ISA),核心行+use Module::Load ();逐字节保留。151/151 条核心 +/- 变更行经 difflib 校验与原补丁逐字节一致,核心修复逻辑完全保真;另 6 个可直接应用的 hunk 原样保留(hunk 头按基线坐标重编号)。 - 落地验证:适配后补丁已在干净基线上 git apply 成功并提交(commit 304621e);git diff --stat 确认 4 files changed, 144 insertions(+), 7 deletions(-),与原补丁统计一致;无继承/签名/结构改动,偏离度 0。
修复 PR
已提交 PR:https://gitcode.com/src-openeuler/perl-DBI/merge_requests/79
──────── 复制以下内容回填 issue ────────
受影响版本排查(受影响/不受影响):
1.openEuler-20.03-LTS-SP4(1.643): 受影响
ABI 变化:否
原因说明:
1.正常修复
────────────────────────────────────────


影响性分析说明:
DBI versions before 1.653 for Perl load arbitrary modules via unvalidated dbm_type and dbm_mldbm attributes in DBD::DBM. DBD::DBM passes the dbm_type and dbm_mldbm connect attributes to require without checking that the value names a module. require treats a path-shaped string as a literal filename and does not consult @INC, so the attribute chooses the file that Perl loads and runs. The MLDBM::Serializer:: prefix that DBD::DBM prepends to dbm_mldbm is not a boundary: only the :: separators are rewritten to /, so a value containing / traverses out of the serializer directory. The value is also assigned to $MLDBM::Serializer, which MLDBM requires the same way when it ties the table. A caller that lets an untrusted party influence either attribute, for example through a DSN fragment or a parameter that selects a storage backend, runs the file-scope code of whatever module the value names. For example, my $dsn = "dbi:DBM:f_dir=/var/db;dbm_type=../../Untrusted.pm" my $dbh = DBI->connect( $dsn ); Note that DBD::Gofer forwards connect attributes to the server side, and DBI::ProxyServer checks only that a DSN starts with a driver prefix.
openEuler评分: (评分和向量)
BaseScore:9.8 Critical
Vector:CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
受影响版本排查(受影响/不受影响):
1.master(1.652):受影响
2.openEuler-20.03-LTS-SP4(1.643):受影响
3.openEuler-22.03-LTS-SP4(1.643):受影响
4.openEuler-24.03-LTS-Next(1.648):受影响
5.openEuler-24.03-LTS-SP1(1.643):受影响
6.openEuler-24.03-LTS-SP3(1.643):受影响
7.openEuler-24.03-LTS-SP4(1.648):受影响
修复是否涉及abi变化(是/否):
1.master(1.652):否
2.openEuler-20.03-LTS-SP4(1.643):否
3.openEuler-22.03-LTS-SP4(1.643):否
4.openEuler-24.03-LTS-Next(1.648):否
5.openEuler-24.03-LTS-SP1(1.643):否
6.openEuler-24.03-LTS-SP3(1.643):否
7.openEuler-24.03-LTS-SP4(1.648):否
原因说明:
1.master(1.652):正常修复
2.openEuler-20.03-LTS-SP4(1.643):正常修复
3.openEuler-22.03-LTS-SP4(1.643):正常修复
4.openEuler-24.03-LTS-Next(1.648):正常修复
5.openEuler-24.03-LTS-SP1(1.643):正常修复
6.openEuler-24.03-LTS-SP3(1.643):正常修复
7.openEuler-24.03-LTS-SP4(1.648):正常修复


@zhengzongmin 经过 cve-manager 解析, 已分析的内容如下表所示:
| 状态 | 分析项目 | 内容 |
|---|---|---|
| 已分析 | 1.影响性分析说明 | DBI versions before 1.653 for Perl load arbitrary modules via unvalidated dbm_type and dbm_mldbm attributes in DBD::DBM. DBD::DBM passes the dbm_type and dbm_mldbm connect attributes to require without checking that the value names a module. require treats a path-shaped string as a literal filename and does not consult @INC, so the attribute chooses the file that Perl loads and runs. The MLDBM::Serializer:: prefix that DBD::DBM prepends to dbm_mldbm is not a boundary: only the :: separators are rewritten to /, so a value containing / traverses out of the serializer directory. The value is also assigned to $MLDBM::Serializer, which MLDBM requires the same way when it ties the table. A caller that lets an untrusted party influence either attribute, for example through a DSN fragment or a parameter that selects a storage backend, runs the file-scope code of whatever module the value names. For example, my $dsn = "dbi:DBM:f_dir=/var/db;dbm_type=../../Untrusted.pm" my $dbh = DBI->connect( $dsn ); Note that DBD::Gofer forwards connect attributes to the server side, and DBI::ProxyServer checks only that a DSN starts with a driver prefix. |
| 已分析 | 2.openEulerScore | 9.8 |
| 已分析 | 3.openEulerVector | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| 已分析 | 4.受影响版本排查 | master:受影响,openEuler-20.03-LTS-SP4:受影响,openEuler-22.03-LTS-SP4:受影响,openEuler-24.03-LTS-Next:受影响,openEuler-24.03-LTS-SP1:受影响,openEuler-24.03-LTS-SP3:受影响,openEuler-24.03-LTS-SP4:受影响 |
| 已分析 | 5.是否涉及abi变化 | master:否,openEuler-20.03-LTS-SP4:否,openEuler-22.03-LTS-SP4:否,openEuler-24.03-LTS-Next:否,openEuler-24.03-LTS-SP1:否,openEuler-24.03-LTS-SP3:否,openEuler-24.03-LTS-SP4:否 |
| 已分析 | 6.原因说明 | master:正常修复,openEuler-20.03-LTS-SP4:正常修复,openEuler-22.03-LTS-SP4:正常修复,openEuler-24.03-LTS-Next:正常修复,openEuler-24.03-LTS-SP1:正常修复,openEuler-24.03-LTS-SP3:正常修复,openEuler-24.03-LTS-SP4:正常修复 |
请确认分析内容的准确性, 确认无误后, 您可以进行后续步骤, 否则您可以继续分析.


经过cve-manager解析,部分分支PR未合入,如红色字体所示:
原因说明:
1.master:正常修复(PR未合入)
2.openEuler-20.03-LTS-SP4:正常修复(PR未合入)
3.openEuler-22.03-LTS-SP4:正常修复(PR未合入)
4.openEuler-24.03-LTS-Next:正常修复(PR未合入)
5.openEuler-24.03-LTS-SP1:正常修复(PR未合入)
6.openEuler-24.03-LTS-SP3:正常修复(PR未合入)
7.openEuler-24.03-LTS-SP4:正常修复(PR未合入)


@zhengzongmin 经过 cve-manager 解析, 已分析的内容如下表所示:
| 状态 | 分析项目 | 内容 |
|---|---|---|
| 已分析 | 1.影响性分析说明 | DBI versions before 1.653 for Perl load arbitrary modules via unvalidated dbm_type and dbm_mldbm attributes in DBD::DBM. DBD::DBM passes the dbm_type and dbm_mldbm connect attributes to require without checking that the value names a module. require treats a path-shaped string as a literal filename and does not consult @INC, so the attribute chooses the file that Perl loads and runs. The MLDBM::Serializer:: prefix that DBD::DBM prepends to dbm_mldbm is not a boundary: only the :: separators are rewritten to /, so a value containing / traverses out of the serializer directory. The value is also assigned to $MLDBM::Serializer, which MLDBM requires the same way when it ties the table. A caller that lets an untrusted party influence either attribute, for example through a DSN fragment or a parameter that selects a storage backend, runs the file-scope code of whatever module the value names. For example, my $dsn = "dbi:DBM:f_dir=/var/db;dbm_type=../../Untrusted.pm" my $dbh = DBI->connect( $dsn ); Note that DBD::Gofer forwards connect attributes to the server side, and DBI::ProxyServer checks only that a DSN starts with a driver prefix. |
| 已分析 | 2.openEulerScore | 9.8 |
| 已分析 | 3.openEulerVector | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| 已分析 | 4.受影响版本排查 | master:受影响,openEuler-20.03-LTS-SP4:受影响,openEuler-22.03-LTS-SP4:受影响,openEuler-24.03-LTS-Next:受影响,openEuler-24.03-LTS-SP1:受影响,openEuler-24.03-LTS-SP3:受影响,openEuler-24.03-LTS-SP4:受影响 |
| 已分析 | 5.是否涉及abi变化 | master:否,openEuler-20.03-LTS-SP4:否,openEuler-22.03-LTS-SP4:否,openEuler-24.03-LTS-Next:否,openEuler-24.03-LTS-SP1:否,openEuler-24.03-LTS-SP3:否,openEuler-24.03-LTS-SP4:否 |
| 已分析 | 6.原因说明 | master:正常修复,openEuler-20.03-LTS-SP4:正常修复,openEuler-22.03-LTS-SP4:正常修复,openEuler-24.03-LTS-Next:正常修复,openEuler-24.03-LTS-SP1:正常修复,openEuler-24.03-LTS-SP3:正常修复,openEuler-24.03-LTS-SP4:正常修复 |
请确认分析内容的准确性, 确认无误后, 您可以进行后续步骤, 否则您可以继续分析.


经过cve-manager解析,所有PR均已合入


经过cve-manager解析,所有PR均已合入


一、漏洞信息
漏洞编号:CVE-2026-78030
漏洞归属组件:perl-DBI
漏洞归属的版本:1.647
CVSS评分:
BaseScore:9.8 Critical
Vector:CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
漏洞简述:
DBI versions before 1.653 for Perl load arbitrary modules via unvalidated dbm_type and dbm_mldbm attributes in DBD::DBM.DBD::DBM passes the dbm_type and dbm_mldbm connect attributes to require without checking that the value names a module. require treats a path-shaped string as a literal filename and does not consult @INC, so the attribute chooses the file that Perl loads and runs.The MLDBM::Serializer:: prefix that DBD::DBM prepends to dbm_mldbm is not a boundary: only the :: separators are rewritten to /, so a value containing / traverses out of the serializer directory. The value is also assigned to $MLDBM::Serializer, which MLDBM requires the same way when it ties the table.A caller that lets an untrusted party influence either attribute, for example through a DSN fragment or a parameter that selects a storage backend, runs the file-scope code of whatever module the value names.For example, my $dsn = dbi:DBM:f_dir=/var/db;dbm_type=../../Untrusted.pm my $dbh = DBI->connect( $dsn );Note that DBD::Gofer forwards connect attributes to the server side, and DBI::ProxyServer checks only that a DSN starts with a driver prefix.
漏洞公开时间:2026-09-19 19:16:37
漏洞创建时间:2026-09-22 13:52:32
漏洞详情参考链接:
https://nvd.nist.gov/vuln/detail/CVE-2026-78030
更多参考(点击展开)
无
漏洞分析指导链接:
https://atomgit.com/openeuler/cve-manager/blob/master/cve-vulner-manager/doc/md/manual.md
漏洞数据来源:
其他
漏洞补丁信息:
详情(点击展开)
无
二、漏洞分析结构反馈
影响性分析说明:
DBI versions before 1.653 for Perl load arbitrary modules via unvalidated dbm_type and dbm_mldbm attributes in DBD::DBM. DBD::DBM passes the dbm_type and dbm_mldbm connect attributes to require without checking that the value names a module. require treats a path-shaped string as a literal filename and does not consult @INC, so the attribute chooses the file that Perl loads and runs. The MLDBM::Serializer:: prefix that DBD::DBM prepends to dbm_mldbm is not a boundary: only the :: separators are rewritten to /, so a value containing / traverses out of the serializer directory. The value is also assigned to $MLDBM::Serializer, which MLDBM requires the same way when it ties the table. A caller that lets an untrusted party influence either attribute, for example through a DSN fragment or a parameter that selects a storage backend, runs the file-scope code of whatever module the value names. For example, my $dsn = dbi:DBM:f_dir=/var/db;dbm_type=../../Untrusted.pm my $dbh = DBI->connect( $dsn ); Note that DBD::Gofer forwards connect attributes to the server side, and DBI::ProxyServer checks only that a DSN starts with a driver prefix.
openEuler评分:
9.8
Vector:CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
受影响版本排查(受影响/不受影响):
1.master(1.652):受影响
2.openEuler-20.03-LTS-SP4(1.643):受影响
3.openEuler-22.03-LTS-SP4(1.643):受影响
4.openEuler-24.03-LTS-Next(1.648):受影响
5.openEuler-24.03-LTS-SP1(1.643):受影响
6.openEuler-24.03-LTS-SP3(1.643):受影响
7.openEuler-24.03-LTS-SP4(1.648):受影响
修复是否涉及abi变化(是/否):
1.master(1.652):否
2.openEuler-20.03-LTS-SP4(1.643):否
3.openEuler-22.03-LTS-SP4(1.643):否
4.openEuler-24.03-LTS-Next(1.648):否
5.openEuler-24.03-LTS-SP1(1.643):否
6.openEuler-24.03-LTS-SP3(1.643):否
7.openEuler-24.03-LTS-SP4(1.648):否
原因说明:
1.master(1.652):正常修复
2.openEuler-20.03-LTS-SP4(1.643):正常修复
3.openEuler-22.03-LTS-SP4(1.643):正常修复
4.openEuler-24.03-LTS-Next(1.648):正常修复
5.openEuler-24.03-LTS-SP1(1.643):正常修复
6.openEuler-24.03-LTS-SP3(1.643):正常修复
7.openEuler-24.03-LTS-SP4(1.648):正常修复