Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as READ-level OpenCATS user
-
ExploitRequest import module revert action with importID
-
ExecutionReach unguarded ImportUI::handleRequest()
-
ImpactMass-delete imported candidate/company/contact records
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated OpenCATS account with at least READ-level access (PR:L) and network reachability to the web interface; the attacker invokes the import module's revert/rollback action with a valid importID, which ImportUI::handleRequest() processes without verifying the user holds ACCESS_LEVEL_EDIT. Exploitation is limited by the need for valid (even if low-privilege) credentials, the pre-existence of prior data imports to roll back, and a vulnerable version before 0.10.0; no administrative rights, user interaction, or non-default configuration is needed, making it a straightforward privilege-abuse path for any low-trust account. |
| Impact | This is a genuine but moderate-severity authorization flaw, not a critical priority. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) confirms a network-reachable, low-complexity attack requiring low privileges (PR:L) - consistent with the description's 'low-privileged authenticated users' with READ-level access, so this is an insider/privilege-abuse issue rather than a remote-unauthenticated breach. Impact is constrained: VC:N (no confidentiality loss) with only VI:L/VA:L reflecting the ability to mass-delete imported candidate, company, and contact records (a bounded integrity/availability hit, not full system compromise), which is why the base score sits at 5.3 (medium). No EPSS score, KEV listing, or POC was provided in the intelligence set, so there is no signal of active or imminent exploitation; the fix is a single missing access-level check (CWE-862), which is trivial to understand from the public patch and could aid an attacker who already has an account. Net: real-world risk is driven by the trust model of a given OpenCATS deployment (how many low-trust READ users exist), not by mass internet exploitation - prioritize patching where untrusted or numerous low-privilege accounts exist, but it does not warrant emergency treatment absent exploitation evidence. |
| Exploit ScenarioDerived | A disgruntled or compromised low-privilege OpenCATS user holding only READ-level access directly requests the import module's revert action, supplying an importID, because ImportUI::handleRequest() never checks the caller's access level. The rollback executes and mass-deletes the candidate, company, and contact records tied to that import, causing data loss across the recruiting database. No public exploit code was identified at time of analysis, but the fix is a one-line authorization check visible in the vendor patch. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 20, 2026
Missing authorization in the import module of OpenCATS (all versions before 0.10.0) allows any authenticated user holding only READ-level access to invoke the import revert action and mass-delete previously imported candidate, company, and contact records. Exploitation requires valid low-privilege credentials, network access to the web interface, and the existence of a prior import whose importID can be supplied; no administrative rights or user interaction are needed. The vendor has released 0.10.0 with an access-level check in ImportUI::handleRequest(); no public exploit code was identified at time of analysis and the issue is not in CISA KEV.
RemediationAI
Upgrade to OpenCATS 0.10.0 or later, which enforces an ACCESS_LEVEL_EDIT requirement on the import module inside ImportUI::handleRequest(); the change is available as release v0.10.0 and commit aa3b414c3672f5010ca26c44192aa8e72d3735bd. Because the same commit also fixes related missing authorization checks in calendar, lists, contacts activity AJAX, and email settings endpoints, applying the full release rather than cherry-picking a single file is strongly preferable. If immediate upgrade is not possible, remove the import/revert capability from low-privilege roles so that only EDIT-level users can reach the import module, and add a web-server or reverse-proxy rule restricting requests to the import module's revert action (identified by importID) to trusted administrative source addresses - the trade-off is that legitimate low-privilege import workflows stop working and administrative access becomes location-bound. Operators should also review recent import and audit logs for unexpected rollback activity and restore affected candidate, company, and contact records from backups; note that restoring from backup may re-introduce other post-backup changes, so reconcile carefully.
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/MySQL applicant tracking system whose UI layer routes actions through per-module controller classes such as ImportUI. In vulnerable builds, ImportUI::handleRequest() dispatched the import module's revert/rollback action (identified by an importID parameter) without calling the framework's access-level helper, so the permission gate that normally distinguishes READ from EDIT was never consulted. This is CWE-862 (Missing Authorization): the functionality exists and the identity of the caller is known, but no check confirms the caller is entitled to perform the destructive operation. The upstream fix in commit aa3b414 adds a guard rejecting callers whose getUserAccessLevel('import.import') is below ACCESS_LEVEL_EDIT, and the same commit hardens adjacent surfaces (calendar event edit/delete ownership checks, lists AJAX endpoints, activity edit/delete AJAX, testEmailSettings) that shared the same pattern. Per CPE data (cpe:2.3:a:opencats:opencats:*), the entire release history prior to 0.10.0 is in scope.
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:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N
Web-reachable action abusable by any authenticated READ-level user gives AV:N/AC:L/PR:L/UI:N; deletion of a subset of records yields I:L/A:L with no data disclosure (C:N).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
OpenCATS before 0.10.0 contains a missing authorization vulnerability in ImportUI::handleRequest() that allows low-privileged authenticated users to roll back data imports. Attackers with READ-level access can request the import module's revert action with an importID to mass-delete imported candidate, company, and contact records.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
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-104918
GHSA-p2pv-jqq4-q5gx
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB