SuiteCRM vulnerable to Authenticated SQL Injection via unsanitized field_function in Report Fields
SuiteCRM is an open-source, enterprise-ready Customer Relationship Management (CRM) software application. Prior to versions 7.15.1 and 8.9.3, when creating or editing a report (AOR_Reports module), the `field_function` parameter from POST data is saved directly into the `aor_fields` table without any validation. Later, when the report is executed/viewed, this value is concatenated directly into a SQL SELECT query without sanitization, enabling second-order SQL injection. Any authenticated user with Reports access can extract arbitrary database contents (password hashes, API tokens, config values). On MySQL with FILE privilege, this could lead to RCE via SELECT INTO OUTFILE. Versions 7.15.1 and 8.9.3 patch the issue.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-29096
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 2 Nov 2026, 18:13 UTC · Revision 1
Source evidence
SuiteCRM vulnerable to Authenticated SQL Injection via unsanitized field_function in Report Fields
core-osv · Original sourcePublished 19 Mar 2026, 22:37 UTC
SuiteCRM is an open-source, enterprise-ready Customer Relationship Management (CRM) software application. Prior to versions 7.15.1 and 8.9.3, when creating or editing a report (AOR_Reports module), the `field_function` parameter from POST data is saved directly into the `aor_fields` table without any validation. Later, when the report is executed/viewed, this value is concatenated directly into a SQL SELECT query without sanitization, enabling second-order SQL injection. Any authenticated user with Reports access can extract arbitrary database contents (password hashes, API tokens, config values). On MySQL with FILE privilege, this could lead to RCE via SELECT INTO OUTFILE. Versions 7.15.1 and 8.9.3 patch the issue.
osv:CVE-2026-29096
Complete source record
{
"id": "29227c9440af18106ec909e661030b96f4e45282bc3884080385689758550f56",
"url": "https://osv.dev/vulnerability/CVE-2026-29096",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "SuiteCRM vulnerable to Authenticated SQL Injection via unsanitized field_function in Report Fields",
"summary": "SuiteCRM is an open-source, enterprise-ready Customer Relationship Management (CRM) software application. Prior to versions 7.15.1 and 8.9.3, when creating or editing a report (AOR_Reports module), the `field_function` parameter from POST data is saved directly into the `aor_fields` table without any validation. Later, when the report is executed/viewed, this value is concatenated directly into a SQL SELECT query without sanitization, enabling second-order SQL injection. Any authenticated user with Reports access can extract arbitrary database contents (password hashes, API tokens, config values). On MySQL with FILE privilege, this could lead to RCE via SELECT INTO OUTFILE. Versions 7.15.1 and 8.9.3 patch the issue.",
"evidence": "osv:CVE-2026-29096",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2026-29096",
"aliases": [
"CVE-2026-29096",
"GHSA-vh42-gmqm-q55m"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/suitecrm/suitecrm",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "7f2b384db8531c735b72abc87b65202f9713bfa6"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "7.15.1"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"cpe": "cpe:2.3:a:suitecrm:suitecrm:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "7.15.1"
}
],
"source": "CPE_RANGE"
}
]
}
}
],
"versions": [
"v7.14.8",
"v7.15.0",
"v7.14.7",
"v7.14.6",
"v7.14.5",
"v7.14.4",
"v7.14.3",
"v7.14.2",
"v7.14.1",
"v7.14.0",
"v7.14.0-beta",
"v7.13.4",
"v7.13.3",
"v7.13.2",
"v7.13.1",
"v7.13.0",
"v7.12.8",
"v7.13.0-beta",
"v7.12.7",
"v7.12.6",
"v7.12.5",
"v7.12.4",
"v7.12.3",
"v7.12.2",
"v7.12.1",
"v7.12.0",
"v7.12-rc",
"v7.11.18",
"v7.11.17",
"v7.11.16",
"v7.11.15",
"v7.11.14",
"v7.11.13",
"v7.11.12",
"v7.11.11",
"v7.11.8",
"v7.11.7",
"v7.11.6",
"v7.11.5",
"v7.11.4",
"v7.11.3",
"v7.11.2",
"v7.10.12",
"v7.11.1",
"v7.11.0",
"v7.10.11",
"v7.10.10",
"v7.10.5",
"v7.10.7",
"v7.10.4",
"v7.10.6",
"v7.10.1",
"v7.10.3",
"v7.10.2",
"v7.10.0",
"v7.9.14",
"v7.9.13",
"v7.9.12",
"v7.9.11",
"v.7.9.11",
"v7.9.10",
"v7.9.8",
"v7.9.4",
"7.9.6",
"v7.9.5",
"v7.9.3",
"v7.9.1",
"v7.9.0",
"v7.9.0-rc",
"v7.9.0-beta",
"v7.8.2",
"v7.8.1",
"v7.8.0",
"v7.8.0-rc",
"v7.8.0-beta.2",
"v7.8.0-beta",
"v7.7.4",
"v7.7.3",
"v7.7.2",
"v7.7",
"v7.7-rc2",
"v7.7-rc",
"v7.7-beta2",
"v7.7-beta1",
"v7.6.1",
"v7.6",
"v7.5.1",
"v7.5-beta.2",
"v7.4.3",
"v7.5-beta",
"v7.4.1",
"v7.4.2",
"v7.3.2",
"v7.3.1",
"v7.3",
"v7.3-beta",
"v7.2",
"v7.2.1",
"v7.1.3",
"v7.2beta2",
"v7.1.4",
"v7.2beta",
"v7.1.2",
"v7.1.1",
"v7.1",
"v7.0.2"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-29096.json"
}
}
],
"modified": "2026-10-28T02:30:22.076356875Z",
"provider": "osv",
"references": [
"https://docs.suitecrm.com/admin/releases/7.15.x",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/29xxx/CVE-2026-29096.json",
"https://github.com/SuiteCRM/SuiteCRM/security/advisories/GHSA-vh42-gmqm-q55m",
"https://nvd.nist.gov/vuln/detail/CVE-2026-29096"
],
"provider_metadata": {
"cwe_ids": [
"CWE-89"
],
"cna_assigner": "GitHub_M",
"unresolved_ranges": [
{
"extracted_events": [
{
"range": [
{
"introduced": "8.0.0"
},
{
"fixed": "8.9.3"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
}
]
}
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/29xxx/CVE-2026-29096.json"
}
},
"related_cves": [
{
"value": "CVE-2026-29096",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 488188,
"published_at": "2026-03-19T22:37:51.208+00:00"
}