È un collegamento simbolico una vulnerabilità molto comune nei sistemi UNIX

8

Per quanto ne so, quando sto creando un nuovo file o una nuova directory in una directory che può essere scritta da più utenti (e quindi un avversario può aver creato un link simbolico lì), l'unico modo per proteggermi dalla corsa simbolica sta creando un file con un nome casuale sufficiente.

Bene, alcune app potrebbero aver controllato se tale file esiste già, ma non sono a conoscenza di alcun meccanismo che sia sia atomico sia in grado di rilevare i collegamenti simbolici.

Quindi, quando ci sono molti nomi di file non casuali (o anche riusati) in / tmp da varie app, significa che tutte queste app sono vulnerabili alla corsa dei link simbolici, vero? (Beh, non si può semplicemente decidere se la vulnerabilità può essere facilmente abusata, ma per ora non mi interessa lo sfruttamento pratico.)

Spero di essere sbagliato da qualche parte.

    
posta v6ak 05.03.2015 - 11:02
fonte

1 risposta

5

Quindi questo dovrebbe rispondere alla domanda "è un collegamento simbolico comune?"

Una ricerca nel database MITER mostra che ci sono 4 CVE per una vulnerabilità legata alla condizione Symlink Race di Linux. Per fare un confronto, ci sono 2749 CVE Linux noti a MITER.

Linux a livello di kernel ha protezioni contro questo. Kees Cook ha creato una patch per Linux per prevenire questo problema:

The solution is to permit symlinks to only be followed when outside a sticky world-writable directory, or when the uid of the symlink and follower match, or when the directory owner matches the symlink's owner.

    
risposta data 17.03.2015 - 18:17
fonte

Leggi altre domande sui tag