Skip to main content

OpenCATS EUVDEUVD-2026-112509

| CVE-2026-54455 HIGH
Improper Input Validation (CWE-20)
2026-10-28 GitHub_M
7.6
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate with valid OpenCATS login
  2. Exploit
    Open home or activity DataGrid endpoint
  3. Execution
    Inject SQL via period/startDate/endDate filter
  4. Impact
    Exfiltrate sensitive database records

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
Exploitation Conditions

Exploitation requires a valid, authenticated OpenCATS session (PR:L) with access to the home Calls DataGrid (home:CallsDataGrid) or activity DataGrid (activity:ActivityDataGrid) endpoints; the attacker must supply manipulated period, startDate, or endDate parameters in the DataGrid request payload, which are inserted into SQL date comparisons in modules/home/dataGrids.php and modules/activity/dataGrids.php without safe escaping. Limiting factors: authentication is mandatory and unauthenticated exploitation is not established, and exposure can be reduced (but not eliminated) by restricting the affected DataGrid views to trusted users; per the vendor, upgrading to v0.10.0 is the only complete fix. All versions prior to 0.10.0 (packagist opencats/opencats <= 0.9.7.4) are affected.

Impact

This is a genuine but moderate-priority issue, not an emergency. The vendor-confirmed signals are consistent: CVSS 3.1 7.6 (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L) describes a network-reachable, low-complexity SQL injection that requires authentication (PR:L), and the GHSA advisory corroborates that a valid OpenCATS login is mandatory and unauthenticated exploitation is not established. The vuln.today decision label is 'this_week' rather than act_now/emergency, which aligns with the authenticated prerequisite. No EPSS score, no CISA KEV listing, and no public exploit code are present in the input - the only references are the GHSA advisory, the fix commit, and the v0.10.0 release tag, so there is no evidence of in-the-wild activity. One data discrepancy worth noting: NVD/input assigns CWE-20 (improper input validation), while the GHSA advisory assigns CWE-89 (SQL injection) and titles the issue explicitly as authenticated SQL injection - the GHSA classification is the more precise root cause and is confirmed by the code diff. Net: a real, confirmed vulnerability whose practical risk is bounded by the authentication requirement and the niche deployment footprint of OpenCATS, warranting prompt patching but not crisis handling.

Exploit ScenarioDerived

An attacker who already holds a valid OpenCATS account (for example a low-privilege recruiter login, or a compromised staff credential) opens the home Calls DataGrid or the activity DataGrid and submits crafted period, startDate, or endDate filter values that break out of the intended date comparison. Because these values are concatenated into the SQL date filter without escaping, the attacker rewrites the query to read data beyond their normal view - user accounts, candidate records, contacts, company data, job orders, and activity history. No public exploit code is identified at time of analysis, but the fix commit publicly reveals the exact vulnerable parameters and sink.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 28, 2026

Authenticated SQL injection in OpenCATS prior to 0.10.0 lets any logged-in user who can reach the home Calls DataGrid (home:CallsDataGrid) or activity DataGrid (activity:ActivityDataGrid) rewrite the date-filter SQL and read data beyond their intended scope, including user accounts, candidate records, contacts, company records, job orders and activity history. The flaw sits in the request-controlled period, startDate and endDate parameters, which are concatenated into SQL date comparisons in modules/home/dataGrids.php and modules/activity/dataGrids.php without validation or escaping; a valid OpenCATS login is required and unauthenticated exploitation is not established. The confidentiality impact dominates (the data exposure is the practical harm), and no public exploit code was identified at time of analysis; the vendor-released patch is OpenCATS 0.10.0.

RemediationAI

