Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconScan for exposed installers
-
DeliverySend crafted POST to AJAX endpoint
-
ExploitInject PHP via quote breakout
-
InstallMalicious code written to config.php
-
C2Persistent execution on page loads
-
ExecuteRemote code execution as web server user
-
ImpactLateral movement or data exfiltration
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Code injection prevention, sandbox exec
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Installation wizard must remain incomplete and accessible - specifically, the /modules/install/ajax/ui.php endpoint must be reachable and the config.php file must be writable by the web server process. This creates a time-limited attack window during initial deployment or interrupted setup scenarios. The vulnerability does NOT affect completed installations where the installer has been properly finalized or removed. Network accessibility to the installer endpoints is required (AV:N), but no authentication is needed (PR:N). High attack complexity (AC:H) stems from the requirement to identify the narrow window when installations are in-progress rather than technical difficulty - the actual exploit technique is straightforward once the vulnerable state is located. Successful exploitation requires the web server to have write permissions to the application configuration directory, which is standard during installation but may be restricted in hardened environments. |
| Impact | Real-world risk is MODERATE-HIGH despite the 8.1 CVSS score due to conflicting attack complexity signals. CVSS vector shows AV:N/AC:H/PR:N/UI:N - network-accessible, no authentication required, but HIGH complexity. The AC:H rating accurately reflects that exploitation requires the installation wizard to be incomplete and accessible, creating a time-limited attack window during initial deployment rather than persistent exposure in production systems. Publicly available exploit code (chocapikk.com writeup) significantly lowers exploitation barriers for attackers who can identify exposed installers. However, the attack surface is constrained: only NEW installations or interrupted setups are vulnerable, not existing production deployments. EPSS data not provided, but the combination of public POC plus unauthenticated network vector suggests moderate exploitation probability against internet-exposed instances during setup. No CISA KEV listing indicates this is not yet seeing widespread active exploitation. Priority depends on deployment practices - organizations that expose installers to the internet or have lengthy setup procedures face higher risk. Automated scanning for incomplete OpenCATS installations is feasible, making this automatable once deployment is detected. |
| Exploit ScenarioDerived | An attacker discovers an internet-accessible OpenCATS instance with an incomplete installation by scanning for /modules/install/ paths. They craft a POST request to the installer's AJAX endpoint (/modules/install/ajax/ui.php) with a malicious databaseConnectivity action parameter containing a single quote to break out of the define() string context, followed by injected PHP code (e.g., web shell or reverse shell payload). The installer writes this malicious input directly into config.php without sanitization, persisting the code. On every subsequent page load, the injected PHP executes with web server privileges, granting the attacker persistent remote code execution to exfiltrate data, pivot to internal networks, or establish command-and-control infrastructure. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Apr 28, 2026
Remote code execution in OpenCATS installer allows unauthenticated attackers to inject and execute arbitrary PHP code by manipulating the AJAX endpoint's databaseConnectivity action parameter. The injected code persists in config.php and executes on every page load while the installation wizard remains incomplete. Publicly available exploit code demonstrates breakout from define() string context using quote and statement separator techniques. Patch available via GitHub commit 3002a29, though CVSS AC:H (high complexity) suggests exploitation requires specific timing or environmental conditions during installation phase.
RemediationAI
Upgrade to OpenCATS commit 3002a29f4c3cada1aa2c4f3d4ae4e189906606b6 or later, available via GitHub pull request #706 (https://github.com/opencats/OpenCATS/pull/706). Organizations should verify no tagged release version number has been published yet - apply the commit patch directly from the repository. Immediate compensating controls for systems that cannot be patched: (1) Complete the installation wizard fully on all OpenCATS instances to close the vulnerable AJAX endpoint access, noting this permanently removes the attack surface. (2) Restrict network access to installation paths (/modules/install/*) using web server rules or firewall ACLs, allowing only trusted admin IPs during setup - trade-off is operational overhead for distributed teams. (3) Delete or rename the /modules/install/ directory after completing installation, though this may complicate future reinstallation scenarios. (4) Monitor config.php for unexpected modifications or PHP code outside define() statements as breach indicator. For new deployments, complete installation in isolated network segments before internet exposure.
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 an open-source applicant tracking system built in PHP. This vulnerability (CWE-94: Improper Control of Generation of Code) exists in the installation wizard's AJAX endpoint (modules/install/ajax/ui.php), specifically in the databaseConnectivity action handler. The installer writes configuration values to config.php using PHP's define() function without proper input sanitization. Attackers exploit insufficient escaping in the CATSUtility.php configuration writer (lines 142-172) to inject PHP code. By sending crafted parameters containing single quotes and PHP statement separators (semicolons), attackers break out of the string context within define() calls and inject arbitrary PHP statements. The malicious code persists in the configuration file and executes server-side on every subsequent page request, achieving persistent remote code execution. The vulnerability only affects installations where the setup wizard has not been completed, creating a race condition window during deployment.
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
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Primary rating from Vendor (VulnCheck) · only source for this CVE.
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
5DescriptionCVE.org
OpenCATS prior to commit 3002a29 contains a PHP code injection vulnerability in the installer AJAX endpoint that allows unauthenticated attackers to execute arbitrary code by injecting PHP statements into the databaseConnectivity action parameter. Attackers can break out of the define() string context in config.php using a single quote and statement separator to inject malicious PHP code that persists and executes on every subsequent page load when the installation wizard remains incomplete.
Executive ViewAI
OpenCATS installer versions prior to patch commit 3002a29 contain a remote code execution vulnerability (CVE-2026-27760, CVSS 8.1) that allows unauthenticated attackers to execute arbitrary PHP code during the installation phase. Organizations deploying or testing OpenCATS are at immediate risk if the installation wizard is left incomplete, as injected malicious code persists and executes on every page load. This affects deployment security posture and could lead to complete system compromise before production launch.
Vendor-released patch: apply GitHub commit 3002a29 or later. Interim mitigations pending patch deployment: immediately complete or remove incomplete installation wizards; restrict network access to the installer directory (typically /install/) using firewall or web server rules; disable or remove the AJAX databaseConnectivity endpoint if installation is complete.
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
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
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
OpenCATS v0.9.6 was discovered to contain a reflected cross-site scripting (XSS) vulnerability via the email parameter i
EUVD-2026-26052
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB