Skip to main content

Krayin CRM EUVDEUVD-2026-86446

| CVE-2026-48542 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-09-24 VulnCheck GHSA-2g68-2vxr-jc27
5.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as low-privileged CRM user
  2. Delivery
    Inject Vue template expression into product name
  3. Exploit
    Payload stored in product record
  4. Execution
    Higher-privileged user views product
  5. Persist
    Template compiler evaluates Function constructor
  6. Impact
    Arbitrary JS runs in app origin, hijack session

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

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

Exploitation Conditions

Requires a valid authenticated CRM account with permission to create or edit products (PR:L), and exploitation completes only when another user opens the affected product record (UI:P/passive). The specific trigger is the product name field, whose value reaches the Vue.js client-side template compiler unescaped, allowing double-brace template expressions to be evaluated; deployments are affected in default configuration up to and including Krayin CRM 2.2.6. Limiting factors: attacker must first authenticate, impact is confined to the browser/app origin of viewing users, and there is no direct server-side compromise or availability impact.

Impact

This is a genuine but moderate-priority issue, not an overblown high-CVSS finding. The vendor CVSS 4.0 base is 5.1 (medium), and the vector is internally consistent with the description: network-reachable (AV:N), low complexity (AC:L), but requiring low-privilege authentication (PR:L) and passive victim interaction (UI:P), with only limited subsequent-system confidentiality/integrity impact (SC:L/SI:L) and no availability impact. There is no EPSS score, no CISA KEV listing, and no public POC referenced, so the exploitation status is 'no public exploit identified at time of analysis' - this is not evidence of active exploitation. The real elevator here is that it is STORED and client-side template injection escalating to arbitrary JS via the Function constructor, meaning the payload executes in the application origin for every user who views the poisoned product record, effectively giving a low-privileged CRM user a path to run script in higher-privileged users' sessions. That session-hijack/lateral-movement potential is more serious than the 5.1 base implies, but it remains gated behind valid authentication and a victim viewing the record, keeping it a medium concern rather than a critical one. Note a data caveat: one of the two references points to CVE-2026-48541 (an apparent sibling), not this CVE, so cross-reference against the VulnCheck advisory directly.

Exploit ScenarioDerived

A low-privileged authenticated Krayin CRM user creates or edits a product and sets its name to a Vue.js double-brace template expression that traverses the prototype chain to reach the Function constructor and run attacker JavaScript. When any other user - including an admin - opens that product record, the payload executes in the application origin, enabling session token theft, CSRF-style actions, or account takeover. No public exploit code is referenced, though VulnCheck's advisory documents the technique.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 24, 2026

Stored client-side template injection in Krayin CRM through 2.2.6 lets an authenticated user who can create or edit products plant Vue.js template expressions in the product name field, which are then compiled and executed as JavaScript in the browser of any other user who opens the affected product record. Exploitation requires a valid CRM account with product create/edit rights (PR:L) and completes only passively, when a victim views the record (UI:P); impact is confined to the victim's browser and the application's origin, with no server-side compromise or availability effect. No public exploit code was identified in the available intelligence at time of analysis, and there is no evidence of confirmed active exploitation, so this is a genuine but moderate-priority finding rather than a high-severity one.

RemediationAI

No vendor-released patch was identified in the available data at time of analysis, so remediation must be compensating. Restrict the create/edit product permission to the smallest possible set of trusted accounts, since the vulnerability requires an authenticated user with that capability - this reduces the pool of potential injectors but does not help if a low-privileged staff account is compromised. Add server-side input validation that rejects or strips Vue template delimiters ({{ }}, and by extension v-html/v-bind-style payload fragments) from the product name, or HTML-encode the name at the point of rendering so it never reaches the template compiler; the trade-off is that legitimate names containing braces would be altered or blocked outright. Where feasible, switch the affected view to pre-compiled Vue render functions (SFC build) instead of the runtime compiler, which removes the template-evaluation sink entirely. A Content-Security-Policy without 'unsafe-eval' would block the Function-constructor execution path and is a strong containment measure, but it will break any part of the UI that relies on Vue's runtime compiler, so test thoroughly before deploying. A WAF rule matching double-brace sequences in product creation requests provides defence in depth but is trivially bypassable with encoding tricks, and monitoring the referenced VulnCheck advisory and the researcher's CVE-Disclosures repository for an official fixed release is advisable before relying on long-term mitigations. In the meantime, note that stored payloads remain in existing product records until sanitized, so existing data should be audited and cleaned after any control is applied.

Affected VersionsENISA

laravel-crm 0 ≤2.2.6

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 open-source CRM whose admin interface is built with Vue.js and is tracked in CPE as cpe:2.3:a:krayin:laravel-crm. The underlying flaw is CWE-79 (improper neutralization of input during web page generation, i.e. cross-site scripting), manifesting specifically as client-side template injection: user-supplied product name data is rendered into a context that still passes through Vue's runtime template compiler instead of being escaped or pre-compiled into static render functions. Because Vue interprets double-brace delimiters ({{ ... }}) as expressions, an attacker-supplied name such as a template expression is evaluated in the victim's browser rather than displayed literally. The reported exploitation path uses prototype chain traversal to reach the JavaScript Function constructor from the template evaluation context, which converts the expression evaluation primitive into full arbitrary JavaScript execution within the application origin, with access to cookies, tokens, and any data the victim's session can reach. Because the payload is stored server-side in the product record, the injection is persistent and fires for every user who views that record.

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 (VulnCheck) PRIMARY 5.1 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
vuln.today AI 6.4 MEDIUM

Authenticated low-priv attacker stores the payload (PR:L); stored XSS executes when victims view the record and crosses into their security context (S:C) with limited C/I impact and no availability effect.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

Krayin CRM through 2.2.6 contains a stored client-side template injection vulnerability that allows authenticated attackers to execute arbitrary JavaScript in other users' browsers by injecting Vue.js template expressions into the product name field. Attackers can craft a product name containing double-brace template syntax that reaches the Vue template compiler, enabling prototype chain traversal to retrieve the Function constructor and execute attacker-supplied JavaScript in the application origin for every user who views the affected product record.

Threat Intelligence Overview

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Low
niche open-source Laravel CRM, limited enterprise deployment footprint
Social Media
1
Sightings
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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available No
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· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

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

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

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

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