2.1 CVE-2012-2657
Buffer Overflow Ransomware Risk
** DISPUTATO ** L'overflow del buffer nella funzione SQLDriverConnect in unixODBC 2.0.10, 2.3.1 e precedenti consente agli utenti locali di causare un denial of service (crash) tramite una stringa lunga nell'opzione FILEDSN. NOTA: questo problema potrebbe non essere una vulnerabilità, poiché la possibilità di impostare questa opzione implica tipicamente che l'attaccante abbia già accesso legittimo per causare un DoS o eseguire codice, e quindi il problema non attraverserebbe i confini dei privilegi. Potrebbero esserci scenari di attacco limitati se le opzioni della riga di comando di isql sono esposte a un aggressore, anche se sembra probabile che vengano esposti anche altri problemi più seri e questo problema potrebbe non superare i confini dei privilegi in quel contesto.
https://nvd.nist.gov/vuln/detail/CVE-2012-2657
Categorie
CWE-119 : Limitazione impropria delle operazioni entro i limiti di un buffer di memoria
Il prodotto esegue operazioni su un buffer di memoria, ma può leggere da o scrivere su una posizione di memoria che si trova al di fuori del confine previsto del buffer. Questo termine ha molti significati diversi a seconda del pubblico. Dal punto di vista della mappatura CWE, questo termine dovrebbe essere evitato ove possibile. Alcuni ricercatori, sviluppatori e strumenti intendono "scrivere oltre la fine di un buffer", mentre altri usano lo stesso termine per indicare "qualsiasi lettura o scrittura al di fuori dei confini di un buffer, sia prima dell'inizio del buffer che dopo la fine del buffer". Altri ancora usano lo stesso termine per indicare "qualsiasi azione dopo la fine di un buffer, sia che si tratti di lettura o scrittura". Poiché il termine è comunemente usato per lo sfruttamento e per le vulnerabilità, si crea ulteriore confusione. Alcuni importanti fornitori e ricercatori usano il termine "buffer overrun", ma la maggior parte delle persone usa il termine "buffer overflow". Per il contesto, si veda il termine alternativo "buffer overflow". Generalmente si usa per le tecniche che evitano le debolezze legate all'accesso alla memoria, come quelle identificate da CWE-119 e dai suoi discendenti. Tuttavia, il termine non è formale ed è probabile che i professionisti non siano d'accordo su quali punti deboli siano implicitamente coperti dal termine "sicurezza della memoria". Questa debolezza può essere rilevata utilizzando strumenti e tecniche dinamiche che interagiscono con il software utilizzando ampie suite di test con molti input diversi, come i test fuzz (fuzzing), i test di robustezza e l'iniezione di errori. Il funzionamento del software può rallentare, ma non deve diventare instabile, bloccarsi o generare risultati errati. Utilizzare una CPU e un sistema operativo che offrano la protezione dell'esecuzione dei dati (NX) o un sistema equivalente [REF-60] [REF-61]. Sostituire le funzioni di copia senza limiti con funzioni analoghe che supportino argomenti di lunghezza, come strcpy con strncpy. Creare queste funzioni se non sono disponibili. La normalizzazione errata degli URI nel prodotto di traffico dell'applicazione porta a un buffer overflow, come sfruttato in natura da CISA KEV. Overflow del buffer nell'interfaccia web del router Wi-Fi, come sfruttato in natura per CISA KEV. Overflow del buffer classico basato su stack nel lettore multimediale che utilizza una voce lunga in una playlist Overflow del buffer basato su heap nel lettore multimediale che utilizza una voce lunga in una playlist Il valore di precisione elevato in una stringa di formato innesca l'overflow Il valore di offset negativo porta a una lettura fuori dai limiti Gli input malformati causano accessi a oggetti non inizializzati o eliminati in precedenza, con conseguente corruzione della memoria a catena: mancanza di sincronizzazione porta alla corruzione della memoria catena: un prodotto di machine-learning può avere un overflow del buffer basato sull'heap (CWE-122) quando alcuni limiti orientati agli interi vengono calcolati utilizzando ceiling() e floor() su valori in virgola mobile (CWE-1339) l'indice di un array controllato da un utente malintenzionato porta all'esecuzione di codice catena: il valore -1 di una chiamata di funzione doveva indicare un errore, ma viene invece utilizzato come indice di un array. catena: calcoli errati portano al dereferenziamento di puntatori non corretti e alla corruzione della memoria prodotto accetta messaggi modificati che portano al dereferenziamento di un puntatore arbitrario catena: un input malformato causa il dereferenziamento di memoria non inizializzata il kernel OS si fida del valore di lunghezza fornito dall'utente, consentendo la lettura di informazioni sensibili catena: l'integer overflow in un programma di posta elettronica codificato in modo sicuro porta al buffer overflow. Nel 2005, questo problema era considerato irrealistico da sfruttare, ma nel 2020 è stato riscoperto come più facile da sfruttare a causa dell'evoluzione della tecnologia. overflow del buffer che coinvolge un'espressione regolare con un numero elevato di catture catena: metadati sulla dimensione del messaggio non controllati consentono un overflow del buffer (CWE-190) che porta a un overflow del buffer (CWE-119).
Riferimenti
CPE
cpe |
avviare |
fine |
Configuration 1 |
cpe:2.3:a:unixodbc:unixodbc:*:*:*:*:*:*:*:* |
|
<= 2.3.1 |
cpe:2.3:a:unixodbc:unixodbc:2.3.0:*:*:*:*:*:*:* |
|
|
cpe:2.3:a:unixodbc:unixodbc:2.0.10:*:*:*:*:*:*:* |
|
|
RIMEDIO
EXPLOITS
Exploit-db.com
id |
descrizione |
data |
|
Nessuna impresa nota |
Altro (github, ...)
CAPEC
Common Attack Pattern Enumerations and Classifications
id |
descrizione |
gravità |
10 |
Buffer Overflow tramite variabili d'ambiente
Questo schema di attacco comporta la causa di un buffer overflow attraverso la manipolazione delle variabili d'ambiente. Una volta che l'avversario scopre che può modificare una variabile d'ambiente, può cercare di far traboccare i buffer associati. Questo attacco sfrutta la fiducia implicita spesso riposta nelle variabili d'ambiente. [Identificare l'applicazione bersaglio] L'avversario identifica un'applicazione o un programma bersaglio su cui eseguire l'overflow del buffer. In questo attacco l'avversario cerca un'applicazione che carichi il contenuto di una variabile d'ambiente in un buffer. [Trovare il vettore di iniezione] L'avversario identifica un vettore di iniezione per fornire il contenuto eccessivo al buffer dell'applicazione bersaglio. [Creare il contenuto dell'overflow] L'avversario crea il contenuto da iniettare. Se l'intento è semplicemente quello di causare il crash del software, il contenuto deve solo consistere in una quantità eccessiva di dati casuali. Se l'intento è quello di sfruttare l'overflow per l'esecuzione di codice arbitrario, l'avversario crea il payload in modo tale che l'indirizzo di ritorno sovrascritto venga sostituito con uno a scelta dell'avversario. [Utilizzando il vettore di iniezione, l'avversario inietta il contenuto di overflow artigianale nel buffer. |
Alto |
100 |
Buffer di overflow
Gli attacchi di Buffer Overflow hanno come obiettivo un controllo improprio o mancante dei limiti sulle operazioni del buffer, tipicamente innescato da un input iniettato da un avversario. Come conseguenza, un avversario è in grado di scrivere oltre i confini delle regioni del buffer allocate in memoria, causando un crash del programma o potenzialmente un reindirizzamento dell'esecuzione secondo la scelta dell'avversario. [L'avversario identifica un'applicazione o un programma su cui eseguire il buffer overflow. Gli avversari spesso cercano applicazioni che accettano input dall'utente e che eseguono una gestione manuale della memoria. [Trovare il vettore di iniezione] L'avversario identifica un vettore di iniezione per fornire il contenuto eccessivo al buffer dell'applicazione bersaglio. [L'avversario crea il contenuto da iniettare. Se l'intento è semplicemente quello di causare il crash del software, il contenuto deve solo consistere in una quantità eccessiva di dati casuali. Se l'intento è quello di sfruttare l'overflow per l'esecuzione di codice arbitrario, l'avversario crea il payload in modo tale che l'indirizzo di ritorno sovrascritto venga sostituito con uno a scelta dell'avversario. [Utilizzando il vettore di iniezione, l'avversario inietta il contenuto di overflow artigianale nel buffer. |
Molto alto |
123 |
Manipolazione del buffer
Un avversario manipola l'interazione di un'applicazione con un buffer nel tentativo di leggere o modificare dati a cui non dovrebbe avere accesso. Gli attacchi buffer si distinguono in quanto è lo spazio del buffer stesso che è l'obiettivo dell'attacco piuttosto che qualsiasi codice responsabile dell'interpretazione del contenuto del buffer. In quasi tutti gli attacchi buffer, il contenuto che viene inserito nel buffer è irrilevante. Al contrario, la maggior parte degli attacchi al buffer implica il recupero o la fornitura di più input di quanto può essere memorizzato nel buffer allocato, con conseguente lettura o sovrascrittura di altra memoria di programma non voluta. |
Molto alto |
14 |
Overflow del buffer indotto da iniezione lato client
Questo tipo di attacco sfrutta una vulnerabilità di buffer overflow nel software client mirato attraverso l'iniezione di contenuti dannosi da un servizio ostile personalizzato. Questo servizio ostile è creato per fornire il contenuto corretto al software client. Per esempio, se l'applicazione lato client è un browser, il servizio ospiterà una pagina web che il browser carica. [L'avversario identifica un'applicazione client-side di destinazione su cui eseguire il buffer overflow. I più comuni sono i browser. Se c'è una nota vulnerabilità del browser, un avversario potrebbe prendere di mira quella. [Trovare il vettore di iniezione] L'avversario identifica un vettore di iniezione per fornire il contenuto eccessivo al buffer dell'applicazione bersaglio. [Creare un servizio ostile] L'avversario crea un servizio ostile che consegnerà il contenuto all'applicazione lato client. Se l'intento è semplicemente quello di causare il crash del software, il contenuto deve solo consistere in una quantità eccessiva di dati casuali. Se l'intento è quello di sfruttare l'overflow per l'esecuzione di codice arbitrario, l'avversario crea il payload in modo tale che l'indirizzo di ritorno sovrascritto venga sostituito con uno a scelta dell'avversario. [Utilizzando il vettore di iniezione, l'avversario consegna il contenuto all'applicazione lato client che utilizza il servizio ostile e fa traboccare il buffer. |
Alto |
24 |
Guasto del filtro per overflow del buffer
In questo attacco, l'idea è di far fallire un filtro attivo causando una transazione sovradimensionata. Un attaccante può cercare di inserire stringhe di input troppo lunghe nel programma nel tentativo di sopraffare il filtro (causando un buffer overflow) e sperando che il filtro non fallisca in modo sicuro (cioè l'input dell'utente viene lasciato nel sistema non filtrato). [Sondaggio] L'attaccante esamina l'applicazione di destinazione, possibilmente come un utente valido e autenticato [Tentativi di iniezioni] Cerca di inserire dati troppo lunghi nel sistema. Questo può essere fatto manualmente o uno strumento dinamico (scatola nera) può essere usato per automatizzare questo. Un attaccante può anche usare uno script personalizzato per questo scopo. [Monitorare le risposte] Osservare qualsiasi indicazione di fallimento che si verifica. Guarda attentamente per vedere cosa è successo quando si è verificato il fallimento del filtro. I dati sono entrati? [Abusare del sistema attraverso il fallimento del filtro] Un attaccante scrive uno script per indurre costantemente il fallimento del filtro. |
Alto |
42 |
Conversione MIME
Un attaccante sfrutta una debolezza nella routine di conversione MIME per causare un buffer overflow e ottenere il controllo della macchina server di posta. Il sistema MIME è progettato per consentire l'interpretazione e l'invio via e-mail di diversi formati di informazioni. I punti di attacco esistono quando i dati vengono convertiti in formato MIME compatibile e viceversa. [Identificare il server di posta obiettivo] L'avversario identifica un server di posta obiettivo che desidera attaccare. [Determinare la fattibilità dell'attacco] Determinare se il server di posta è privo di patch ed è potenzialmente vulnerabile a uno dei noti buffer overflow di conversione MIME (ad esempio Sendmail 8.8.3 e 8.8.4). [Trovare il vettore di iniezione] Identificare i posti nel sistema dove le routine di conversione MIME vulnerabili possono essere usate. [L'avversario crea messaggi e-mail con intestazioni speciali che causeranno un buffer overflow per la routine di conversione MIME vulnerabile. L'intento di questo attacco è quello di sfruttare l'overflow per l'esecuzione di codice arbitrario e ottenere l'accesso alla macchina del server di posta, quindi l'avversario creerà un'e-mail che non solo fa overflow del buffer mirato, ma lo fa in modo tale che l'indirizzo di ritorno sovrascritto sia sostituito con uno a scelta dell'avversario. [Inviare messaggi di posta elettronica al sistema di destinazione con intestazioni appositamente create che innescano l'overflow del buffer ed eseguono il codice della shell. |
Alto |
44 |
Overflow Binary Resource File
Un attacco di questo tipo sfrutta una vulnerabilità di buffer overflow nella gestione delle risorse binarie. Le risorse binarie possono includere file musicali come MP3, file di immagini come file JPEG e qualsiasi altro file binario. Questi attacchi possono passare inosservati alla macchina client attraverso il normale utilizzo dei file, come un browser che carica un file JPEG apparentemente innocente. Questo può permettere all'avversario di accedere allo stack di esecuzione ed eseguire codice arbitrario nel processo di destinazione. [Identificare il software di destinazione] L'avversario identifica il software che utilizza file binari esterni in qualche modo. Questo potrebbe essere un caricamento di file, il download di un file da una posizione condivisa, o altri mezzi. [Trovare il vettore di iniezione] L'avversario crea un file binario dannoso alterando l'intestazione per far sembrare il file più corto di quello che è. Ulteriori byte vengono aggiunti alla fine del file per essere collocati nella posizione di overflow. L'avversario quindi distribuisce il file al software per determinare se un buffer overflow ha avuto successo. [Una volta che l'avversario ha determinato che questo attacco è fattibile, creerà appositamente il file binario in modo da ottenere il comportamento desiderato. Se il codice sorgente è disponibile, l'avversario può creare con cura il file dannoso in modo che l'indirizzo di ritorno sia sovrascritto al valore desiderato. Se il codice sorgente non è disponibile, l'avversario altererà iterativamente il file per sovrascrivere correttamente l'indirizzo di ritorno. [Una volta che l'avversario ha costruito un file che farà effettivamente traboccare il software mirato nel modo previsto. Il file viene distribuito al software, o servendolo direttamente al software o mettendolo in una posizione condivisa per una vittima da caricare nel software. |
Molto alto |
45 |
Overflow del buffer tramite collegamenti simbolici
Questo tipo di attacco sfrutta l'uso di link simbolici per causare buffer overflow. Un avversario può cercare di creare o manipolare un file di collegamento simbolico in modo tale che il suo contenuto risulti in dati fuori dai limiti. Quando il software di destinazione elabora il file di collegamento simbolico, potrebbe potenzialmente far traboccare i buffer interni con un controllo insufficiente dei limiti. [Identificare l'applicazione di destinazione] L'avversario identifica un'applicazione o un programma di destinazione che potrebbe caricare determinati file in memoria. [Trovare il vettore di iniezione] L'avversario identifica un vettore di iniezione per fornire il contenuto eccessivo al buffer dell'applicazione bersaglio. [Creare il contenuto del file di overflow] L'avversario crea il contenuto da iniettare. Se l'intento è semplicemente quello di causare il crash del software, il contenuto deve solo consistere in una quantità eccessiva di dati casuali. Se l'intento è quello di sfruttare l'overflow per l'esecuzione di codice arbitrario, l'avversario crea il payload in modo tale che l'indirizzo di ritorno sovrascritto venga sostituito con uno di sua scelta. [Utilizzando il contenuto del file appositamente creato, l'avversario crea un collegamento simbolico dalla risorsa identificata al file dannoso, causando un attacco mirato di overflow del buffer. |
Alto |
46 |
Variabili e tag di overflow
Questo tipo di attacco sfrutta l'uso di tag o variabili da dati di configurazione formattati per causare un buffer overflow. L'avversario crea una pagina HTML dannosa o un file di configurazione che include stringhe sovradimensionate, causando così un overflow. [L'avversario identifica un'applicazione o un programma di destinazione su cui eseguire l'overflow del buffer. Gli avversari cercano applicazioni o programmi che accettano file formattati, come i file di configurazione, come input. [Trovare il vettore di iniezione] L'avversario identifica un vettore di iniezione per fornire il contenuto eccessivo al buffer dell'applicazione bersaglio. [L'avversario crea il contenuto da iniettare. Se l'intento è semplicemente quello di causare il crash del software, il contenuto deve solo consistere in una quantità eccessiva di dati casuali. Se l'intento è quello di sfruttare l'overflow per l'esecuzione di codice arbitrario, l'avversario crea il payload in modo tale che l'indirizzo di ritorno sovrascritto venga sostituito con uno a scelta dell'avversario. [L'avversario caricherà il file modificato nell'applicazione, causando un overflow del buffer. |
Alto |
47 |
Overflow del buffer tramite espansione dei parametri
In questo attacco, al software di destinazione viene dato un input che l'avversario sa che sarà modificato e ampliato nelle dimensioni durante l'elaborazione. Questo attacco si basa sul fatto che il software di destinazione non riesce ad anticipare che i dati espansi possono superare qualche limite interno, creando così un buffer overflow. [L'avversario identifica un'applicazione o un programma su cui eseguire il buffer overflow. Gli avversari spesso cercano applicazioni che accettano input dall'utente e che eseguono una gestione manuale della memoria. [Trovare il vettore di iniezione] L'avversario identifica un vettore di iniezione per fornire il contenuto eccessivo al buffer dell'applicazione bersaglio. [Creare il contenuto dell'overflow] L'avversario crea l'input da dare al programma. Se l'intento è semplicemente quello di causare il crash del software, l'input deve solo espandersi in una quantità eccessiva di dati casuali. Se l'intento è quello di sfruttare l'overflow per l'esecuzione di codice arbitrario, l'avversario creerà un input che si espande in un modo che non solo fa traboccare il buffer mirato, ma lo fa in modo tale che l'indirizzo di ritorno sovrascritto viene sostituito con uno scelto dall'avversario che punta al codice iniettato dall'avversario. [Usando il vettore di iniezione, l'avversario dà l'input artigianale al programma, facendo traboccare il buffer. |
Alto |
8 |
Buffer Overflow in una chiamata API
Questo attacco prende di mira librerie o moduli di codice condiviso che sono vulnerabili agli attacchi di buffer overflow. Un avversario che ha conoscenza delle librerie o del codice condiviso noto e vulnerabile può facilmente prendere di mira il software che fa uso di queste librerie. Tutti i client che fanno uso della libreria di codice diventano quindi vulnerabili per associazione. Questo ha un effetto molto ampio sulla sicurezza di un sistema, di solito colpendo più di un processo software. [Identificare l'applicazione bersaglio] L'avversario, con la conoscenza delle librerie vulnerabili o dei moduli di codice condiviso, identifica un'applicazione o un programma bersaglio che ne fa uso. [Trovare il vettore di iniezione] L'avversario tenta di utilizzare l'API e, se ci riesce, invia una grande quantità di dati per vedere se l'attacco di buffer overflow funziona davvero. [L'avversario crea il contenuto da iniettare in base alla sua conoscenza della vulnerabilità e al risultato desiderato. Se l'intento è semplicemente quello di causare il crash del software, il contenuto deve solo consistere in una quantità eccessiva di dati casuali. Se l'intento è quello di sfruttare l'overflow per l'esecuzione di codice arbitrario, l'avversario creerà una serie di contenuti che non solo fanno traboccare il buffer mirato, ma lo fanno in modo tale che l'indirizzo di ritorno sovrascritto viene sostituito con uno a scelta dell'avversario che punta al codice iniettato dall'avversario. [Utilizzando l'API come vettore di iniezione, l'avversario inietta il contenuto di overflow artigianale nel buffer. |
Alto |
9 |
Buffer Overflow nelle utilità della riga di comando locali
Questo attacco prende di mira le utilità a riga di comando disponibili in un certo numero di shell. Un avversario può sfruttare una vulnerabilità trovata in un'utilità a riga di comando per aumentare i privilegi a root. [L'avversario prima trova un sistema di destinazione su cui vuole ottenere privilegi elevati. Questo potrebbe essere un sistema a cui ha già un certo livello di accesso o un sistema a cui otterrà un accesso non autorizzato con un privilegio inferiore usando altri mezzi. [L'avversario identifica le utilità della riga di comando esposte dall'host di destinazione che contengono vulnerabilità di buffer overflow. L'avversario probabilmente sa quali utility hanno queste vulnerabilità e quali sono le versioni interessate, quindi otterrà anche i numeri di versione di queste utility. [Una volta che l'avversario ha trovato un'utilità vulnerabile, userà la sua conoscenza della vulnerabilità per creare il comando che sfrutterà il buffer overflow. [Usando il vettore di iniezione, l'avversario esegue il comando creato, ottenendo privilegi elevati sulla macchina. |
Alto |
MITRE
Sherlock® flash
Fotografate la vostra rete di computer in pochi clic !
La soluzione di audit Sherlock® flash consente di eseguire un audit per rafforzare la sicurezza delle risorse IT. Scansione delle vulnerabilità delle apparecchiature fisiche e virtuali. Pianificazione delle patch in base al livello di priorità e al tempo disponibile. Reporting dettagliato e intuitivo.
Scopri questa offerta