Tilde di PATH bisa jadi celah keamanan

Judul asli: The tilde in your PATH may not be your HOME

Mengapa Ini Penting

Kesalahan konfigurasi PATH ini bisa membuka jalur eksekusi kode arbitrer di sistem pengguna.

Penulisan `~/.local/bin` dalam tanda kutip di PATH tidak mengekspansi tilde ke $HOME, melainkan membuat direktori `./~/.local/bin` yang bisa dieksploitasi.

Peneliti keamanan Disconnect3d menemukan potensi masalah keamanan saat bermain dengan tool sandboxing bernama nono. Tool tersebut memunculkan peringatan: "PATH entries the sandbox can write to: ~/.local/bin/".

Akar masalahnya ada di shell. Ketika pengguna menulis `export PATH="$PATH:~/.local/bin/"` di file `.bashrc` atau `.zshrc`, tilde tidak diubah menjadi path home. Dokumentasi Bash menyebutkan ekspansi tilde hanya terjadi pada input tanpa tanda kutip. Akibatnya, yang masuk ke PATH bukan `/home/user/.local/bin`, melainkan `./~/.local/bin` — direktori lokal relatif.

Dalam demonstrasi, peneliti berhasil mengeksekusi binary bernama `kek` dari direktori `./~/.local/bin/` yang ia buat secara manual. Artinya, penyerang yang bisa menulis ke direktori kerja bisa menaruh binary berbahaya di sana dan menjalankannya tanpa sepengetahuan pengguna.

Versi tanpa kutip seperti `export PATH=$PATH:~/.local/bin` memang bekerja di Bash dan Zsh, tapi rapuh — spasi tunggal bisa memecah assignment tersebut. Solusi yang direkomendasikan adalah menggunakan `$HOME` secara eksplisit: `export PATH="$PATH:$HOME/.local/bin"`.

Untuk mengecek apakah PATH sudah terdampak, jalankan: `echo "$PATH" | tr ':' '\n' | grep '~'`. Jika ada output, segera perbaiki file konfigurasi shell.

Sumber

disconnect3d.pl — Baca artikel asli →