Langsung ke konten

Arsip

Resolusi Path

3 artikel
Linux 21 Sep 2026 5 min read

Flag Resolve openat2 Membatasi Traversal Path Saat Lookup

Path yang diberikan ke openat() diresolusikan oleh kernel, tetapi caller hanya memiliki kontrol terbatas atas traversal komponen perantara. Linux openat2() menambahkan field resolve untuk menerapkan batas pada keseluruhan operasi lookup. Batas tersebut diperiksa ketika komponen path sedang ditelusuri, bukan melalui validasi path di userspace yang dilanjutkan dengan open terpisah. Perbedaan ini relevan saat komponen path dapat berubah secara concurrent. Urutan yang memeriksa path lalu membukanya menghasilkan dua observasi terpisah terhadap state filesystem yang mutable. openat2() menempatkan policy lookup pada system call yang sama dengan operasi yang menghasilkan file descriptor.

Keamanan Siber 18 Sep 2026 5 min read

openat2 Menjadikan Resolusi Path sebagai Batas Keamanan Eksplisit

Sebuah layanan berprivilege dapat menerima pathname relatif dari komponen dengan tingkat kepercayaan lebih rendah, sementara akses seharusnya terbatas pada file di bawah direktori tertentu. Pemeriksaan string terhadap .., penolakan garis miring di awal, atau inspeksi symbolic link sebelum open() berikutnya tidak mengikat pemeriksaan tersebut ke lookup kernel yang memperoleh file. Entri direktori dapat berubah di antara dua operasi, symbolic link dapat mengalihkan traversal, dan topologi mount dapat mengubah namespace yang dicapai oleh sebuah path.

Keamanan Siber 17 Sep 2026 5 min read

openat2 Menjadikan Kebijakan Resolusi Path Bagian dari Operasi Open

openat2 Menjadikan Kebijakan Resolusi Path Bagian dari Operasi Open Sebuah layanan menerima pathname relatif dan bermaksud membuka hanya objek di bawah direktori yang sudah dipercaya. Pemeriksaan leksikal dapat menolak komponen .. yang jelas, tetapi namespace filesystem dapat memuat symbolic link, mount point, atau rename bersamaan yang mengubah path walk setelah pemeriksaan tersebut. Keputusan keamanan dan operasi pembukaan file lalu menggambarkan dua momen berbeda. Linux openat2() menyediakan batas yang lebih sempit. Flag resolve membatasi operasi resolusi path kernel yang menghasilkan file descriptor. Mekanisme ini tidak membuat penanganan path arbitrer otomatis aman, tetapi dapat memindahkan beberapa aturan pembatasan dari logika pemeriksaan awal string ke lookup yang benar-benar memilih objek.