Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain access to backup-restore function
-
DeliveryEmbed .shell/.system/.load directive in SQLite dump
-
ExploitSubmit crafted backup for restore
-
Executionsqlite3 CLI interprets dot-command line
-
ImpactExecute arbitrary OS commands as application user
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK
2 techniques across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the ability to supply a malicious configuration backup that is then restored through CallBackery's restoreConfigBlob() routine; the backup's database dump must contain an sqlite3 dot-command (.shell or .system to run an OS command, or .load to load native code), which the sqlite3 command-line shell executes because it treats dot-prefixed lines as its own commands rather than SQL. Limiting factors: the target must run a vulnerable version (before 0.62.0); the attacker must be able to deliver a backup and trigger its restoration (typically an administrative/operator restore operation, despite the input vector's PR:N); no user interaction beyond the restore action is otherwise needed, and commands run only with the privileges of the application user. |
| Impact | This is a genuine high-severity issue (CVSS 8.4) but one whose real-world priority is tempered by its access requirements. The supplied CVSS 3.1 vector (AV:L/AC:L/PR:N/UI:N) describes a local, low-complexity, no-interaction flaw with full confidentiality, integrity and availability impact as the application user via OS command execution (CWE-78). However, the vector's PR:N conflicts with the description, which states exploitation requires 'anyone who can supply a backup to be restored' and runs through restoreConfigBlob() - a configuration-restore operation that in practice is an operator/administrative action rather than an anonymous one. Verify the true privilege requirement with the vendor, because PR:N materially overstates exposure if restore is gated behind authentication. No EPSS score, no CISA KEV listing, and no public exploit code were provided, so there is no public exploit identified at time of analysis; the only trigger evidence is the CPANSec/oss-security advisory describing the mechanism. The vuln.today decision label is 'this_week' (not act_now/emergency), consistent with a serious-but-not-actively-exploited defect in a niche product. Net assessment: legitimate code-execution bug worth patching promptly, but the absence of exploitation signals plus the restore-access precondition make it a this-week remediation item rather than a drop-everything emergency. |
| Exploit ScenarioDerived | An actor who can submit a configuration backup for restoration crafts a backup whose embedded SQLite dump contains a dot-command such as '.shell' or '.system'. When restoreConfigBlob() pipes that dump into the sqlite3 command-line shell, the shell interprets the dot-line and executes the embedded OS command as the application user. No public exploit code was identified; the mechanism is documented only in the advisory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
OS command execution in CallBackery for Perl before 0.62.0 allows an attacker who can supply a configuration backup to run arbitrary commands as the application user when that backup is restored. The restoreConfigBlob() routine pipes the backup's database dump into the sqlite3 command-line shell, which executes dot-prefixed lines such as .shell, .system and .load as its own instructions instead of treating them as SQL data. The assessed vector (CVSS 8.4, AV:N/AC:L/PR:L/UI:N) means delivery can occur over the network but the attacker must hold the privileges needed to submit a backup and trigger its restoration; no public exploit has been identified at time of analysis, and vendor release 0.62.0 provides the fix.
RemediationAI
Upgrade CallBackery to version 0.62.0 or later, which is the vendor-released fix; the change log is at https://metacpan.org/release/OETIKER/CallBackery-0.62.0/changes and the advisory is at https://seclists.org/oss-sec/2026/q4/451. Where the upgrade cannot be applied immediately, the practical compensating control follows directly from the assessed prerequisite: restrict the ability to submit and restore configuration backups to a small set of trusted operators, since an attacker must be able to deliver a backup and have restoreConfigBlob() process it, at the cost of removing the restore workflow for other users. Additionally, running the application under a low-privileged service account limits what .shell, .system and .load can achieve, because injected commands execute only with the application user's rights; the trade-off is that tightening that account's file and network permissions may break legitimate backup, database or integration functionality and must be validated before rollout.
Affected ProductsAI
CallBackery for Perl, all versions before 0.62.0, are affected; version 0.62.0 is the first fixed release per the vendor's change log at https://metacpan.org/release/OETIKER/CallBackery-0.62.0/changes. The vulnerable code path is restoreConfigBlob(), so exposure applies to deployments that use the configuration backup/restore feature and accept backups from parties other than fully trusted operators. The CVE tracks as EUVD-2026-113918 and was reported by CPANSec; the public advisory is at https://seclists.org/oss-sec/2026/q4/451, with the NVD entry at https://nvd.nist.gov/vuln/detail/CVE-2026-118992. No CPE strings were supplied with the source data, so exact platform and package identifiers beyond the Perl distribution name and the pre-0.62.0 version range are not confirmed.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
CallBackery is a Perl application framework that includes a configuration backup/restore facility. Its restoreConfigBlob() routine takes the database dump contained in a backup and feeds it to the sqlite3 command-line shell. That shell is not a pure SQL interpreter: any line beginning with a dot is treated as a shell meta-command. The .shell and .system meta-commands spawn operating-system commands, and .load loads a native shared library into the sqlite3 process, so a crafted dump achieves arbitrary code execution in the context of the application user. The root cause is CWE-78 (improper neutralization of special elements used in an OS command): untrusted backup content crosses a trust boundary into a component that interprets it as commands rather than as inert SQL. The vulnerable path is only reached when a backup is actually restored, and command impact is bounded by the privileges of the account under which the application runs; the trigger and delivery mechanism are described in the available sources, and the fix landed in release 0.62.0.
Know when Perl gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Restore is normally an authenticated operator action exposed via the web app, so PR:L and AV:N; dot-command injection is trivial (AC:L) and yields full command execution as the app user (C/I/A:H).
Primary rating from Vendor (CPANSec).
CVSS VectorVendor: CPANSec
Lifecycle Timeline
3DescriptionCVE.org
CallBackery versions before 0.62.0 for Perl allow OS command execution via sqlite3 shell commands in a restored configuration backup.
restoreConfigBlob() feeds the database dump in a backup to the sqlite3 command-line shell. The shell runs lines starting with a dot as its own commands, so .shell or .system in the dump runs an OS command and .load loads native code.
Anyone who can supply a backup to be restored can run arbitrary commands as the application user.
Executive ViewAI
CVE-2026-118992 in CallBackery for Perl (before 0.62.0) enables OS command execution when an attacker with backup submission and restore privileges supplies a malicious configuration backup. This requires authenticated access but can lead to full compromise of the application user's environment, affecting any organization using the affected versions for backup and restore operations.
Vendor-released patch: 0.62.0
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
The _compile function in Maketext.pm in the Locale::Maketext implementation in Perl before 5.17.7 does not properly hand
Stack-based buffer overflow in the CPerlHost::Add method in win32/perlhost.h in Perl before 5.24.3-RC1 and 5.26.x before
The VDir::MapPathA and VDir::MapPathW functions in Perl 5.22 allow remote attackers to cause a denial of service (out-of
Perl before 5.26.3 has a buffer overflow via a crafted regular expression that triggers invalid write operations. Rated
Perl before 5.26.3 and 5.28.0 before 5.28.1 has a buffer overflow via a crafted regular expression that triggers invalid
Silently incorrect regular-expression matching in the Perl interpreter (all versions through 5.43.9) lets an oversized a
Perl before 5.26.3 has a buffer over-read via a crafted regular expression that triggers disclosure of sensitive informa
Perl might allow context-dependent attackers to bypass the taint protection mechanism in a child process via duplicate e
CPAN.pm before 2.35 does not verify TLS certificates when downloading distributions over HTTPS. Rated high severity (CVS
The XSLoader::load method in XSLoader in Perl does not properly locate .so files when called in a string eval, which mig
In Perl through 5.26.2, the Archive::Tar module allows remote attackers to bypass a directory-traversal protection mecha
Perl before 5.30.3 on 32-bit platforms allows a heap-based buffer overflow because nested regular expression quantifiers
EUVD-2026-113918
GHSA-w32m-6wp6-8542
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB