Skip to main content

Krayin CRM EUVDEUVD-2026-104285

| CVE-2026-112288 LOW
Server-Side Request Forgery (SSRF) (CWE-918)
2026-10-19 disclosure@vulncheck.com GHSA-xjh5-97m9-9vqf
2.1
CVSS 4.0 · Vendor: vulncheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate with webhook permission
  2. Exploit
    Point webhook at attacker domain
  3. Execution
    Win DNS rebinding race on re-resolution
  4. Impact
    Blind SSRF to internal/metadata endpoint

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Credential Access

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 that holds webhook permissions (PR:H) - it is not available to anonymous or ordinary users. The attacker must control a DNS name that alternates responses so that WebhookService::isSafeEndpoint() sees a public address while Guzzle re-resolves to an internal address, meaning success is gated on winning a time-of-check/time-of-use DNS-rebinding race (AC:H, AT:P). The resulting SSRF is blind (no response is returned to the attacker), which limits data exfiltration to what can be inferred or what internal services act on. Affected versions are 2.2.5 through 2.2.6; upgrading to 2.2.7 closes the bypass by pinning the connection to the validated address.

Impact

This is a low-priority vulnerability by almost every available signal. The vendor-supplied CVSS 4.0 vector (CVSS:4.0/AV:N/AC:H/AT:P/PR:H/UI:N/VC:L/VI:L/VA:N) yields a base score of only 2.1, and the individual metrics explain why: although the attack vector is network-reachable (AV:N), exploitation requires high privileges (PR:H - an account holding webhook permissions), high attack complexity (AC:H), and a present attack requirement (AT:P) corresponding to winning the DNS-rebinding race between validation and re-resolution. The impact is capped at low confidentiality and low integrity (VC:L/VI:L) with no availability impact and no subsequent-system (scope) impact. There is no CISA KEV listing, no EPSS score provided, and no public exploit code referenced in the inputs - so exploitation status is 'no public exploit identified at time of analysis.' No SSVC decision data was supplied. The signals are internally consistent rather than conflicting: a privileged, high-complexity, race-condition-dependent SSRF that yields only blind requests is genuinely low real-world risk. The main caveat is that blind SSRF to cloud metadata endpoints (e.g., 169.254.169.254) can, in specific cloud deployments, lead to credential theft that the CVSS 'low' impact scoring understates - defenders in cloud environments should weight this slightly higher than the 2.1 score alone suggests.

Exploit ScenarioDerived

An authenticated Krayin CRM user who has been granted webhook permissions creates a webhook pointing at an attacker-controlled hostname. The attacker's DNS server returns a public IP during WebhookService::isSafeEndpoint() validation but an internal IP when Guzzle re-resolves the name to send the request, bypassing the SSRF filter and firing blind requests at internal services or the cloud metadata endpoint. No public proof-of-concept exploit is referenced in the provided data, and the attack depends on reliably winning the DNS-rebinding race (AC:H/AT:P).

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 19, 2026

Server-side request forgery filter bypass in Krayin CRM 2.2.5 through 2.2.6 allows authenticated users with webhook permissions to make blind requests to internal services and cloud metadata endpoints via DNS rebinding. The flaw requires winning a time-of-check/time-of-use race: the webhook URL validator resolves a public address, while Guzzle later re-resolves the same hostname to an internal address. No public exploit has been identified at time of analysis, and the assessed severity is low (CVSS 2.1) because exploitation is gated by high privileges and high complexity.

RemediationAI

Vendor-released patch: Krayin CRM 2.2.7. Upgrade to 2.2.7, which contains the fix (release https://github.com/krayin/laravel-crm/releases/tag/v2.2.7, commit 64b9125f33a7eb2ef9916d0e5fd8215c7f6a8c28, PR 2683). If upgrading immediately is not possible, restrict webhook creation and editing to trusted administrators, since exploitation requires webhook permissions and a controlled DNS name; this reduces exposure but does not remove the flaw. Additionally, enforce outbound egress filtering from the CRM server so it cannot reach cloud metadata endpoints such as 169.254.169.254 or internal RFC1918/link-local ranges; this is a compensating control that may break legitimate integrations that must reach internal services. Disabling webhooks entirely provides the strongest interim mitigation but removes automation functionality.

Affected VersionsENISA

laravel-crm 2.2.5 <2.2.7

Affected Packages

euvd laravel_crm fix: 2.2.7

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 CRM, and its webhook feature in the Webkul Automation package validates outbound webhook destinations with WebhookService::isSafeEndpoint(). The validation is vulnerable to a DNS-rebinding time-of-check/time-of-use issue: the check performs one DNS resolution and approves a public IP, but the subsequent Guzzle HTTP client performs its own resolution and can receive an internal address such as 127.0.0.1, 169.254.169.254, or RFC1918 space. This is CWE-918 (Server-Side Request Forgery), and the resulting request is blind because the attacker does not receive the internal response. The upstream fix in 2.2.7 pins the connection to the validated address using curl resolve entries, rejects IPv4-mapped IPv6 addresses that map into blocked ranges, and blocks internal requests at the client even if the upfront check is bypassed.

Know when the next one hits your stack

  • 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 2.1 LOW
CVSS:4.0/AV:N/AC:H/AT:P/PR:H/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 3.3 LOW

Network-reachable but needs webhook-permissioned account (PR:H) and a DNS-rebinding race (AC:H); blind SSRF yields only low confidentiality/integrity and no availability impact.

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

Primary rating from Vendor (vulncheck).

CVSS VectorVendor: vulncheck

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

Lifecycle Timeline

1
Patch available
Oct 19, 2026 - 15:02 EUVD

DescriptionCVE.org

Krayin CRM 2.2.5 before 2.2.7 contains a server-side request forgery filter bypass that allows users with webhook permissions to reach internal addresses via DNS rebinding. Attackers can return a public address during WebhookService::isSafeEndpoint() validation and an internal address when Guzzle re-resolves, sending blind requests to internal services and cloud metadata endpoints.

Threat Intelligence Overview

EPSS Score
0.2%
Top 88% exploitable
Prevalence
Low
niche open-source Laravel CRM, limited enterprise deployment footprint
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

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 LOW
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.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
Defer
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Low

Priority Score

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

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

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