Vendor-released patch: OpenCATS 0.10.0 (Packagist opencats/opencats 0.10.0) - upgrade all instances running 0.9.7.4 or earlier, applying the fix commit 814542d9c87770ab967e24e4be6d20a64255b337 as shipped in the v0.10.0 release (https://github.com/opencats/OpenCATS/releases/tag/v0.10.0), with details in advisory GHSA-cp24-hjrx-2pm5. Per the vendor there is no complete application-level workaround short of upgrading; the only stated temporary mitigation is to restrict access to the affected DataGrid views (home:CallsDataGrid and activity:ActivityDataGrid) to trusted users, which reduces exposure but does not remove the vulnerability for users who retain access, and it does not address the underlying missing validation and escaping.

Affected VersionsENISA

OpenCATS < 0.10.0

Affected Packages

euvd opencats fix: 0.10.0

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 and recruitment CRM built on a MySQL backend, where list views are rendered by DataGrid classes that assemble SQL WHERE fragments from request payloads. In the affected classes the activity date filter was built by direct string concatenation: the period value was appended as a raw SQL expression (the intended values being constructs such as DATE_SUB(CURDATE(), INTERVAL 1 WEEK)), so an attacker could substitute an arbitrary expression, while startDate and endDate were wrapped in single quotes but not escaped, permitting quote-breaking injection into the comparison against activity.date_occurred. The advisory classifies this as improper input validation (CWE-20) manifesting as SQL injection (CWE-89). The upstream fix in commit 814542d9c87770ab967e24e4be6d20a64255b337 replaces the period passthrough with an array_search against a fixed whitelist of four interval expressions, adds a private isValidDate() helper that enforces a strict YYYY-MM-DD pattern via preg_match plus checkdate() before either date is used, and routes accepted dates through the database layer's makeQueryString() escaping rather than manual quoting. The vulnerable sink is the DataGrid constructor in both modules, meaning the injection point is reached whenever a user loads the affected grid with crafted filter parameters; the trigger flow beyond that parameter handling is not described in the available sources.

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

Vendor (GitHub_M) PRIMARY 7.6 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L
vuln.today AI 6.5 MEDIUM

Authenticated (PR:L) network SQL injection in SELECT-side date filters yields broad read access (C:H); no evidence of write/stacked-query capability, so I:N/A:N.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
Low
Availability
Low

Lifecycle Timeline

2
Patch available
Oct 28, 2026 - 22:04 EUVD
CVE Published
Oct 28, 2026 - 21:45 cve.org
HIGH 7.6

DescriptionCVE.org

OpenCATS is an open-source applicant tracking system and recruitment CRM for staffing agencies and hiring teams. Prior to version 0.10.0, activity DataGrid date filtering in home:CallsDataGrid and activity:ActivityDataGrid uses request-controlled period, startDate and endDate parameters without sufficient validation or escaping. The vulnerable code is in modules/home/dataGrids.php and modules/activity/dataGrids.php. The startDate and endDate values are inserted into SQL string comparisons without safe escaping, and period can directly influence generated SQL. An authenticated user with access to the affected DataGrid endpoints can alter the intended query to access sensitive database contents, including user account data, candidate records, contact details, company information, job orders and activity history. A valid OpenCATS login is required; unauthenticated exploitation is not established. This issue is fixed in version 0.10.0.

Technical POC Analysis

Authenticated SQL injection (CWE-89; the advisory files it primarily under CWE-20, Improper Input Validation) in OpenCATS activity DataGrid date filtering.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

OpenCATS, a widely used open-source applicant tracking system, contains a high-severity SQL injection flaw (CVE-2026-54455) that allows any authenticated user-from recruiter to hiring manager-to bypass role-based restrictions and read the entire candidate and client database. This impacts the confidentiality of sensitive personal data (candidates, contacts, job orders) and may constitute a reportable data breach under GDPR or similar regulations; leadership should treat it as a privacy and compliance risk.

Business Impact: High
Compensating Controls

Apply vendor patch (OpenCATS 0.10.0).

Threat Intelligence Overview

Prevalence
Low
niche open-source applicant-tracking system for staffing agencies, limited footprint
Social Media
1
Sightings
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2026-27760 CRITICAL POC
9.2 Apr 28

Remote code execution in OpenCATS installer allows unauthenticated attackers to inject and execute arbitrary PHP code by

CVE-2022-43019 CRITICAL POC
9.8 Oct 19

OpenCATS v0.9.6 was discovered to contain a remote code execution (RCE) vulnerability via the getDataGridPager's ajax fu

CVE-2021-41560 CRITICAL POC
9.8 Dec 15

OpenCATS through 0.9.6 allows remote attackers to execute arbitrary code by uploading an executable file via lib/FileUti

CVE-2021-25294 CRITICAL POC
9.8 Jan 18

OpenCATS through 0.9.5-3 unsafely deserializes index.php?m=activity requests, leading to remote code execution. Rated cr

CVE-2021-47936 CRITICAL POC
9.3 May 10

OpenCATS 0.9.4 contains a remote code execution vulnerability that allows unauthenticated attackers to execute arbitrary

CVE-2026-49489 HIGH POC
8.4 May 31

SQL injection in OpenCATS through 0.9.7.4 allows authenticated users to extract arbitrary database contents by injecting

CVE-2019-13358 HIGH POC
7.5 Jul 05

lib/DocumentToText.php in OpenCats before 0.9.4-3 has XXE that allows remote users to read files on the underlying opera

CVE-2022-43023 MEDIUM POC
6.5 Oct 19

OpenCATS v0.9.6 was discovered to contain a SQL injection vulnerability via the importID parameter in the Import viewerr

CVE-2022-43022 MEDIUM POC
6.5 Oct 19

OpenCATS v0.9.6 was discovered to contain a SQL injection vulnerability via the tag_id variable in the Tag deletion func

CVE-2022-43021 MEDIUM POC
6.5 Oct 19

OpenCATS v0.9.6 was discovered to contain a SQL injection vulnerability via the entriesPerPage variable. Rated medium se

CVE-2022-43020 MEDIUM POC
6.5 Oct 19

OpenCATS v0.9.6 was discovered to contain a SQL injection vulnerability via the tag_id variable in the Tag update functi

CVE-2023-27293 MEDIUM POC
6.1 Feb 28

Improper neutralization of input during web page generation allows an unauthenticated attacker to submit malicious Javas

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy