Memori program setuid mungkin (kemungkinan besar, bahkan) berisi data rahasia. Jadi core dump harus dapat dibaca oleh root saja.
Jika core dump dimiliki oleh root, saya tidak melihat lubang keamanan yang jelas, meskipun kernel harus berhati-hati agar tidak menimpa file yang ada.
Linux menonaktifkan dump inti untuk program setxid. Untuk mengaktifkannya, Anda perlu melakukan setidaknya hal berikut (saya belum memeriksa apakah ini cukup):
- Aktifkan setuid core dumps secara umum dengan menyetel
fs.suid_dumpable
sysctl ke 2, mis. denganecho 2 >/proc/sys/fs/suid_dumpable
. (Catatan:2, bukan 1; 1 berarti “Saya sedang men-debug sistem secara keseluruhan dan ingin menghapus semua keamanan”.) - Hubungi
prctl(PR_SET_DUMPABLE, 1)
dari program.
Dump inti berisi salinan semua yang ada di memori pada saat terjadi kesalahan. Jika program berjalan suid, itu berarti program memerlukan akses ke sesuatu yang Anda, sebagai pengguna, tidak dapat mengaksesnya. Jika program mendapatkan informasi tersebut kemudian membuang inti, Anda akan dapat membaca informasi istimewa tersebut.
Dari contoh Anda di atas, tampaknya Anda bisa mendapatkan core dump saat menjalankan sebagai root atau jika Anda menghapus eskalasi hak istimewa.
Meskipun mungkin berguna (untuk pengembang hanya methinks) untuk memiliki akses mudah ke coredump dari program setuid, ini adalah lubang keamanan, dan harus dibiarkan.