Pengantar

Sebuah kerentanan keamanan serius ditemukan pada OpenSSH yang memungkinkan penyerang masuk ke akun Linux tertentu tanpa mengetahui password yang benar. Kerentanan yang dikenal dengan nama SSHole ini memanfaatkan kelemahan dalam proses autentikasi password pada OpenSSH yang berjalan menggunakan musl C Library.

Kerentanan tersebut menjadi perhatian karena dapat dimanfaatkan dari jarak jauh hanya dengan mengirimkan password yang sangat panjang, yaitu antara 257 hingga 1.024 karakter. Dalam kondisi tertentu, penyerang dapat masuk ke akun yang sebenarnya sudah dikonfigurasi untuk menolak autentikasi menggunakan password.

Masalah ini terutama berdampak pada sistem berbasis Alpine Linux dan distribusi Linux lain yang menggunakan musl C Library dengan konfigurasi autentikasi tertentu.

OpenSSH telah merilis pembaruan darurat versi 10.6p2 pada 5 November 2026 untuk mengatasi masalah tersebut. Administrator server diminta segera memperbarui perangkat lunak dan memeriksa konfigurasi SSH yang digunakan.

Mengenal Kerentanan SSHole pada OpenSSH

SSHole merupakan kerentanan pada mekanisme autentikasi OpenSSH yang memungkinkan penyerang melewati pemeriksaan password pada akun Linux tertentu.

Kerentanan ini ditemukan oleh peneliti keamanan Özgün Kültekin dari Wakefield. Menurut laporan penelitian, masalah tersebut sebenarnya sudah ada sejak perubahan mekanisme autentikasi OpenSSH pada tahun 2016.

Untuk memahami masalah ini, kita perlu mengetahui bagaimana Linux menyimpan informasi password pengguna.

Linux menggunakan file /etc/shadow untuk menyimpan informasi password dalam bentuk hash. Administrator dapat menonaktifkan autentikasi password suatu akun dengan mengganti nilai password hash menjadi karakter bintang (*).

Sebagai contoh, sebuah akun yang memiliki nilai * pada /etc/shadow seharusnya tidak dapat digunakan untuk login menggunakan password.

Namun, akibat interaksi antara OpenSSH dan musl C Library, kondisi tersebut dapat dilewati menggunakan password dengan ukuran tertentu.

Inilah yang menjadi dasar munculnya kerentanan SSHole.

Bagaimana Kerentanan SSHole Bekerja?

Kerentanan ini berkaitan dengan cara OpenSSH memeriksa password yang dikirimkan pengguna dan bagaimana musl C Library menangani kegagalan proses hashing.

Agar lebih mudah dipahami, berikut penjelasan prosesnya.

1. Linux Menonaktifkan Password Akun

Administrator dapat menonaktifkan autentikasi password suatu akun dengan mengubah password hash menjadi karakter * pada file /etc/shadow.

Contoh sederhana:

alpine:*

Dalam kondisi normal, akun tersebut tidak dapat digunakan untuk login menggunakan password.

2. OpenSSH Melakukan Pemeriksaan Password

Ketika pengguna mencoba login melalui SSH, OpenSSH akan memeriksa password yang dikirimkan.

Pada sistem tertentu yang tidak menggunakan PAM, OpenSSH menggunakan fungsi crypt() dari C Library untuk melakukan proses hashing password.

Hasilnya kemudian dibandingkan dengan nilai password hash yang tersimpan di sistem.

3. Musl C Library Mengalami Kegagalan Hashing

Masalah muncul ketika penyerang mengirimkan password yang ukurannya melebihi batas 256 byte.

Musl C Library dapat mengembalikan karakter * sebagai tanda bahwa proses hashing mengalami kegagalan.

4. Terjadi Kesamaan Nilai Password

Karena akun yang dinonaktifkan juga memiliki nilai * pada /etc/shadow, hasil kegagalan hashing tersebut dapat dianggap cocok dengan nilai yang tersimpan.

Akibatnya, OpenSSH dapat menerima autentikasi dan memberikan akses ke akun yang seharusnya tidak bisa digunakan untuk login menggunakan password.

Dengan kata lain, karakter yang seharusnya menandakan kegagalan proses hashing justru dianggap sebagai kecocokan password.

Inilah penyebab utama kerentanan SSHole.

Distribusi Linux yang Terdampak

Kerentanan SSHole tidak menyerang seluruh distribusi Linux. Masalah ini terutama berkaitan dengan sistem yang menggunakan musl C Library dan menjalankan OpenSSH tanpa dukungan PAM dalam konfigurasi tertentu.

