Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as administrator with Settings access
-
DeliverySubmit crafted Professional License key
-
ExploitInjected PHP rewrites config.php define() statement
-
ExecutionCode runs on next config.php include
-
ImpactPersistent RCE, full data and server compromise
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Input neutralization, injection prevention
|
| Exploitation Conditions | Requires a valid OpenCATS administrator-level account WITH Settings module access AND the specific permission to update the Professional License configuration (manageProfessional in SettingsUI), and config.php must be writable by the web server user - this write-based path fails if config.php is made read-only post-install. Exploitation is limited by the high privilege requirement (admin + Settings access); unauthenticated exploitation and exploitation by users without Settings access are explicitly not established by the vendor. No user interaction is needed beyond the attacker's own authenticated request. The only complete fix is upgrading to v0.10.0; restricting Settings access to trusted admins and making config.php read-only are partial mitigations the vendor states do not substitute for upgrading. |
| Impact | The CVSS 3.1 vector (AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H, base 7.2 High) describes a network-reachable, low-complexity flaw with full confidentiality, integrity and availability impact, but the PR:H metric is the decisive gate: exploitation requires an authenticated administrator with Settings-module access and permission to update the Professional License configuration, and config.php must be writable by the web server. This is therefore not a mass-exploitable perimeter bug but a privilege-dependent authenticated RCE. No EPSS probability and no CISA KEV entry are present in the supplied data, and no confirmed working exploit is listed - the references are the vendor advisory, fix PR, patch commit and release tag, i.e. remediation artifacts rather than exploit code. The vuln.today decision label is 'this_week', consistent with a serious but admin-gated issue rather than an emergency; the realistic risk is high against installations where multiple or lower-trust users hold admin/Settings rights, or where admin credentials can be phished or reused, and lower where admin access is tightly held. No signals conflict; the main limiter (high privilege) is confirmed by both the CVSS vector and the advisory text. |
| Exploit ScenarioDerived | An authenticated OpenCATS user with administrator-level Settings access (or an attacker who has obtained such credentials) submits a crafted Professional License key through the manageProfessional feature; the value is reconstructed into a PHP define() statement in config.php without safe escaping, breaking the file's syntax so attacker-controlled PHP is written in. Because the application includes config.php on every request, the injected code executes persistently with the web server process privileges. No public working exploit is identified at time of analysis; network vector and low attack complexity make the write trivial once the admin precondition is met. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Authenticated remote code execution in OpenCATS versions prior to 0.10.0 lets an administrator-level user with Settings-module access inject PHP syntax into config.php through the Professional License key field, producing persistent arbitrary code execution as the web server user. The flaw is gated by the PR:H metric in the CVSS 3.1 vector (AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H, base 7.2 High): the attacker must already hold an administrator account with permission to update the Professional License configuration, and config.php must be writable by the web server process for the write-based path to succeed. Successful exploitation gives full confidentiality, integrity and availability impact over candidate, contact, company, job order and user data, and the vendor states unauthenticated exploitation or exploitation by users without Settings access is not established; no public exploit code has been identified at time of analysis and the issue is fixed in v0.10.0.
RemediationAI
Upgrade to OpenCATS v0.10.0 or later (release tag https://github.com/opencats/OpenCATS/releases/tag/v0.10.0); this is the only complete fix, since v0.10.0 removes the Professional License configuration path, the LICENSE_KEY define in config.php, the settings.professional ACL entry and lib/License.php entirely, as shown in the fix commit e422abf3b75d467bdee65277f56e41dfba928fc8 and PR 802. Where upgrading is not immediately possible, the vendor lists two partial mitigations that each carry trade-offs: restrict access to the Settings module to highly trusted administrator accounts, which shrinks exposure but leaves the flaw intact for anyone who retains that access and requires ongoing account hygiene, and make config.php read-only to the web server user once configuration is complete, which blocks this write-based path but will break any legitimate in-application configuration change until write permission is temporarily restored. The vendor explicitly states there is no complete application-level workaround and that these measures are not a substitute for upgrading; administrators should also review file ownership and permissions on config.php as part of the rollout.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
OpenCATS is a PHP applicant tracking system that keeps its installation settings in a config.php file loaded on every request; that file historically contained a hard-coded define('LICENSE_KEY', ...) entry maintained by the Professional License screen in the Settings module (SettingsUI::manageProfessional). The configuration update helper rebuilt user-supplied license key input into a new PHP define() statement without safe escaping before rewriting config.php, which is a CWE-74 injection into a code-bearing configuration artifact and escalates to CWE-94 code injection because the resulting file is parsed and executed by PHP. Any crafted value that closes the string literal and adds attacker-controlled statements therefore becomes persistent PHP that runs with the web server process privileges on each subsequent include of config.php. The upstream fix in v0.10.0 removes the feature rather than escaping it: the LICENSE_KEY define, the 'settings.professional' ACL entry, the Professional License images, and the entire lib/License.php library are deleted, and the related Professional upsell strings in CommonErrors.php and InstallationTests.php are neutralized. The trigger conditions are explicitly documented by the vendor: an authenticated administrator with Settings module access and the license-update permission, plus a config.php writable by the web server user.
Know when Opencats 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:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
Reachable over the web (AV:N) with a simple config write (AC:L) but needing admin Settings privileges (PR:H) and no user interaction; PHP code execution yields full C:H/I:H/A:H within the same server authority (S:U).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
OpenCATS is an open-source applicant tracking system and recruitment CRM for staffing agencies and hiring teams. Prior to version 0.10.0, the Professional License configuration feature in SettingsUI (manageProfessional) accepts administrator-controlled license key input that is reconstructed into a PHP define() statement in config.php without safe escaping. Because the application includes config.php, crafted input can alter the file's PHP syntax and cause persistent arbitrary PHP execution with the web server process privileges. An authenticated administrator must have Settings module access and permission to update Professional License configuration, and config.php must be writable for this write-based path. Successful exploitation can read, modify or delete application data, expose candidate, contact, company, job order and user account information, alter the installation or configuration, and provide a foothold for further attacks. Unauthenticated exploitation and exploitation without Settings access are not established. This issue is fixed in version 0.10.0.
Executive ViewAI
OpenCATS, an open-source applicant tracking system, contains a high-severity vulnerability (CVE-2026-54453) that allows an authenticated administrator to inject and execute arbitrary PHP code on the server. This puts sensitive candidate, contact, company, job order, and user data at risk of unauthorized access, modification, or deletion. While exploitation requires high privileges, the potential impact on data confidentiality and integrity is significant, so security leadership should prioritize patching to prevent insider threats or compromised admin accounts from causing severe damage.
Apply vendor patch.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Remote code execution in OpenCATS installer allows unauthenticated attackers to inject and execute arbitrary PHP code by
OpenCATS v0.9.6 was discovered to contain a remote code execution (RCE) vulnerability via the getDataGridPager's ajax fu
OpenCATS through 0.9.6 allows remote attackers to execute arbitrary code by uploading an executable file via lib/FileUti
OpenCATS through 0.9.5-3 unsafely deserializes index.php?m=activity requests, leading to remote code execution. Rated cr
OpenCATS 0.9.4 contains a remote code execution vulnerability that allows unauthenticated attackers to execute arbitrary
SQL injection in OpenCATS through 0.9.7.4 allows authenticated users to extract arbitrary database contents by injecting
lib/DocumentToText.php in OpenCats before 0.9.4-3 has XXE that allows remote users to read files on the underlying opera
OpenCATS v0.9.6 was discovered to contain a SQL injection vulnerability via the importID parameter in the Import viewerr
OpenCATS v0.9.6 was discovered to contain a SQL injection vulnerability via the tag_id variable in the Tag deletion func
OpenCATS v0.9.6 was discovered to contain a SQL injection vulnerability via the entriesPerPage variable. Rated medium se
OpenCATS v0.9.6 was discovered to contain a SQL injection vulnerability via the tag_id variable in the Tag update functi
Improper neutralization of input during web page generation allows an unauthenticated attacker to submit malicious Javas
EUVD-2026-112515
NVD
CVE.org
GitHub
Exploit-DB