Skip to main content

Krayin CRM EUVDEUVD-2026-88049

| CVE-2026-100885 MEDIUM
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-09-27 VulDB GHSA-6xfx-hrf7-3c42
5.5
CVSS 4.0 · Vendor: VulDB
View

Attack ChainAIDerived

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

  1. Access
    Locate installed Krayin CRM instance
  2. Delivery
    Send request to unguarded installer endpoint
  3. Exploit
    Bypass CanInstall middleware state check
  4. Execution
    Re-run adminConfigSetup/envFileSetup
  5. Persist
    Overwrite config or reset admin credentials
  6. Impact
    Take over or disrupt CRM

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
Exploitation Conditions

Exploitable against an already-installed Krayin laravel-crm instance (v2.2.4 or earlier) that remains network-reachable and whose installer routes are still served - the flaw is that CanInstall.php middleware and the InstallerController do not abort requests once installation is complete. No authentication, credentials, or user interaction are required (PR:N/UI:N). The main limiting factor is that the target must be a self-hosted deployment left reachable with the installer package present; installs that have removed/blocked the Installer package or that sit behind network restrictions are not exposed.

Impact

This is a genuine but moderate-priority issue. The CVSS 4.0 vector (AV:N/AC:L/PR:N/UI:N) describes unauthenticated, network-reachable, low-complexity exploitation with no user interaction, which is the most concerning combination for an internet-facing CRM. The source-code evidence confirms the root cause: InstallerController endpoints (index, envFileSetup, runMigration, runSeeder, adminConfigSetup) lacked an abortIfInstalled() state guard, and the CanInstall.php middleware failed to block these endpoints on an already-installed instance - so an attacker can re-invoke the installer against a live deployment. A public PoC exists (carlosalbertotuma advisory-07), which raises practical risk, but there is no EPSS score and no CISA KEV listing, so there is no evidence of active or widespread exploitation - the PoC availability and active exploitation are distinct signals and only the former is confirmed. The vendor rated impact as VC/VI/VA:L (score 6.9), but this arguably understates worst-case impact: re-running the installer can overwrite .env, re-run migrations/seeders, and reset admin configuration, which could enable full takeover or destructive data loss (higher integrity/availability impact). Net: a real, publicly-exploitable unauthenticated flaw, but confined to a niche self-hosted product with no evidence of mass exploitation, so treat as low-to-medium priority for the small population of affected installs.

Exploit ScenarioDerived

An attacker discovers an internet-facing Krayin CRM (v2.2.4 or earlier) that has already been installed and configured. Because the installer endpoints are not blocked post-install, the attacker sends unauthenticated HTTP requests to the admin-config-setup / installer API (e.g. envFileSetup, runSeeder, adminConfigSetup) to overwrite database/environment configuration or reset the administrator account, gaining control or disrupting the application. A public PoC for this unauthenticated installer bypass is available.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 27, 2026

Unauthenticated remote users can still reach the installer and admin-config-setup endpoints of Krayin CRM (laravel-crm) 2.2.4 and earlier because the CanInstall middleware and InstallerController never abort once the application has already been installed, an authorization bypass that allows installer functionality to be re-driven on a live instance. Publicly available exploit code exists (a published advisory demonstrating an unauthenticated installer bypass), though there is no confirmed active exploitation (not in CISA KEV); the assessed vector is network-reachable, no privileges, no user interaction, with low confidentiality, integrity, and availability impact. Only self-hosted deployments left network-reachable with the Installer package present are exposed, and the vendor has released a patched version.

RemediationAI

