Skip to main content

Laravel CRM EUVDEUVD-2026-101258

| CVE-2026-110630 HIGH
Incorrect Authorization (CWE-863)
2026-10-14 VulnCheck GHSA-x3cj-7rxv-cr85
7.0
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as user-management admin
  2. Exploit
    Tamper role_id in user form
  3. Execution
    Assign Owner/cross-team role via Role::find
  4. Impact
    Delete cross-team users, seize control

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires an authenticated account that already holds user-management privileges in Laravel CRM (CVSS PR:H), reached through the user create/update flow in UserController (store/update) and the UserIndex Livewire delete() path. The core conditions are: (1) ability to submit or tamper with the 'role' parameter so Role::find() returns a role the caller is not entitled to assign (e.g. the 'Owner' role or a role scoped to another team); and (2) for the deletion impact, the teams feature in use so that cross-team users exist to be removed via the unscoped delete(). Limiting factors that reduce realistic risk below the raw score: the attacker must first possess privileged administrative/user-management access (no anonymous or low-privilege path), no user interaction by a victim is needed (UI:N), and the issue is fully fixed in version 2.4.0 - installations on 2.4.0+ with the AssignableRole rule and Owner-role guard are not affected.

Impact

This is a genuine but access-gated integrity/availability risk rather than a mass-exploitation emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:H/UI:N, VI:H/VA:H, scoring 7.0 HIGH) confirms the dominant constraint: PR:H means the attacker must already hold a privileged, authenticated user-management (administrator) account in the CRM. There is no privilege boundary crossed from an anonymous or low-privilege user - this is horizontal/vertical escalation from an existing admin to Owner and across tenant/team boundaries. No EPSS score, no CISA KEV listing, and no public POC were supplied, so by the precision rules this is 'no public exploit identified at time of analysis.' An SSVC-style read: Exploitation=none observed, Automatable=no (requires an authenticated privileged session and knowledge of valid role/user IDs), Technical Impact=total within the application's authorization model. The confidentiality impact is explicitly VC:N/C:N - this flaw does not directly disclose data; it corrupts the authorization state (role assignment) and enables destructive deletion. Conflicting/soft signals to note: the vector asserts AV:N while the real precondition is a trusted insider or a compromised admin credential, so the 'network' vector overstates how reachable this is in practice - treat it as an insider/post-compromise escalation primitive, not a perimeter-breaching remote exploit. Net: moderate priority - patch promptly where Laravel CRM is multi-tenant/team-enabled, but it is not a drop-everything internet-facing threat.

Exploit ScenarioDerived

An administrator (or an attacker who has phished/compromised an admin account) with user-management access opens the user create/edit form and tampers with the submitted role ID so that Role::find() resolves the privileged 'Owner' role or a role belonging to another team, granting themselves or a confederate unrestricted control. The same actor abuses the unscoped UserIndex delete() method to remove users belonging to other teams. No public POC is referenced, but the attack is trivial form-parameter tampering requiring only low attack complexity (AC:L) once authenticated.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.6% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 14, 2026

Incorrect authorization (CWE-863) in VentureDrake Laravel CRM before 2.4.0 allows an authenticated account that already holds user-management privileges to assign roles it is not entitled to hand out - including the 'Owner' role or a role belonging to another team - by tampering with the 'role' parameter accepted by Role::find() in UserController::store/update, and to remove cross-team users through the unscoped UserIndex Livewire delete() method. The result is privilege escalation to Owner-level control plus cross-tenant user deletion on affected installations; the CVSS v3.1 assessment is AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:H (high integrity and availability impact, no confidentiality impact). The issue is fully remediated in version 2.4.0 through an AssignableRole validation rule and an explicit Owner-role guard, and no public exploit was identified at time of analysis - reachability is gated by the need for a privileged administrative account (PR:H), so risk is real but not a mass-exploitation emergency.

RemediationAI

