CVE-2026-78030: CWE-470 Use of Externally-Controlled Input to Select Classes or Code ('Unsafe Reflection')
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.
AI Analysis
Technical Summary
The vulnerability arises from DBD::DBM passing the dbm_type and dbm_mldbm connect attributes directly to Perl's require function without validating that the values correspond to safe module names. The require function treats path-shaped strings as literal filenames, allowing traversal outside the intended serializer directory. The MLDBM::Serializer:: prefix is not a security boundary, as path separators can be manipulated to escape the directory. If an attacker can control these attributes, for example via a DSN fragment, they can execute arbitrary code by loading malicious modules. DBD::Gofer forwards these attributes to the server side, and DBI::ProxyServer only verifies the DSN driver prefix, not the attribute values.
Potential Impact
An attacker able to influence the dbm_type or dbm_mldbm attributes can cause the application to load and execute arbitrary Perl code, potentially leading to remote code execution or privilege escalation depending on the context in which the DBI connection is used. This compromises the confidentiality, integrity, and availability of the affected system.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until a fix is available, avoid using untrusted input to set dbm_type or dbm_mldbm attributes in DBD::DBM connections. Validate and sanitize any input that influences these attributes to ensure only safe module names are used. Consider restricting or disabling the use of DBD::DBM in environments where untrusted input cannot be controlled.
CVE-2026-78030: CWE-470 Use of Externally-Controlled Input to Select Classes or Code ('Unsafe Reflection')
Description
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.
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability arises from DBD::DBM passing the dbm_type and dbm_mldbm connect attributes directly to Perl's require function without validating that the values correspond to safe module names. The require function treats path-shaped strings as literal filenames, allowing traversal outside the intended serializer directory. The MLDBM::Serializer:: prefix is not a security boundary, as path separators can be manipulated to escape the directory. If an attacker can control these attributes, for example via a DSN fragment, they can execute arbitrary code by loading malicious modules. DBD::Gofer forwards these attributes to the server side, and DBI::ProxyServer only verifies the DSN driver prefix, not the attribute values.
Potential Impact
An attacker able to influence the dbm_type or dbm_mldbm attributes can cause the application to load and execute arbitrary Perl code, potentially leading to remote code execution or privilege escalation depending on the context in which the DBI connection is used. This compromises the confidentiality, integrity, and availability of the affected system.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until a fix is available, avoid using untrusted input to set dbm_type or dbm_mldbm attributes in DBD::DBM connections. Validate and sanitize any input that influences these attributes to ensure only safe module names are used. Consider restricting or disabling the use of DBD::DBM in environments where untrusted input cannot be controlled.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- CPANSec
- Date Reserved
- 2026-08-22T00:39:23.300Z
- State
- PUBLISHED
Threat ID: 6aae6bae55bf5e2cf57444a9
Added to database: 09/19/2026, 11:02:06 UTC
Last enriched: 09/19/2026, 11:16:30 UTC
Last updated: 09/19/2026, 22:12:52 UTC
Views: 12
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.