2.1 CVE-2011-3149
Exploit Buffer Overflow Patch Ransomware Risk
La funzione _expand_arg nel modulo pam_env (modules/pam_env/pam_env.c) in Linux-PAM (aka pam) prima della 1.1.5 non gestisce correttamente quando l'espansione della variabile d'ambiente può traboccare, il che consente agli utenti locali di causare un denial of service ( consumo della CPU).
https://nvd.nist.gov/vuln/detail/CVE-2011-3149
Categorie
CWE-119 : Limitazione impropria delle operazioni entro i limiti di un buffer di memoria
Il software esegue operazioni su un buffer di memoria, ma può leggere da o scrivere in una posizione di memoria che è al di fuori del confine previsto del buffer. Il termine "buffer overflow" ha molti significati diversi per un pubblico diverso. Da una prospettiva di mappatura CWE, questo termine dovrebbe essere evitato dove possibile. Alcuni ricercatori, sviluppatori e strumenti intendono con questo termine "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 significare "qualsiasi azione dopo la fine di un buffer, che sia una lettura o una scrittura". Poiché il termine è comunemente usato per lo sfruttamento e per le vulnerabilità, confonde ulteriormente le cose. Alcuni importanti venditori e ricercatori usano il termine "buffer overrun", ma la maggior parte delle persone usa "buffer overflow". Vedere il termine alternativo per "buffer overflow" per il contesto. La "sicurezza della memoria" è generalmente usata per tecniche che evitano le debolezze relative all'accesso alla memoria, come quelle identificate da CWE-119 e dai suoi discendenti. Tuttavia, il termine non è formale, e c'è probabilmente disaccordo tra i professionisti su quali debolezze sono implicitamente coperte dal termine "sicurezza della memoria". Questa debolezza può essere rilevata utilizzando strumenti dinamici e tecniche che interagiscono con il software utilizzando grandi suite di test con molti input diversi, come il fuzz testing (fuzzing), il test di robustezza e l'iniezione di errori. Il funzionamento del software può rallentare, ma non deve diventare instabile, bloccarsi o generare risultati errati. Usare una CPU e un sistema operativo che offra la protezione dell'esecuzione dei dati (NX) o il suo equivalente [REF-60] [REF-61]. Sostituite le funzioni di copia senza limiti con funzioni analoghe che supportano argomenti di lunghezza, come strcpy con strncpy. Crearle se non sono disponibili. Overflow del buffer basato sullo stack classico nel lettore multimediale usando una voce lunga in una playlist Overflow del buffer basato sullo stack nel lettore multimediale usando una voce lunga in una playlist Il valore di grande precisione in una stringa di formato innesca l'overflow Il valore di offset negativo porta alla lettura fuori dai limiti Gli input malformati causano accessi di oggetti non inizializzati o precedentemente cancellati, portando alla catena di corruzione della memoria: la mancanza di sincronizzazione porta alla corruzione della memoria catena: il prodotto di apprendimento automatico può avere un overflow del buffer basato sull'heap (CWE-122) quando alcuni limiti orientati agli interi sono calcolati usando ceiling() e floor() su valori in virgola mobile (CWE-1339) l'indice dell'array controllato dall'attaccante porta all'esecuzione del codice catena: il valore -1 da una chiamata di funzione era destinato a indicare un errore, ma viene invece usato come indice dell'array catena: i calcoli errati portano al dereferenziamento errato del puntatore e alla corruzione della memoria il prodotto accetta messaggi crafted che portano al dereferenziamento di un puntatore arbitrario catena: l'input malformato causa il dereferenziamento di una memoria non inizializzata il kernel OS si fida del valore di lunghezza fornito dall'utente, permettendo la lettura di informazioni sensibili catena: l'overflow di interi nel programma di posta codificato in modo sicuro porta al buffer overflow. Nel 2005, questo è stato considerato irrealistico da sfruttare, ma nel 2020, è stato riscoperto essere più facile da sfruttare a causa delle evoluzioni della tecnologia. buffer overflow che coinvolge un'espressione regolare con un gran numero di catture catena: metadati di dimensione del messaggio non controllati permettono l'overflow del numero intero (CWE-190) che porta al buffer overflow (CWE-119).
Riferimenti
CONFIRM Patch Exploit
GENTOO
SECUNIA
UBUNTU
CPE
cpe |
avviare |
fine |
Configuration 1 |
cpe:2.3:a:linux-pam:linux-pam:0.99.1.0:*:*:*:*:*:*:* |
|
|
cpe:2.3:a:linux-pam:linux-pam:0.99.2.0:*:*:*:*:*:*:* |
|
|
cpe:2.3:a:linux-pam:linux-pam:0.99.2.1:*:*:*:*:*:*:* |
|
|
cpe:2.3:a:linux-pam:linux-pam:0.99.3.0:*:*:*:*:*:*:* |
|
|
cpe:2.3:a:linux-pam:linux-pam:0.99.4.0:*:*:*:*:*:*:* |
|
|
cpe:2.3:a:linux-pam:linux-pam:0.99.5.0:*:*:*:*:*:*:* |
|
|
cpe:2.3:a:linux-pam:linux-pam:0.99.6.0:*:*:*:*:*:*:* |
|
|
cpe:2.3:a:linux-pam:linux-pam:0.99.6.1:*:*:*:*:*:*:* |
|
|
cpe:2.3:a:linux-pam:linux-pam:0.99.6.2:*:*:*:*:*:*:* |
|
|
cpe:2.3:a:linux-pam:linux-pam:0.99.6.3:*:*:*:*:*:*:* |
|
|
cpe:2.3:a:linux-pam:linux-pam:0.99.7.0:*:*:*:*:*:*:* |
|
|
cpe:2.3:a:linux-pam:linux-pam:0.99.7.1:*:*:*:*:*:*:* |
|
|
cpe:2.3:a:linux-pam:linux-pam:0.99.8.0:*:*:*:*:*:*:* |
|
|
cpe:2.3:a:linux-pam:linux-pam:0.99.8.1:*:*:*:*:*:*:* |
|
|
cpe:2.3:a:linux-pam:linux-pam:0.99.9.0:*:*:*:*:*:*:* |
|
|
cpe:2.3:a:linux-pam:linux-pam:0.99.10.0:*:*:*:*:*:*:* |
|
|
cpe:2.3:a:linux-pam:linux-pam:1.0.0:*:*:*:*:*:*:* |
|
|
cpe:2.3:a:linux-pam:linux-pam:1.0.1:*:*:*:*:*:*:* |
|
|
cpe:2.3:a:linux-pam:linux-pam:1.0.2:*:*:*:*:*:*:* |
|
|
cpe:2.3:a:linux-pam:linux-pam:1.0.3:*:*:*:*:*:*:* |
|
|
cpe:2.3:a:linux-pam:linux-pam:1.0.4:*:*:*:*:*:*:* |
|
|
cpe:2.3:a:linux-pam:linux-pam:1.1.0:*:*:*:*:*:*:* |
|
|
cpe:2.3:a:linux-pam:linux-pam:1.1.1:*:*:*:*:*:*:* |
|
|
cpe:2.3:a:linux-pam:linux-pam:1.1.2:*:*:*:*:*:*:* |
|
|
cpe:2.3:a:linux-pam:linux-pam:1.1.3:*:*:*:*:*:*:* |
|
|
cpe:2.3:a:linux-pam:linux-pam:*:*:*:*:*:*:*:* |
|
<= 1.1.4 |
Patch
Exploits
Exploit-db.com
id |
descrizione |
data |
|
Nessuna impresa nota |
Altro (github, ...)/h5>
CAPEC
id |
descrizione |
gravità |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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