/

CVE-2026-61519

Severity:

HIGH RISK

(8.8)

Broken Access Control (CWE-863) in Liberu CRM Teams

CVE-2026-61519

Deferred

Vulnerability type

Category:

Broken Access Control

CWE:

CWE-863

Impact:

Privilege Escalation and Unauthorized Team Data Access

Severity:

HIGH RISK

(8.8)

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

A broken access control vulnerability in Liberu CRM allows a user with a pending team invitation to invite another account with an elevated administrator role. If the invitation workflow accepts attacker-controlled role data without validating the inviter's privileges, the second account may gain broad create, read, update, and delete access to team-scoped data.

Affected context

The issue affects Liberu CRM deployments using the team invitation workflow in versions where TeamPolicy::addTeamMember() treats a matching pending invitation email as sufficient authorization. Risk is present when invitation requests can specify privileged roles and InviteTeamMember does not independently verify whether the requesting user may grant those roles.

Exploit preconditions

  • Attack surface: Team invitation functionality exposed through the application
  • Required access: An account holding a pending invitation for the target team
  • Trigger point: Processing a team-invitation request and subsequent invitation acceptance
  • Required condition: The authorization predicate must accept the pending invitation match as adequate permission
  • Why exploitation is possible: Role assignment is not consistently checked against the inviter's effective privileges, allowing an unauthorized user to cause an additional account to receive an elevated team role

Why this happens

The vulnerability results from an authorization decision based on an insufficient identity or relationship check. TeamPolicy::addTeamMember() effectively treats the existence of a pending invitation email match as proof that the requester may invite members, while the invitation workflow does not reliably enforce privilege-level constraints on the selected role. This maps to CWE-863: Incorrect Authorization, where access-control logic permits an operation without verifying that the subject has the required permission.

Potential impact

  • An attacker-controlled account may receive administrator-level team access
  • Unauthorized users could create, read, update, or delete team-scoped records
  • Team membership and invitation controls could be altered
  • Sensitive business data may be exposed or modified
  • Data integrity, availability, and audit reliability could be affected

General mitigation guidance

Mitigation generally focuses on making authorization decisions from verified server-side permissions rather than invitation state alone.

Common defensive patterns include:

  • Requiring an authenticated, authorized team administrator or equivalent role to issue invitations
  • Enforcing server-side allowlists for assignable roles based on the inviter's effective privileges
  • Treating role and team identifiers supplied by clients as untrusted input
  • Applying the same authorization checks when creating, accepting, and finalizing invitations
  • Using centralized policy checks consistently across controllers, policies, and service objects
  • Recording invitation authorization decisions and applying least privilege to team roles

How teams detect issues like this

Organizations can look for:

  • Static analysis patterns where request-supplied roles flow into membership creation without a policy check
  • Code review signals involving email-matching logic used as a substitute for authorization
  • Tests that attempt to assign roles above the requester's privilege level
  • Audit events showing invitations issued by pending invitees or newly elevated accounts
  • Policy enforcement requiring server-side authorization before team membership or role changes

Automated security review tools may help identify inconsistent authorization checks, but workflow-specific tests and audit analysis remain important.

Sources

SourceLink
github.comgithub.com/liberusoftware/crm-laravel/commit/0846d067ae2e9c437e8555e54a4ec6517927b3d4
github.comgithub.com/liberusoftware/crm-laravel/issues/708
github.comgithub.com/liberusoftware/crm-laravel/releases/tag/v10.0.0
vulncheck.comvulncheck.com/advisories/liberu-crm-broken-access-control-via-teampolicy-addteammember

Frequently asked

questions

Exploitation generally requires an account with a pending invitation to the target team and access to the team invitation workflow. It does not require the attacker to already hold administrator privileges.

The resulting access is primarily scoped to the affected team, but it may include broad administrative operations over that team's data and membership controls.

Enforce authorization independently at every invitation and role-assignment boundary, and permit users to grant only roles within their own approved privilege range.

Treat invitation state, email matches, and client-provided roles as untrusted signals; use centralized server-side policies, least-privilege roles, negative authorization tests, and audit monitoring.

Find out what's already
exploitable in your codebase.