/

CVE-2026-61650

Severity:

HIGH RISK

(8.1)

Missing Edit Authorization (CWE-862) in SuiteCRM API

CVE-2026-61650

Undergoing Analysis

Vulnerability type

Category:

Missing Authorization

CWE:

CWE-862

Impact:

Unauthorized record modification and access-control changes

Severity:

HIGH RISK

(8.1)

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 relationship API can update a target record's foreign key after checking view and list permissions, without requiring edit permission. An authenticated low-privileged user who can reach the endpoint may reassign records or change security-relevant relationships they should not be able to modify.

SuiteCRM's relationship API can update a target record's foreign key after checking view and list permissions, without requiring edit permission. An authenticated low-privileged user who can reach the endpoint may reassign records or change security-relevant relationships they should not be able to modify.

Affected context

The issue occurs in the SuiteCRM API endpoint for creating relationships between modules: POST /Api/V8/module/{moduleName}/{id}/relationships/{linkFieldName}. It is relevant when a one-to-many relationship write changes a target record's foreign key, but the authorization check verifies only view and list permissions rather than the edit permission needed for that write.

The issue occurs in the SuiteCRM API endpoint for creating relationships between modules: POST /Api/V8/module/{moduleName}/{id}/relationships/{linkFieldName}. It is relevant when a one-to-many relationship write changes a target record's foreign key, but the authorization check verifies only view and list permissions rather than the edit permission needed for that write.

Exploit preconditions

  • Attack surface: The SuiteCRM V8 relationship API endpoint
  • Required access: An authenticated account with low privileges and sufficient view/list access for the relevant records or relationship
  • Trigger point: A one-to-many relationship request that writes a target record's foreign key
  • Why exploitation is possible: The endpoint does not enforce the required edit permission before changing the relationship
  • Attack surface: The SuiteCRM V8 relationship API endpoint
  • Required access: An authenticated account with low privileges and sufficient view/list access for the relevant records or relationship
  • Trigger point: A one-to-many relationship request that writes a target record's foreign key
  • Why exploitation is possible: The endpoint does not enforce the required edit permission before changing the relationship

Why this happens

The endpoint performs a sensitive record modification without checking the authorization required for that operation. This is an authorization enforcement failure mapped to CWE-862: Missing Authorization: permissions to view or list records are treated as sufficient for a write that requires edit access.

The endpoint performs a sensitive record modification without checking the authorization required for that operation. This is an authorization enforcement failure mapped to CWE-862: Missing Authorization: permissions to view or list records are treated as sufficient for a write that requires edit access.

Potential impact

  • A user may reassign records without the required edit permission
  • Ownership or other security-relevant relationships could be altered
  • Cross-user access may expand if relationship changes affect record visibility
  • Workflows or business processes could be manipulated through unauthorized relationship changes
  • A user may reassign records without the required edit permission
  • Ownership or other security-relevant relationships could be altered
  • Cross-user access may expand if relationship changes affect record visibility
  • Workflows or business processes could be manipulated through unauthorized relationship changes

General mitigation guidance

Defensive patterns focus on matching authorization checks to the exact operation being performed.

  • Require edit permission for every relationship write that modifies a target record
  • Enforce authorization on the server for both the source and target records
  • Apply object-level access checks consistently across API routes and relationship types
  • Prefer deny-by-default policies and avoid treating read permissions as sufficient for writes
  • Limit account privileges and review how relationship changes affect ownership and visibility

Defensive patterns focus on matching authorization checks to the exact operation being performed.

  • Require edit permission for every relationship write that modifies a target record
  • Enforce authorization on the server for both the source and target records
  • Apply object-level access checks consistently across API routes and relationship types
  • Prefer deny-by-default policies and avoid treating read permissions as sufficient for writes
  • Limit account privileges and review how relationship changes affect ownership and visibility

How teams detect issues like this

  • Review API handlers for write operations that rely only on view or list permission checks
  • Use static analysis and code review rules to flag database or ORM writes without a corresponding authorization check
  • Test relationship endpoints with accounts that have read access but lack edit access
  • Enforce centralized authorization policies and add regression tests for source and target record permissions
  • Automated code review tools can help identify permission checks that do not match the operation's sensitivity
  • Review API handlers for write operations that rely only on view or list permission checks
  • Use static analysis and code review rules to flag database or ORM writes without a corresponding authorization check
  • Test relationship endpoints with accounts that have read access but lack edit access
  • Enforce centralized authorization policies and add regression tests for source and target record permissions
  • Automated code review tools can help identify permission checks that do not match the operation's sensitivity

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-qmh9-m7g7-pxxp

Frequently asked

questions

The affected surface is an API endpoint. An attacker would generally need network access to the SuiteCRM API and a valid account with the relevant low-level access.

The described issue requires an authenticated user who can reach the relationship operation. The flaw is that view and list permissions may be checked without the required edit permission.

Check authorization for the specific write being performed, including the permissions applicable to both related records.

Use centralized, deny-by-default authorization checks and test that read-only users cannot perform relationship writes or other state-changing operations.

The affected surface is an API endpoint. An attacker would generally need network access to the SuiteCRM API and a valid account with the relevant low-level access.

The described issue requires an authenticated user who can reach the relationship operation. The flaw is that view and list permissions may be checked without the required edit permission.

Check authorization for the specific write being performed, including the permissions applicable to both related records.

Use centralized, deny-by-default authorization checks and test that read-only users cannot perform relationship writes or other state-changing operations.

Find out what's already
exploitable in your codebase.