CVE-2026-118993
Low risk· EPSS 5%Exploitation Probability (EPSS)
Low risk5th percentile - higher than 5% of all known CVEs
Summary
CallBackery versions before 0.62.0 for Perl allow denial of service via the request path interpolated as a regular expression under CGI, FastCGI and PSGI. The before_dispatch hook removes PATH_INFO from the request URI with a substitution that interpolates PATH_INFO unquoted, so the client chooses both the pattern and the matched string.
Risk Assessment
A short unauthenticated request with a backreference in the path can keep a worker process busy for minutes.
Recommendation
Update CallBackery to version 0.62.0 or later.
Other vulnerabilities in CallBackery
See all- CVE-2026-118987Low risk· EPSS 5%
CallBackery versions before 0.62.0 for Perl accept session cookies of any age sent in the X-Session-Cookie header. The cookieConf() function rejects a cookie older than 300 seconds only when it arrives in the xsc query parameter; the same cookie sent in the X-Session-Cookie header is accepted regardless of age.
- CVE-2026-118986Low risk· EPSS 5%
CallBackery versions before 0.62.0 for Perl allow session cookie forgery due to a signing secret generated with rand(). The secret is built from two calls to the built-in rand(), seeded with 32 bits, so it has at most 2^32 possible values, and one signed cookie is enough to test each candidate offline.
- CVE-2026-13576Low risk· EPSS 1%
CallBackery versions before 0.62.0 for Perl store user passwords as unsalted HMAC-SHA1 hashes. Passwords are hashed with hmac_sha1_sum() from Mojo::Util with no key, no salt and no work factor, so equal passwords give equal hashes and guessing is fast.
- CVE-2026-118996Low risk· EPSS 5%
CallBackery versions before 0.62.0 for Perl send users their own password hash and the admin-only user note via getUserConfig. getUserConfig() returns the caller's whole cbuser row, and getTableData() and getAllFieldValues() also return the note to users without the admin right.
- CVE-2026-118995Low risk· EPSS 25%
CallBackery versions before 0.62.0 for Perl accept unintended values in form fields checked by createRxValidator. The function builds /^${rx}$/ without grouping the pattern, so an alternation such as yes|no accepts any value starting with yes or ending with no, and $ also accepts a value with one trailing newline.
- CVE-2026-118994Low risk· EPSS 11%
CallBackery versions before 0.62.0 for Perl allow log injection via newlines in the login name. login() writes the login name to the application log without escaping control characters, and the login RPC method needs no authentication.
- CVE-2026-118992High
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 to the sqlite3 command-line shell, which runs lines starting with a dot as its own commands, so .shell or .system runs an OS command and .load loads native code.
- CVE-2026-118991Low risk· EPSS 1%
In CallBackery versions before 0.62.0 for Perl, configuration backups are encrypted with an AES key formed by padding the password with "x" characters and truncating to 32 bytes, with no salt and no key derivation. The first block of a backup holds a 16 hex digit length field, so decrypting one block confirms a password guess at raw AES speed.
- CVE-2026-118990Low risk· EPSS 5%
In CallBackery versions before 0.62.0 for Perl, taking a configuration backup leaves a world-readable dump of the configuration database in /tmp. getConfigBlob() has the sqlite3 shell write the dump to /tmp/cbdump<pid> and never removes it; the file takes the process umask, and a symlink planted at that predictable name is followed.
- CVE-2026-118988Low risk· EPSS 15%
In CallBackery versions before 0.60.1 for Perl, unauthenticated clients can read the POD of any file via path traversal in the /doc route. The route passes the requested name to Pod::Simple::Search->find without validation, and find splits the name on "::" and joins the parts into a file path, so a name such as "..::..::..::etc::motd" escapes @INC.
Original NVD description (English source)
CallBackery versions before 0.62.0 for Perl allow denial of service via the request path interpolated as a regular expression under CGI, FastCGI and PSGI. The before_dispatch hook installed by startup() removes PATH_INFO from the end of the request URI with a substitution that interpolates PATH_INFO unquoted. Under CGI, FastCGI and PSGI both values come from the request, so the client chooses both the pattern and the string it is matched against. A short unauthenticated request with a backreference in the path backtracks exponentially and can keep a worker process busy for minutes.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