Beberapa distribusi yang perlu mendapatkan perhatian antara lain:

  • Alpine Linux: Distribusi Linux ringan yang banyak digunakan untuk server, container Docker, dan lingkungan cloud.
  • OpenWrt: Sistem operasi berbasis Linux yang banyak digunakan pada router dan perangkat jaringan.
  • Buildroot: Perangkat untuk membangun sistem Linux embedded.
  • Yocto: Framework untuk membangun distribusi Linux khusus perangkat embedded.

Namun, penggunaan distribusi tersebut tidak otomatis berarti sistem rentan. Eksploitasi membutuhkan kombinasi kondisi konfigurasi tertentu.

Persyaratan agar serangan berhasil

Beberapa kondisi yang harus terpenuhi meliputi:

  1. Server menjalankan OpenSSH pada sistem berbasis musl C Library.
  2. PAM authentication dinonaktifkan.
  3. SSH password authentication diaktifkan.
  4. Terdapat akun dengan password hash berupa karakter *.
  5. Terdapat akun lain yang memiliki password hash valid.

Sementara itu, distribusi seperti Debian, Ubuntu, dan Fedora yang menggunakan glibc tidak terdampak oleh mekanisme eksploitasi SSHole yang dijelaskan dalam laporan tersebut.

Mengapa Alpine Linux Menjadi Target yang Berisiko?

Alpine Linux merupakan salah satu distribusi yang perlu mendapatkan perhatian khusus.

Distribusi ini dikenal memiliki ukuran yang kecil dan penggunaan sumber daya yang efisien. Karena karakteristik tersebut, Alpine banyak digunakan sebagai base image untuk container Docker dan berbagai lingkungan cloud.

Masalahnya, paket OpenSSH standar Alpine memiliki konfigurasi yang memenuhi beberapa persyaratan eksploitasi SSHole.

Selain itu, sejumlah image cloud resmi Alpine memiliki akun bawaan bernama alpine yang password-nya dinonaktifkan, tetapi memiliki hak menjalankan perintah melalui doas tanpa password.

Dalam konfigurasi tertentu, apabila penyerang berhasil masuk menggunakan kerentanan SSHole, akses tersebut dapat dimanfaatkan untuk memperoleh hak akses root melalui doas.

Artinya, dampak serangan tidak hanya sebatas mendapatkan akses ke akun pengguna, tetapi berpotensi berkembang menjadi pengambilalihan sistem.

Administrator yang menggunakan image Alpine pada AWS, Azure, maupun lingkungan cloud lainnya perlu memeriksa konfigurasi dan status pembaruan sistem.

Dampak Keamanan SSHole

Kerentanan SSHole dapat menimbulkan sejumlah risiko terhadap keamanan server Linux.

Beberapa dampak yang perlu diperhatikan antara lain:

1. Akses Tidak Sah ke Server

Penyerang dapat masuk ke akun yang seharusnya tidak menerima autentikasi menggunakan password.

2. Bypass Autentikasi SSH

Mekanisme autentikasi yang dirancang untuk melindungi akun Linux dapat dilewati dalam kondisi tertentu.

3. Pengambilalihan Hak Akses

Pada konfigurasi tertentu, akun yang berhasil diakses memiliki hak untuk menjalankan perintah administratif sehingga dapat membuka peluang memperoleh akses root.

4. Kompromi Infrastruktur Cloud

Server dan container yang menggunakan image Linux rentan dapat menjadi pintu masuk bagi penyerang untuk mengakses lingkungan cloud.

5. Pencurian Informasi dan Gangguan Layanan

Setelah memperoleh akses, penyerang berpotensi membaca informasi sensitif, mengubah konfigurasi, memasang program berbahaya, atau mengganggu layanan server.

Langkah Mitigasi dan Perbaikan

OpenSSH telah merilis versi 10.6p2 sebagai pembaruan keamanan untuk mengatasi kerentanan SSHole.

Administrator disarankan segera melakukan pembaruan, terutama pada server yang menggunakan musl C Library.

Berikut beberapa langkah yang dapat dilakukan.

1. Perbarui OpenSSH

Untuk pengguna Alpine Linux, jalankan perintah berikut:

apk update
apk upgrade openssh

Setelah proses pembaruan selesai, periksa versi OpenSSH yang digunakan:

ssh -V

Pastikan sistem menggunakan versi yang sudah diperbaiki atau paket distribusi yang telah mendapatkan backport patch keamanan.

Alpine Linux juga telah menyediakan paket perbaikan untuk berbagai rilis yang masih didukung, termasuk sejumlah rilis lama.

2. Nonaktifkan SSH Password Authentication

Jika pembaruan belum dapat dilakukan, administrator dapat menonaktifkan autentikasi menggunakan password.

Edit file konfigurasi SSH:

vi /etc/ssh/sshd_config

Pastikan konfigurasi berikut diterapkan:

PasswordAuthentication no

Kemudian periksa konfigurasi SSH sebelum melakukan restart:

sshd -t

Jika tidak ditemukan kesalahan, restart layanan SSH:

rc-service sshd restart

Pastikan autentikasi menggunakan SSH public key sudah berfungsi sebelum menonaktifkan password authentication. Langkah ini penting agar administrator tidak kehilangan akses ke server.

3. Periksa Akun yang Dinonaktifkan

Administrator dapat memeriksa akun yang memiliki password hash berupa karakter * melalui file /etc/shadow.

Contoh:

grep '\*' /etc/shadow

Perlu diperhatikan bahwa pemeriksaan ini harus dilakukan dengan hak akses yang sesuai. Selain itu, keberadaan karakter * saja tidak membuktikan bahwa akun telah dieksploitasi.

4. Periksa Log Aktivitas SSH

Administrator juga perlu memeriksa log autentikasi untuk mengetahui apakah terdapat login yang mencurigakan.

Pada Alpine Linux, jalankan:

grep "Accepted password" /var/log/messages

Perhatikan apabila terdapat aktivitas login password yang berhasil pada akun yang seharusnya tidak mengizinkan autentikasi password.

Jika ditemukan aktivitas seperti itu, lakukan investigasi lebih lanjut karena dapat menjadi indikasi eksploitasi SSHole.

5. Audit Aktivitas Pengguna dan Hak Akses

Selain memeriksa log SSH, administrator perlu melakukan pemeriksaan terhadap:

  • Penggunaan perintah doas.
  • Pembuatan akun pengguna baru.
  • Perubahan file authorized_keys.
  • Perubahan konfigurasi SSH.
  • Proses atau layanan yang tidak dikenal.
  • File mencurigakan pada sistem.

Jika terdapat indikasi bahwa server telah berhasil dikompromikan, organisasi perlu melakukan proses respons insiden dan pemulihan sistem.

AI Membantu Peneliti Menemukan Kerentanan SSHole

Salah satu hal menarik dari penemuan SSHole adalah penggunaan AI agents dalam proses penelitian keamanan.

Peneliti Özgün Kültekin menggunakan AI agents untuk membantu melakukan pengujian terhadap berbagai kemungkinan konfigurasi autentikasi OpenSSH.

Dalam proses tersebut, sekitar 17.600 pengujian dilakukan dengan variasi konfigurasi OpenSSH, password hash yang tidak valid, dan password berukuran besar.

Pengujian ini membantu mengidentifikasi kondisi tertentu yang menyebabkan proses autentikasi mengalami kesalahan.

Temuan tersebut menunjukkan bahwa AI dapat dimanfaatkan sebagai alat bantu dalam penelitian keamanan siber, khususnya untuk menguji berbagai skenario dan menemukan kelemahan yang mungkin terlewatkan dalam pengujian manual.

Meskipun demikian, hasil pengujian tetap membutuhkan analisis dan validasi dari peneliti keamanan sebelum dinyatakan sebagai kerentanan.

Kesimpulan

SSHole merupakan kerentanan keamanan serius yang menunjukkan bahwa kesalahan kecil dalam proses autentikasi dapat memberikan dampak besar terhadap keamanan sebuah sistem.

Kerentanan ini memanfaatkan interaksi antara OpenSSH dan musl C Library sehingga password berukuran sangat panjang dapat menyebabkan autentikasi berhasil pada akun Linux tertentu yang seharusnya tidak menerima login menggunakan password.

Meskipun tidak semua distribusi Linux terdampak, administrator yang menggunakan Alpine Linux, OpenWrt, Buildroot, dan sistem berbasis musl lainnya perlu memeriksa konfigurasi OpenSSH mereka.

OpenSSH telah menyediakan perbaikan melalui versi 10.6p2. Oleh karena itu, pembaruan perangkat lunak, pembatasan autentikasi password, serta pemeriksaan log aktivitas SSH menjadi langkah penting untuk mengurangi risiko serangan.

Kasus ini juga menjadi pengingat bahwa keamanan server Linux tidak hanya bergantung pada penggunaan password yang kuat, tetapi juga pada bagaimana sistem memproses dan memvalidasi autentikasi pengguna.