CVE-2025-63943 — SQL Injection in Grocery Store Management System 1.0
Panoramica
È stata identificata una vulnerabilità di SQL Injection ad alta severità nel componente search_products.php di Grocery Store Management System 1.0, un'applicazione web basata su PHP/MySQL creata da anirudhkannan.
Il problema deriva da una validazione impropria degli input e dalla costruzione non sicura delle query SQL utilizzando il parametro scost controllato dall'utente. Questa falla consente agli attaccanti di manipolare la logica SQL sottostante, portando potenzialmente all'esposizione di dati sensibili, alla modifica dei dati o al completo compromesso del database.
La vulnerabilità esiste a causa della concatenazione diretta di input utente non validato nelle query SQL.
Il parametro POST scost, pensato per rappresentare un valore numerico del costo del prodotto, viene incorporato nella clausola WHERE SQL senza:
Sanificazione dell'input
Applicazione del tipo di dato
Query parametrizzate
Utilizzo di prepared statement
Ciò consente a un attaccante di iniettare espressioni booleane SQL arbitrarie, alterando il comportamento della query ed estraendo il contenuto del database tramite tecniche di SQL Injection basata su booleani.
La vulnerabilità è sfruttabile tramite una richiesta POST standard a search_products.php. Quando vengono fornite espressioni dannose, il backend restituisce differenze misurabili nelle risposte (variazioni VERO/FALSO), confermando che l'input utente influenza la logica SQL.
Causa principale
Mancanza di validazione lato server sul campo di input scost
Uso diretto della concatenazione di stringhe per costruire query SQL
Assenza di prepared statement nel percorso di codice interessato
Nessun filtro o whitelist per i campi di input numerici
Queste condizioni consentono collettivamente agli attaccanti di modificare la logica SQL prevista.
Severità e impatto
Questa vulnerabilità è classificata come Alta a causa della bassa complessità di attacco, dell'assenza di requisiti di autenticazione e dell'impatto pieno di lettura/scrittura sul database.
Impatti potenziali:
Esposizione di dati sensibili: gli attaccanti possono estrarre dati di prodotti, utenti o di sistema.
Modifica o cancellazione dei dati: SQL iniettato può alterare o rimuovere voci del database.
Bypass dell'autenticazione (possibile): se utilizzata in altre parti della logica delle query dell'applicazione.
Compromissione totale del database: a seconda dei privilegi e della configurazione del DB.
Instabilità del sistema: query dannose potrebbero interrompere il normale comportamento dell'applicazione.
Punteggio CVSS v3.1 (Valutazione preliminare)
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Vettore di attacco (AV): Rete
Complessità di attacco (AC): Bassa
Privilegi richiesti (PR): Nessuno
Interazione utente (UI): Nessuna
Scope (S): Invariato
Riservatezza (C): Alta
Integrità (I): Alta
Disponibilità (A): Alta
Severità stimata: Alta (9.8)
Riepilogo dello sfruttamento
La vulnerabilità può essere sfruttata tramite valori appositamente costruiti passati al parametro scost.
Gli attaccanti possono:
Influenzare la logica booleana
Attivare risposte condizionali
Enumerare le strutture del database
Estrarre informazioni sensibili
(I payload dettagliati sono stati volutamente omessi per prevenire un uso improprio.)