Vendor-released patch: upgrade to Krayin CRM 2.2.5 (https://github.com/krayin/laravel-crm/releases/tag/v2.2.5), which applies the installer guard from commit 89f2916b6a46ff91bd1999ce38158fa0de8b9490 and PR https://github.com/krayin/laravel-crm/pull/2614; teams that cannot move to the release immediately can cherry-pick the abortIfInstalled() checks into InstallerController::index, envFileSetup, runMigration, and runSeeder. Where upgrading is delayed, the highest-value compensating control is to remove or disable the Webkul/Installer package on already-provisioned instances (via Composer) or, if the package must remain, block the installer and admin-config-setup routes at the reverse proxy or web server and restrict them to loopback/administrative networks - the trade-off being that the setup wizard can no longer be reached for legitimate re-installation or repair without first restoring the allow rule. Disabling the installer package is the safer of the two because a route-blocking rule will not protect against path or host-header variations if it is written too narrowly, while re-enabling installation later requires redeployment rather than a configuration change. Confirm the environment is not exposed to the internet during the change window, since public exploit code for this bypass is already available.

Affected VersionsENISA

laravel-crm 2.2.1
laravel-crm 2.2.3
laravel-crm 2.2.0
laravel-crm 2.2.4
laravel-crm 2.2.2

Affected Packages

euvd laravel_crm no fix

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

Krayin CRM is a Laravel-based, PHP/Composer application composed of modular Webkul packages, one of which (Webkul/Installer) ships the web setup wizard used on first deployment. Its CanInstall middleware (packages/Webkul/Installer/src/Http/Middleware/CanInstall.php) is intended to gate installer routes based on whether the app is already installed, but the middleware and the corresponding InstallerController do not consistently terminate requests after installation completes. The result is classified as CWE-639 (Authorization Bypass Through User-Controlled Key), i.e. a request reaches a state-changing endpoint that should no longer be authorized for the caller. The upstream fix (PR #2614, commit 89f2916b6a46ff91bd1999ce38158fa0de8b9490, release v2.2.5) adds an abortIfInstalled() guard to InstallerController::index, envFileSetup, runMigration, and runSeeder. The same patch also hardens unrelated email-attachment handling by moving attachments to the private 'local' disk, resolving the disk via AttachmentRepository::resolveDisk(), detecting MIME type from file contents, and serving files only through an authenticated download route instead of a public storage URL, which is a separate defense-in-depth change rather than the root cause described here.

Know when Krayin 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 (VulDB) PRIMARY 5.5 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P
vuln.today AI 7.3 HIGH

Unauthenticated remote low-complexity access to installer endpoints (AV:N/AC:L/PR:N/UI:N); rated C/I/A:L in line with vendor, though re-install/admin-overwrite could justify higher I/A.

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

Primary rating from Vendor (VulDB).

CVSS VectorVendor: VulDB

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

Lifecycle Timeline

2
CVSS changed
Sep 27, 2026 - 23:22 NVD
6.9 (MEDIUM) 5.5 (MEDIUM)
CVE Published
Sep 27, 2026 - 22:45 cve.org
MEDIUM 6.9

DescriptionCVE.org

A vulnerability was found in Krayin laravel-crm up to 2.2.4. This affects an unknown function of the file packages/Webkul/Installer/src/Http/Middleware/CanInstall.php of the component admin-config-setup API Endpoint. The manipulation results in authorization bypass. The attack may be launched remotely. The exploit has been made public and could be used. Upgrading to version 2.2.5 mitigates this issue. The patch is identified as 89f2916b6a46ff91bd1999ce38158fa0de8b9490. Upgrading the affected component is recommended.

Threat Intelligence Overview

EPSS Score
0.4%
Top 68% exploitable
Prevalence
Low
niche self-hosted open-source PHP/Laravel CRM, limited enterprise footprint
Exploit
POC
Public exploit code exists
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL Exploit-DB GitHub VulDB

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 MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

48
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +28
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

More in Krayin

View all
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-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-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

CVE-2026-97897 MEDIUM
5.1 Sep 25

Stored cross-site scripting in Krayin laravel-crm (versions up to and including 2.2.5) lets an authenticated user with a

CVE-2026-48543 MEDIUM
5.1 Sep 24

Stored client-side template injection in Krayin CRM through 2.2.6 allows an authenticated user with rights to create or

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