Skip to main content

Krayin CRM EUVDEUVD-2026-86448

| CVE-2026-48543 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-09-24 VulnCheck GHSA-vgpf-4rhc-gr38
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 to Krayin CRM (PR:L)
  2. Delivery
    Inject Vue template expression into web form description
  3. Exploit
    Payload stored server-side
  4. Execution
    Victim opens affected web form (UI:P)
  5. Persist
    Vue compiler evaluates prototype-chain expression
  6. Impact
    Attacker JavaScript executes in app origin

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

Exploitation requires an authenticated Krayin CRM account (PR:L) with the ability to create or modify a web form, and specifically to control the web form's description field, which is rendered through the Vue.js template compiler without sanitizing double-brace expressions. The payload only fires when another user passively views the affected web form (UI:P), so it is a stored/second-order attack rather than a self-contained remote exploit. Limiting factors: an authenticated foothold with web-form editing rights is needed, a separate victim must render the form, and impact is confined to client-side JavaScript execution in the application origin (no direct server-side data compromise). Applies to Krayin CRM versions through 2.2.6.

Impact

This is a stored client-side template injection (Vue.js template injection resolving to XSS, CWE-79) in Krayin CRM through 2.2.6, reported by VulnCheck. The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N, base 5.1) indicates a network-reachable but authenticated (PR:L) attack that requires passive victim interaction (UI:P) and yields no direct confidentiality/integrity/availability impact to the vulnerable system itself, only limited subsequent-system impact (SC:L/SI:L) - consistent with script execution in a victim's browser rather than server compromise. No EPSS score, no CISA KEV listing, and no public exploit code are present in the supplied intelligence, so exploitation status is 'no public exploit identified at time of analysis.' The signals are internally consistent: a medium-severity, authenticated stored-XSS in a niche open-source CRM. This is a genuine but moderate-priority issue - real because the payload persists and fires for every viewer of the affected web form, but bounded because it requires an authenticated foothold to plant the payload and the impact is client-side (session/action abuse in the app origin), not server RCE. No key signals are missing beyond the absence of EPSS/KEV/POC data, which limits confidence on real-world exploitation likelihood.

Exploit ScenarioDerived

An authenticated Krayin CRM user with permission to create or edit a web form embeds Vue.js double-brace template syntax (e.g. an expression traversing the prototype chain to the Function constructor) into the web form description field. When any other user - including higher-privileged staff - views that web form, the Vue template compiler evaluates the expression and runs the attacker's JavaScript in the application origin, enabling session token theft, CSRF-style actions, or UI manipulation. No public proof-of-concept exploit is identified in the supplied data.

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 allows an authenticated user with rights to create or edit web forms to plant Vue.js double-brace template expressions in the form description field, which the Vue template compiler renders without sanitization and which ultimately resolves to arbitrary JavaScript execution in the application origin for any user who views the crafted form. Exploitation requires an authenticated foothold (CVSS:4.0 PR:L / CVSS:3.1 PR:L) plus a separate victim passively rendering the form (UI:P / UI:R), so it is a stored, second-order attack rather than a self-contained remote exploit; impact is confined to client-side script execution in other users' sessions (SC:L/SI:L) with no direct server-side compromise. Severity is moderate - CVSS:4.0 5.1 and the independent assessment's CVSS:3.1 5.1 - and no public exploit code was identified at time of analysis; the issue was reported by VulnCheck and is documented in a public CVE disclosure repository and vendor advisory.

RemediationAI

No vendor-released patch version is identified in the available intelligence; Krayin CRM 2.2.6 is the last known affected release, so administrators should track the VulnCheck advisory (https://www.vulncheck.com/advisories/krayin-crm-stored-template-injection-xss-via-web-form-description) and the disclosure repository (https://github.com/aaronamran/CVE-Disclosures/tree/main/CVE-2026/CVE-2026-48541) for an upstream fix and apply it as soon as a patched release or commit is published. Until then, the highest-value compensating control is to restrict who can create or edit web forms - tighten roles and permissions so that only a small, trusted set of administrators holds form-authoring rights, which removes the PR:L foothold the attack depends on, at the cost of slower form workflows for other staff. Equally effective is to prevent untrusted text from reaching the Vue compiler: strip or HTML-encode double-brace sequences ({{ }}) and other interpolation delimiters from the web form description before it is persisted or rendered - for example with an output-encoding/sanitization layer or an input filter on that field - recognizing that this is a code change that must survive upgrades. If forms cannot be trusted, disable or unpublish the web form feature, or restrict browsing of stored web forms to the author, accepting the loss of shared-form functionality. As defense in depth, deploy a Content-Security-Policy that blocks inline and eval-based script execution, which would break the Function-constructor payload but requires careful tuning to avoid breaking legitimate CRM front-end code. Finally, audit existing web form records for embedded {{ }} expressions and purge any that are found, since a stored payload will continue to fire until the record itself is removed.

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

The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation) manifesting specifically as client-side template injection (CSTI). Krayin CRM is an open-source Laravel-based CRM, tracked in the affected CPE as cpe:2.3:a:krayin:laravel-crm:*:*:*:*:*:*:*:* (all versions, i.e. through 2.2.6). The web form builder stores an operator-supplied description that is later rendered inside a Vue.js-rendered view; because the description passes through the Vue template compiler, user-controlled text containing double-brace interpolation syntax is compiled as a template expression rather than displayed as literal text. From there, an attacker can walk the JavaScript prototype chain (for example via constructor/constructor-constructor style traversal) to reach the Function constructor and build executable code, giving script execution in the origin of the application rather than a dead-end string interpolation. This is distinct from a conventional reflected XSS: the payload is persisted in the CRM's stored web form record and detonates for every subsequent viewer, and the injection point is the template engine rather than raw HTML output encoding.

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

Network-reachable stored XSS needing an authenticated form editor (PR:L) and a victim to view the form (UI:R); execution in another user's browser context crosses a trust boundary (S:C) with limited C/I impact and no availability effect.

3.1 AV:N/AC:L/PR:L/UI:R/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 web form description field. Attackers can craft a web form description 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 web form.

Threat Intelligence Overview

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Low
Niche open-source Laravel-based 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
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

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