2.6 CVE-2004-2491

Exploit Patch
 

Una race condition nel browser Web Opera 7.53 Build 3850 fa sì che Opera riempia la barra degli indirizzi prima che la pagina sia stata caricata, il che consente agli aggressori remoti di falsificare l'URL nella barra degli indirizzi tramite i parametri HTML window.open e location.replace, che facilita gli attacchi di phishing.
https://nvd.nist.gov/vuln/detail/CVE-2004-2491

Categorie

CWE-362 : Esecuzione simultanea utilizzando una risorsa condivisa con una sincronizzazione impropria ("condizione di gara")
Il prodotto contiene una sequenza di codice che può essere eseguita in contemporanea con altro codice e la sequenza di codice richiede un accesso temporaneo ed esclusivo a una risorsa condivisa, ma esiste una finestra temporale in cui la risorsa condivisa può essere modificata da un'altra sequenza di codice che sta operando in contemporanea. I metodi della scatola nera possono essere in grado di identificare l'evidenza di condizioni di gara attraverso metodi come le connessioni multiple simultanee, che possono causare l'instabilità o il crash del software. Tuttavia, le condizioni di gara con finestre temporali molto strette non sarebbero rilevabili. Gli idiomi più comuni sono rilevabili con l'analisi white box, come ad esempio le operazioni sui file in time-of-check-time-of-use (TOCTOU) (CWE-367) o il double-checked locking (CWE-609). Nei linguaggi che lo supportano, utilizzare primitive di sincronizzazione. Avvolgerle solo intorno al codice critico per ridurre al minimo l'impatto sulle prestazioni. Utilizzare funzionalità thread-safe, come l'astrazione di accesso ai dati di Spring. Quando si usa il multithreading e si opera su variabili condivise, usare solo funzioni thread-safe. Usare operazioni atomiche su variabili condivise. Diffidate di costrutti dall'aspetto innocente, come "x++". Questo può sembrare atomico a livello di codice, ma in realtà non è atomico a livello di istruzioni, poiché comporta una lettura, seguita da un calcolo, seguito da una scrittura. Utilizzate un mutex se disponibile, ma assicuratevi di evitare le debolezze correlate, come CWE-412. Evitate il double-checked locking (CWE-609) e altri errori di implementazione che si verificano quando si cerca di evitare l'overhead della sincronizzazione. Disattivate gli interrupt o i segnali nelle parti critiche del codice, ma assicuratevi anche che il codice non entri in un loop ampio o infinito. Utilizzare il modificatore di tipo volatile per le variabili critiche per evitare ottimizzazioni o riordini imprevisti del compilatore. Questo non risolve necessariamente il problema della sincronizzazione, ma può essere d'aiuto. Eseguire il codice utilizzando i privilegi più bassi richiesti per svolgere le attività necessarie [REF-76]. Se possibile, creare account isolati con privilegi limitati, da utilizzare solo per un singolo compito. In questo modo, un attacco riuscito non darà immediatamente all'aggressore l'accesso al resto del software o al suo ambiente. Ad esempio, le applicazioni di database raramente hanno bisogno di essere eseguite come amministratore del database, soprattutto nelle operazioni quotidiane. L'applicazione Go per la gestione del cloud crea un file sudoers scrivibile in tutto il mondo che consente agli aggressori locali di iniettare regole sudo e di scalare i privilegi a root vincendo una condizione di gara. Catena: il blocco improprio (CWE-667) porta a una condizione di gara (CWE-362), come sfruttato in natura per CISA KEV. Catena: condizione di gara della piattaforma mobile (CWE-362) che porta all'uso dopo la libertà (CWE-416), come sfruttato in natura per CISA KEV. Catena: condizione di gara (CWE-362) che porta all'uso dopo l'uso (CWE-416), come sfruttato in natura per CISA KEV. catena: L'interfaccia JTAG non è disattivata (CWE-1191) durante l'esecuzione di codice ROM, introducendo una race condition (CWE-362) per l'estrazione di chiavi di crittografia Catena: una race condition (CWE-362) nel prodotto anti-malware consente l'eliminazione di file creando una giunzione (CWE-1386) e utilizzando hard link durante la finestra temporale in cui viene creato ed eliminato un file temporaneo. TOCTOU nel processo sandbox consente l'installazione di componenti aggiuntivi del browser non attendibili sostituendo un file dopo che è stato verificato, ma prima che venga eseguito Catena: il chipset presenta una condizione di gara (CWE-362) tra il momento in cui un gestore di interrupt rileva un tentativo di abilitazione in scrittura del BIOS (in violazione del bit di blocco) e il momento in cui il gestore ripristina il bit di abilitazione in scrittura a 0, consentendo agli aggressori di eseguire scritture del BIOS durante la finestra temporale [REF-1237]. Race condition che porta a un crash chiamando una procedura di rimozione di un hook mentre altre attività sono in corso nello stesso momento. chain: time-of-check time-of-use (TOCTOU) race condition in program allows bypass of protection mechanism that was designed to prevent symlink attacks. chain: time-of-check time-of-use (TOCTOU) race condition in program allows bypass of protection mechanism that was designed to prevent symlink attacks. Un'operazione di caching non sincronizzata abilita una race condition che causa l'invio di messaggi a un oggetto deallocato. Una race condition durante l'inizializzazione innesca un buffer overflow. Il demone si blocca eseguendo rapidamente operazioni e annullandole, il che porta a un'operazione che non acquisisce un blocco. chain: race condition triggers NULL pointer dereference Race condition in library function could cause data to be sent to the wrong process. Una condizione di gara nel parser dei file porta alla corruzione dell'heap. chain: una condizione di gara consente a un aggressore di accedere a un oggetto mentre è ancora in fase di inizializzazione, causando l'accesso del software alla memoria non inizializzata. chain: una condizione di gara per il valore di un argomento, che potrebbe portare alla dereferenziazione di NULL. chain: una condizione di gara potrebbe consentire il rilascio di una risorsa prima di operare su di essa, portando alla dereferenziazione di NULL: Il gestore di segnali contiene troppe funzionalità (CWE-828), introducendo una condizione di gara (CWE-362) che porta a un doppio free (CWE-415).

Riferimenti

BID Patch Exploit

10810
Broken Link Exploit Patch Third Party Advisory VDB Entry

CONFIRM Patch

FULLDISC Exploit

OSVDB Exploit

8317
Broken Link Exploit

SECUNIA Patch

12162
Broken Link Patch

XF

opera-addressbar-spoofing(16816)
Third Party Advisory VDB Entry


 

CPE

cpe avviare fine
Configuration 1
cpe:2.3:a:opera:opera_browser:*:*:*:*:*:*:*:* <= 7.53


RIMEDIO


Patch

Url
10810
http://www.opera.com/windows/changelogs/754/
12162


EXPLOITS


Exploit-db.com

id descrizione data
24325 Opera Web Browser 7.53 - Posizione Sostituisci l'offuscamento dell'URI 2004-07-27 00:00:00

Altro (github, ...)

Url
10810
20040726 Opera 7.53 (Build 3850) Address Bar Spoofing Issue
8317


CAPEC


Common Attack Pattern Enumerations and Classifications

id descrizione gravità
26 Sfruttare le condizioni di gara
Alto
29 Sfruttando le condizioni di gara del tempo di controllo e del tempo di utilizzo (TOCTOU)
Alto


MITRE