/

CVE-2026-61651

Severity:

HIGH RISK

(8.3)

SQL Injection (CWE-89) in SuiteCRM Projects Controller

CVE-2026-61651

Undergoing Analysis

Vulnerability type

Category:

SQL Injection

CWE:

CWE-89

Impact:

Database disclosure

Severity:

HIGH RISK

(8.3)

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

SuiteCRM's Projects Controller builds a SQL query using an authenticated caller's task_id without parameterizing the value. A low-privileged user may exploit this blind SQL injection to enumerate the database schema and retrieve sensitive database contents.

SuiteCRM's Projects Controller builds a SQL query using an authenticated caller's task_id without parameterizing the value. A low-privileged user may exploit this blind SQL injection to enumerate the database schema and retrieve sensitive database contents.

Affected context

The issue occurs in the get_end_date action of the Projects Controller in affected SuiteCRM releases. It becomes risky when an authenticated user can provide a task_id value that is incorporated into a SQL query without safe parameter binding.

The issue occurs in the get_end_date action of the Projects Controller in affected SuiteCRM releases. It becomes risky when an authenticated user can provide a task_id value that is incorporated into a SQL query without safe parameter binding.

Exploit preconditions

  • Attack surface: The get_end_date action in the Projects Controller
  • Required access: An authenticated account; the description indicates that low-privileged users may be able to exploit the issue
  • Trigger point: Processing of the caller-provided task_id value
  • Why exploitation is possible: The value is concatenated into a SQL query rather than being handled as a parameter, allowing SQL injection and blind inference
  • Attack surface: The get_end_date action in the Projects Controller
  • Required access: An authenticated account; the description indicates that low-privileged users may be able to exploit the issue
  • Trigger point: Processing of the caller-provided task_id value
  • Why exploitation is possible: The value is concatenated into a SQL query rather than being handled as a parameter, allowing SQL injection and blind inference

Why this happens

The underlying bug is unsafe construction of a database query from caller-controlled input. Concatenating task_id into SQL without parameterization allows input to alter query behavior, which maps to CWE-89: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection').

The underlying bug is unsafe construction of a database query from caller-controlled input. Concatenating task_id into SQL without parameterization allows input to alter query behavior, which maps to CWE-89: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection').

Potential impact

  • An attacker may enumerate database schemas through blind SQL injection.
  • Database credentials and customer records could be exposed.
  • Other database contents may be read, potentially affecting confidentiality and privacy.
  • An attacker may enumerate database schemas through blind SQL injection.
  • Database credentials and customer records could be exposed.
  • Other database contents may be read, potentially affecting confidentiality and privacy.

General mitigation guidance

Common defensive patterns include:

  • Use parameterized queries or prepared statements for all caller-controlled values.
  • Treat identifiers and other request data as untrusted, even when submitted by authenticated users.
  • Apply strict type and range validation as a supplementary control, not as a replacement for parameterization.
  • Restrict database accounts to the minimum permissions required by the application.
  • Avoid exposing detailed database errors or behavior that could aid inference.

Common defensive patterns include:

  • Use parameterized queries or prepared statements for all caller-controlled values.
  • Treat identifiers and other request data as untrusted, even when submitted by authenticated users.
  • Apply strict type and range validation as a supplementary control, not as a replacement for parameterization.
  • Restrict database accounts to the minimum permissions required by the application.
  • Avoid exposing detailed database errors or behavior that could aid inference.

How teams detect issues like this

  • Use static analysis to identify SQL statements built through string concatenation with request-derived values.
  • Review controller actions and data-access code for queries that interpolate user-controlled identifiers.
  • Enforce code-review and CI policies requiring parameterized database access.
  • Monitor for unusual query patterns, repeated requests, or database access inconsistent with normal application behavior.
  • Automated security review tools can help flag unsafe query construction for human review.
  • Use static analysis to identify SQL statements built through string concatenation with request-derived values.
  • Review controller actions and data-access code for queries that interpolate user-controlled identifiers.
  • Enforce code-review and CI policies requiring parameterized database access.
  • Monitor for unusual query patterns, repeated requests, or database access inconsistent with normal application behavior.
  • Automated security review tools can help flag unsafe query construction for human review.

Sources

SourceLink
github.comgithub.com/SuiteCRM/SuiteCRM-Core/commit/a11f50180d939f639cc468b5d536e8ad714dfb68
github.comgithub.com/SuiteCRM/SuiteCRM-Core/releases/tag/v8.10.2
github.comgithub.com/SuiteCRM/SuiteCRM/commit/d6bca97a0159ec019a969b86eca32affab3beb7c
github.comgithub.com/SuiteCRM/SuiteCRM/releases/tag/v7.15.2
github.comgithub.com/SuiteCRM/SuiteCRM/security/advisories/GHSA-7cj5-pc2f-9xgv

Frequently asked

questions

The described attack requires authentication, and the vulnerability may be reachable by a low-privileged user.

Blind SQL injection may allow schema enumeration and extraction of credentials, customer records, and other database contents.

Bind caller-provided values as parameters rather than concatenating them into SQL statements.

Use parameterized queries consistently, review database access code for unsafe string construction, and limit application database privileges.

The described attack requires authentication, and the vulnerability may be reachable by a low-privileged user.

Blind SQL injection may allow schema enumeration and extraction of credentials, customer records, and other database contents.

Bind caller-provided values as parameters rather than concatenating them into SQL statements.

Use parameterized queries consistently, review database access code for unsafe string construction, and limit application database privileges.

Find out what's already
exploitable in your codebase.