La memoria di un programma setuid potrebbe (è probabile che contenga anche) dati riservati. Quindi il core dump dovrebbe essere leggibile solo da root.
Se il core dump è di proprietà di root, non vedo un'evidente falla di sicurezza, anche se il kernel dovrebbe fare attenzione a non sovrascrivere un file esistente.
Linux disabilita i core dump per i programmi setxid. Per abilitarli, devi fare almeno quanto segue (non ho verificato che sia sufficiente):
- Abilita i core dump setuid in generale impostando
fs.suid_dumpable
sysctl a 2, ad es. conecho 2 >/proc/sys/fs/suid_dumpable
. (Nota:2, non 1; 1 significa "Sto eseguendo il debug del sistema nel suo insieme e desidero rimuovere tutta la sicurezza".) - Chiama
prctl(PR_SET_DUMPABLE, 1)
dal programma.
Il core dump contiene una copia di tutto ciò che era in memoria al momento del guasto. Se il programma esegue suid, significa che ha bisogno di accedere a qualcosa a cui tu, come utente, non hai accesso. Se il programma riceve quelle informazioni e poi scarica il core, sarai in grado di leggere quelle informazioni privilegiate.
Dal tuo esempio sopra, sembra che tu sia in grado di ottenere un core dump quando esegui come root o se rimuovi l'escalation dei privilegi.
Anche se potrebbe essere utile (solo per gli sviluppatori, penso) avere un facile accesso a un coredump da un programma setuid, è una falla di sicurezza e dovrebbe essere lasciata sul posto.