/

CVE-2026-54455

Severity:

HIGH RISK

(7.6)

SQL Injection (CWE-89) in OpenCATS Activity DataGrid

CVE-2026-54455

Deferred

Vulnerability type

Category:

SQL Injection

CWE:

CWE-20, CWE-89

Impact:

Unauthorized Database Access and Sensitive Data Exposure

Severity:

HIGH RISK

(7.6)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

OpenCATS contains a SQL injection vulnerability in activity DataGrid date filtering because request-controlled parameters are insufficiently validated and safely escaped. An authenticated user with access to the affected endpoints may alter database queries to read sensitive recruitment, account, contact, company, job-order, and activity data.

OpenCATS contains a SQL injection vulnerability in activity DataGrid date filtering because request-controlled parameters are insufficiently validated and safely escaped. An authenticated user with access to the affected endpoints may alter database queries to read sensitive recruitment, account, contact, company, job-order, and activity data.

Affected context

The issue occurs in OpenCATS deployments before version 0.10.0 when the home:CallsDataGrid or activity:ActivityDataGrid components process user-controlled period, startDate, and endDate parameters. Risk is present where these values influence SQL generation without strong validation, parameterization, or escaping, and where an authenticated user can reach the affected DataGrid endpoints.

The issue occurs in OpenCATS deployments before version 0.10.0 when the home:CallsDataGrid or activity:ActivityDataGrid components process user-controlled period, startDate, and endDate parameters. Risk is present where these values influence SQL generation without strong validation, parameterization, or escaping, and where an authenticated user can reach the affected DataGrid endpoints.

Exploit preconditions

  • Attack surface: OpenCATS activity and calls DataGrid endpoints
  • Required access: A valid authenticated OpenCATS account with access to the affected views
  • Trigger point: Processing of request-controlled date-filtering parameters
  • Why exploitation is possible: User-supplied values can influence SQL string comparisons and generated query logic without sufficient input validation or safe query binding
  • Attack surface: OpenCATS activity and calls DataGrid endpoints
  • Required access: A valid authenticated OpenCATS account with access to the affected views
  • Trigger point: Processing of request-controlled date-filtering parameters
  • Why exploitation is possible: User-supplied values can influence SQL string comparisons and generated query logic without sufficient input validation or safe query binding

Why this happens

The vulnerability results from constructing SQL statements with request-controlled values that are not safely separated from query syntax. Directly incorporating startDate, endDate, or related filtering logic into SQL can allow input to alter the intended query structure. This maps primarily to CWE-89: Improper Neutralization of Special Elements used in an SQL Command (SQL Injection), with insufficient input validation also relating to CWE-20.

The vulnerability results from constructing SQL statements with request-controlled values that are not safely separated from query syntax. Directly incorporating startDate, endDate, or related filtering logic into SQL can allow input to alter the intended query structure. This maps primarily to CWE-89: Improper Neutralization of Special Elements used in an SQL Command (SQL Injection), with insufficient input validation also relating to CWE-20.

Potential impact

  • An attacker may read sensitive database contents
  • Candidate records and contact details could be exposed
  • User account, company, job-order, and activity-history data could be disclosed
  • Database queries may return information outside the user's intended scope
  • Further data access or modification could be possible depending on database permissions
  • An attacker may read sensitive database contents
  • Candidate records and contact details could be exposed
  • User account, company, job-order, and activity-history data could be disclosed
  • Database queries may return information outside the user's intended scope
  • Further data access or modification could be possible depending on database permissions

General mitigation guidance

Mitigation generally focuses on ensuring that request parameters cannot become SQL syntax.

Common defensive patterns include:

  • Use parameterized queries or prepared statements for every user-controlled value
  • Apply allowlist validation for date formats, permitted periods, and supported filter values
  • Keep query construction separate from request parsing and business logic
  • Use secure-by-default data-access abstractions that bind parameters automatically
  • Restrict database accounts to the minimum permissions required by the application
  • Apply authorization checks to ensure returned records match the user's permitted scope
  • Reduce trust in client-provided filters by deriving allowable ranges and identities server-side

Mitigation generally focuses on ensuring that request parameters cannot become SQL syntax.

Common defensive patterns include:

  • Use parameterized queries or prepared statements for every user-controlled value
  • Apply allowlist validation for date formats, permitted periods, and supported filter values
  • Keep query construction separate from request parsing and business logic
  • Use secure-by-default data-access abstractions that bind parameters automatically
  • Restrict database accounts to the minimum permissions required by the application
  • Apply authorization checks to ensure returned records match the user's permitted scope
  • Reduce trust in client-provided filters by deriving allowable ranges and identities server-side

How teams detect issues like this

Organizations can identify related weaknesses through:

  • Static analysis rules for SQL string concatenation involving request parameters
  • Code review of DataGrid handlers and dynamic filtering functions
  • Searches for unparameterized query APIs, interpolated SQL, and manual escaping
  • Dynamic testing with benign invalid or boundary filter values to verify strict validation
  • Database monitoring for abnormal query patterns, broad result sets, or unexpected filtering behavior
  • Policy enforcement requiring prepared statements and approved data-access libraries

Automated code review and application-security testing tools can help surface unsafe query construction during development.

Organizations can identify related weaknesses through:

  • Static analysis rules for SQL string concatenation involving request parameters
  • Code review of DataGrid handlers and dynamic filtering functions
  • Searches for unparameterized query APIs, interpolated SQL, and manual escaping
  • Dynamic testing with benign invalid or boundary filter values to verify strict validation
  • Database monitoring for abnormal query patterns, broad result sets, or unexpected filtering behavior
  • Policy enforcement requiring prepared statements and approved data-access libraries

Automated code review and application-security testing tools can help surface unsafe query construction during development.

Sources

SourceLink
github.comgithub.com/opencats/OpenCATS/commit/814542d9c87770ab967e24e4be6d20a64255b337
github.comgithub.com/opencats/OpenCATS/security/advisories/GHSA-cp24-hjrx-2pm5
github.comgithub.com/opencats/OpenCATS/tree/v0.10.0

Frequently asked

questions

It may be exploitable through the OpenCATS web application by an authenticated user who can access the affected DataGrid endpoints. Unauthenticated exploitation has not been established.

The attacker needs a valid OpenCATS login and sufficient authorization to reach the vulnerable calls or activity DataGrid functionality.

Use parameterized queries or prepared statements, validate filter values against strict allowlists, and avoid incorporating request data directly into SQL syntax.

Combine secure data-access APIs, server-side authorization, strict input validation, least-privilege database permissions, and code review rules that prohibit dynamic SQL concatenation.

It may be exploitable through the OpenCATS web application by an authenticated user who can access the affected DataGrid endpoints. Unauthenticated exploitation has not been established.

The attacker needs a valid OpenCATS login and sufficient authorization to reach the vulnerable calls or activity DataGrid functionality.

Use parameterized queries or prepared statements, validate filter values against strict allowlists, and avoid incorporating request data directly into SQL syntax.

Combine secure data-access APIs, server-side authorization, strict input validation, least-privilege database permissions, and code review rules that prohibit dynamic SQL concatenation.

Find out what's already
exploitable in your codebase.