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 = DB
Casky was already ahead
This CVE exploits attack patterns that Casky's 0matched skills already investigate — long before this vulnerability was disclosed. Claude's reasoning model maps these techniques to MITRE ATT&CK, so practitioners who ran these skills have already seen the threat behaviour in their findings.
CVE-2026-78030 is a critical arbitrary code execution vulnerability in Perl's DBI module versions before 1.653, specifically in the DBD::DBM database driver. The flaw exists in how DBD::DBM handles the dbm_type and dbm_mldbm connect attributes, passing them directly to Perl's require function without validation. This allows attackers to specify arbitrary module paths that Perl will load and execute, effectively achieving remote code execution on any system using vulnerable DBI versions to connect to databases. The vulnerability affects any application or service built with Perl that uses DBI for database connectivity, making this a wide-reaching threat to legacy systems, system administration tools, and web applications built on Perl frameworks.
While Casky currently shows zero matching skills for this specific CVE, the attack pattern underlying this vulnerability falls within reconnaissance and code execution behaviors that practitioners should monitor. An attacker would need to control or influence database connection parameters—a scenario that maps to T1566 (Phishing) if delivered via social engineering of connection strings, or T1190 (Exploit Public-Facing Application) if the vulnerable DBI instance is exposed through a web interface. Detection would focus on unusual module loading attempts, suspicious require() calls with path traversal patterns, and unexpected process spawning from Perl interpreters. Practitioners using Casky should create custom detection rules monitoring for dbm_type and dbm_mldbm attribute usage patterns, unexpected file access from DBI processes, and any Perl process execution of non-standard modules—particularly those loaded from unexpected filesystem locations rather than standard @INC paths.
Composite risk scoring from EPSS, CISA KEV, Shodan, and GreyNoise — 21 security APIs correlated into a single Casky Risk Score. Coming in Casky Pro. Join early access →
Casky has 0 skills that investigate the attack patterns behind CVE-2026-78030. Run one and get CVSS-scored findings in 3 minutes.
Run the skill that detects this →© 2026 Casky.AI, Inc. · AI Security Investigation