Langsung ke konten

Arsip

Sistem File

3 artikel
Rekayasa Perangkat Lunak 18 Sep 2026 5 min read

openat2 Membatasi Resolusi Path di Dalam Batas Direktori

Pathname bukan referensi objek yang stabil. Di antara direktori awal dan komponen akhir, resolusi path Linux dapat mengikuti symbolic link, melewati mount point, memproses .., atau menjumpai link khusus dari pseudo-filesystem. openat2() memungkinkan caller memasang batas pada operasi resolusi tersebut sehingga kernel dapat menolak lookup yang keluar dari boundary yang ditetapkan. Perbedaannya lebih kuat daripada memeriksa string yang sudah dinormalisasi sebelum open(). Validasi string memeriksa sintaks. openat2() dapat membatasi traversal aktual oleh kernel ketika objek filesystem dan topologi mount ikut menentukan hasil lookup.

Rekayasa Perangkat Lunak 18 Sep 2026 5 min read

Linux O_PATH Memisahkan Referensi Objek dari Otoritas I/O

open() biasanya menggabungkan dua efek: resolusi pathname memilih objek sistem file, lalu file descriptor yang dihasilkan membawa mode akses untuk I/O data. Linux O_PATH memisahkan kedua efek tersebut. open(path, O_PATH) yang berhasil menghasilkan descriptor yang merujuk objek terpilih, sementara read() dan write() biasa melalui descriptor itu tidak diizinkan. Pemisahan ini berguna ketika proses memerlukan referensi kernel yang tahan terhadap perubahan nama untuk operasi metadata atau operasi relatif terhadap pathname, tanpa membuka objek untuk transfer data. Analisis race juga berubah: operasi berikutnya dapat dimulai dari descriptor, bukan melakukan resolusi ulang terhadap pathname awal.

Keamanan Siber 18 Sep 2026 4 min read

Flag Resolusi openat2 Membatasi Traversal Path pada Batas Kernel

Sebuah layanan dapat memvalidasi pathname tetapi tetap membuka objek yang berbeda jika namespace berubah antara validasi dan pemakaian. Symbolic link, topologi mount, operasi rename, dan link khusus procfs membuat resolusi pathname menjadi operasi kernel dengan state yang dapat berubah secara konkuren. Linux openat2() menangani sebagian batas ini dengan melekatkan batasan resolusi pada lookup yang menghasilkan file descriptor. Properti keamanannya lebih sempit daripada sanitasi path secara umum. openat2() tidak menyatakan bahwa sebuah pathname aman. Syscall ini memungkinkan pemanggil meminta kernel menolak perilaku resolusi tertentu saat kernel menjalankan path walk.