Upgrade to VentureDrake Laravel CRM 2.4.0 (https://github.com/venturedrake/laravel-crm/releases/tag/2.4.0), which is the vendor-released fix; if upgrading is not immediately possible, apply the two upstream patch commits d64b59fb9f7355e1be9951fbcc5f54ed715dc212 (adds the AssignableRole validation rule, Owner-role abort guards in UserController::store/update, Role::assignable() usage in HasUserCommon, and delete authorization/self-delete protections) and 27bd5081004913660ccb3e0181b351a2e4ded104, then confirm Role::assignable() is the only predicate used for role dropdowns, validation, and assignment sites. Because exploitation requires an already privileged user-management account (PR:H), the highest-value compensating control is to audit and minimize who holds user-management/permission-administration rights, remove dormant admin accounts, and monitor for role changes to 'Owner' or roles with an unexpected team_id; these controls carry an operational cost of tighter admin access but do not fix the underlying code path. If the teams feature is not actively needed, disabling it removes the cross-team user population targeted by the unscoped UserIndex::delete() path at the cost of losing multi-team scoping, and the self-delete guard ('user_cannot_delete_self' string added by the patch) should be verified after any manual backport. Vendor and issue references for verification: https://github.com/venturedrake/laravel-crm/issues/79, https://www.vulncheck.com/advisories/venturedrake-laravel-crm-before-2.4.0-privilege-escalation-via-unscoped-role-assignment; no vendor-released patch version other than 2.4.0 is indicated in the provided data.

Affected VersionsENISA

laravel-crm 0 <2.4.0

Affected Packages

euvd laravel_crm fix: 2.4.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Laravel CRM is a Laravel/Livewire CRM package where users are managed through a Livewire UI (UserCreate, UserIndex, and shared traits) backed by a controller (Http/Controllers/UserController.php) and form requests (StoreUserRequest, UpdateUserRequest). Roles are stored in the package's own Role model, and the vulnerable code path called Role::find($request->role) directly, resolving any role ID supplied in the request without applying the package's intended assignability scope. The fix introduces Role::assignable() as the single source of truth - a predicate that restricts results to CRM roles (crm_role = 1) and, when the teams feature is enabled, to the caller's current team - and wires it into three places: the AssignableRole custom validation rule used by StoreUserRequest and UpdateUserRequest, the role dropdown in the HasUserCommon trait, and the assignment sites in UserController::store/update, which now also abort with 403 if the target role is 'Owner' and the caller does not themselves hold Owner. Because the same unscoped pattern was absent from UserIndex::delete(), a caller could also delete users outside its team scope; the patch adds authorization checks (AuthorizesRequests::authorize('delete', ...)) in the team and user index paths and a guard preventing self-deletion. The root cause class CWE-863 (Incorrect Authorization) reflects that authorization decisions were made on client-supplied identifiers without tenant/role scoping, not that authentication was bypassed.

Know when Laravel Crm gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 7.0 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 6.5 MEDIUM

Requires an authenticated user-management admin so PR:H; low-complexity form tampering gives AC:L; role corruption and cross-team deletion yield I:H/A:H with no data disclosure (C:N).

3.1 AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:H/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
High
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

VentureDrake Laravel CRM before 2.4.0 contains an incorrect authorization vulnerability in user management that allows authenticated administrators to assign unrestricted roles via Role::find. Attackers with user-management access can assign the Owner role or other teams' roles and delete cross-team users through the unscoped UserIndex delete() method.

Executive ViewAI

Why It Matters

VentureDrake Laravel CRM installations older than 2.4.0 allow staff who already hold user-management permissions to grant themselves or others the Owner role, or roles belonging to another team, and to delete users across tenant boundaries. The result is Owner-level privilege escalation and cross-tenant user deletion, so the exposure is concentrated in privileged insider accounts and compromised administrative credentials rather than the general user population. Leadership should care because the flaw undermines tenant isolation and role governance in multi-tenant deployments, and integrity and availability impacts are rated high.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.6%
Top 51% exploitable
Prevalence
Low
niche open-source Laravel CRM package, limited enterprise deployment footprint
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.6%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +35
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0
CVE-2026-41452 CRITICAL POC
9.3 Aug 03

Administrative account takeover in Krayin CRM (Laravel CRM) 2.2.4 lets unauthenticated remote attackers overwrite the pr

CVE-2026-41453 HIGH POC
8.7 Aug 03

Blind SQL injection in Krayin CRM's leads DataGrid allows any authenticated user with leads access to exfiltrate the ent

CVE-2026-61460 HIGH POC
8.7 Jul 10

Broken object-level authorization in Krayin CRM (Laravel CRM) through version 2.2.3 lets any authenticated user tamper w

CVE-2026-100885 MEDIUM POC
5.5 Sep 27

Unauthenticated remote users can still reach the installer and admin-config-setup endpoints of Krayin CRM (laravel-crm)

CVE-2026-90944 HIGH
8.8 Sep 14

Missing authentication on Krayin CRM's admin mail ingest route lets any remote, unauthenticated attacker POST crafted RF

CVE-2026-110629 HIGH
7.1 Oct 14

Missing authorization checks in VentureDrake Laravel CRM before 2.4.0 allow any authenticated user holding a low-privile

CVE-2026-97895 LOW POC
2.1 Sep 25

Improper privilege management in Krayin laravel-crm up to and including 2.2.5 lets an authenticated back-office user who

CVE-2026-100884 LOW POC
2.1 Sep 27

An insecure direct object reference (IDOR) in Krayin laravel-crm through version 2.2.5 allows any authenticated user to

CVE-2026-100883 LOW POC
2.1 Sep 27

Improper access control in Krayin Laravel CRM through 2.2.5 allows an authenticated low-privilege admin user to access a

CVE-2026-97896 LOW POC
2.0 Sep 25

Cross-site scripting in Krayin Laravel CRM through 2.2.5 lets an authenticated user with access to the admin configurati

CVE-2026-5370 LOW POC
2.0 Apr 02

Stored cross-site scripting (XSS) in Krayin Laravel-CRM up to version 2.2 allows authenticated users with low privileges

CVE-2026-100882 LOW POC
1.9 Sep 27

Stored cross-site scripting in Krayin CRM (laravel-crm) up to and including version 2.2.5 lets an authenticated administ

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy