1.2 CVE-2012-6095
ProFTPD prima della 1.3.5rc1, quando si utilizza la direttiva UserOwner, consente agli utenti locali di modificare la proprietà di file arbitrari tramite una race condition e un attacco di collegamento simbolico ai comandi (1) MKD o (2) XMKD.
https://nvd.nist.gov/vuln/detail/CVE-2012-6095
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
CPE
cpe | avviare | fine |
---|---|---|
Configuration 1 | ||
cpe:2.3:a:proftpd:proftpd:1.2.0:*:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.0:pre10:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.0:pre9:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.0:rc1:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.0:rc2:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.0:rc3:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.1:*:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.2:*:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.2:rc1:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.2:rc2:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.2:rc3:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.3:*:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.4:*:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.5:*:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.5:rc1:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.5:rc2:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.5:rc3:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.6:*:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.6:rc1:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.6:rc2:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.7:*:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.7:rc1:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.7:rc2:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.7:rc3:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.8:*:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.8:rc1:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.8:rc2:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.9:*:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.9:rc1:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.9:rc2:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.9:rc3:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.10:*:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.10:rc1:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.10:rc2:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.2.10:rc3:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.0:*:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.0:a:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.0:rc1:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.0:rc2:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.0:rc3:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.0:rc4:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.0:rc5:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.1:*:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.1:rc1:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.1:rc2:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.1:rc3:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.2:*:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.2:a:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.2:b:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.2:c:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.2:d:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.2:e:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.2:rc1:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.2:rc2:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.2:rc3:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.2:rc4:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.3:*:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.3:a:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.3:b:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.3:c:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.3:rc1:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.3:rc2:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.3:rc3:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.3:rc4:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:*:*:*:*:*:*:*:* | <= 1.3.4 | |
cpe:2.3:a:proftpd:proftpd:1.3.4:rc1:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.4:rc2:*:*:*:*:*:* | ||
cpe:2.3:a:proftpd:proftpd:1.3.4:rc3:*:*:*:*:*:* |
RIMEDIO
EXPLOITS
Exploit-db.com
id | descrizione | data | |
---|---|---|---|
Nessuna impresa nota |
Altro (github, ...)
Url |
---|
Nessuna impresa nota |
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
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.
