- Karena race condition pada handler sinyal di server OpenSSH
sshd, klien yang belum terautentikasi dapat memicu eksekusi kode jarak jauh pada server dengan konfigurasi default jika tidak melakukan autentikasi dalam batas waktu praautentikasiLoginGraceTime - Kerentanan ini adalah regresi (regression) dari CVE-2006-5051 tahun 2006, dan muncul kembali pada versi 8.5p1 hingga sebelum 9.8p1 setelah commit OpenSSH 8.5p1 pada Oktober 2020 menghapus pengaman dari
sigdie() - Pada Linux berbasis glibc,
syslog()memanggil fungsi yang tidak async-signal-safe sepertimalloc()danfree(), sehingga dapat berujung pada RCE root tanpa autentikasi di kode privilegedsshdyang tidak di-sandbox - Eksperimen dilakukan pada mesin virtual i386 dan jaringan stabil dengan jitter paket sekitar 10ms; pada Debian 12.5.0 OpenSSH 9.2p1, rata-rata dibutuhkan sekitar 10.000 percobaan, dan sekitar 6–8 jam hingga mendapatkan root shell dengan kondisi
MaxStartups=100danLoginGraceTime=120 - OpenSSH memperbaikinya lewat commit
81c1099pada 6 Juni 2024; jika pembaruan atau kompilasi ulang sulit dilakukan, mengaturLoginGraceTime 0dapat mencegah RCE, tetapi risiko DoS karena habisnya koneksi MaxStartups tetap ada
Titik Terjadinya Kerentanan
- Masalah pada OpenSSH
sshdbermula dari handler SIGALRM yang berjalan sebelum autentikasi- Jika klien tidak melakukan autentikasi dalam
LoginGraceTime, handlerSIGALRMdipanggil secara asinkron - Handler ini memanggil fungsi yang tidak async-signal-safe, seperti
syslog() - Nilai defaultnya adalah
LoginGraceTime=120detik, dan pada versi OpenSSH lama nilainya 600 detik
- Jika klien tidak melakukan autentikasi dalam
- Kerentanan ini adalah regresi dari CVE-2006-5051
- CVE-2006-5051 adalah race condition pada handler sinyal di OpenSSH sebelum 4.4, yang dilaporkan oleh Mark Dowd pada 2006
- Pada Oktober 2020, commit
752250cdi OpenSSH 8.5p1 secara tidak sengaja menghapus#ifdef DO_LOG_SAFE_IN_SIGHANDdarisigdie()
- Cakupan dampak berbeda jelas menurut versi
- OpenSSH sebelum 4.4p1: rentan jika patch terkait CVE-2006-5051 atau CVE-2008-4109 belum di-backport
- OpenSSH 4.4p1 hingga sebelum 8.5p1:
sigdie()diubah menjadi pemanggilan_exit(1)yang aman, sehingga tidak rentan terhadap race condition ini - OpenSSH 8.5p1 hingga sebelum 9.8p1: kembali rentan karena pengaman dihapus
Lingkungan yang Terdampak dan Pengecualian
- Target eksploitasi jarak jauh adalah Linux berbasis glibc
syslog()milik glibc secara internal memanggil fungsi yang tidak async-signal-safe sepertimalloc()danfree()- Kode rentan berada di kode privileged
sshd, berjalan tanpa sandbox dan dengan full privilege - Akibatnya, eksekusi kode root jarak jauh tanpa autentikasi dimungkinkan
- libc atau sistem operasi lain tidak termasuk dalam cakupan investigasi
- OpenBSD tidak rentan
- Handler
SIGALRMdi OpenBSD memanggilsyslog_r()alih-alihsyslog() syslog_r()adalah versi yang lebih async-signal-safe yang dibuat OpenBSD pada 2001
- Handler
Prasyarat Riset Eksploitasi Jarak Jauh
- Untuk mengeksploitasi race condition ini dari jarak jauh, tiga masalah perlu dipecahkan
- Diperlukan jalur kode yang membuat
sshdberada dalam keadaan tidak konsisten ketikaSIGALRMmenyela pada saat yang tepat - Perlu mencapai jalur kode tersebut dan meningkatkan peluang interupsi pada waktu yang benar
- Timing tersebut harus bisa dicapai bahkan di lingkungan jaringan jarak jauh
- Diperlukan jalur kode yang membuat
- Riset dimulai dari lingkungan i386 OpenSSH lama, bukan langsung berhadapan dengan teknik proteksi modern, lalu diperluas ke versi terbaru
- Kondisi eksperimen memiliki batasan yang jelas
- Hanya menargetkan mesin virtual, bukan server bare-metal
- Jaringannya adalah link yang relatif stabil dengan jitter paket sekitar 10ms
- Banyak bagian eksploit masih dapat ditingkatkan
- Pekerjaan eksploit amd64 sudah dimulai, tetapi jauh lebih sulit karena ASLR yang lebih kuat
Eksperimen pada Target OpenSSH Lama
-
Debian 3.0r6, OpenSSH 3.4p1
- Targetnya adalah
SSH-2.0-OpenSSH_3.4p1 Debian 1:3.4p1-1.woody.3, lingkungan Debian 3.0r6 tahun 2005 - Versi Debian ini adalah versi Debian pertama dengan privilege separation aktif secara default, dan patch kerentanan utama saat itu sudah diterapkan
- Eksploitasi memanfaatkan interupsi
free()dan keadaan heap yang tidak konsisten- Pemanggilan
free()di dalam kode parsing kunci publik disela olehSIGALRM - Setelah itu, keadaan heap yang tidak konsisten dimanfaatkan pada
free()lain di dalampacket_close()
- Pemanggilan
- glibc 2.2.5 belum memiliki hardening terhadap teknik
unlink()dari Solar Designer - Serangan menimpa
__free_hookuntuk mengalihkan alur eksekusi ke alamat shellcode di heap - Versi Debian ini tidak memiliki ASLR maupun NX
- Setelah perbaikan timing, rata-rata dibutuhkan sekitar 10.000 percobaan
- Dengan
MaxStartups=10danLoginGraceTime=600, rata-rata dibutuhkan sekitar 1 minggu hingga mendapatkan root shell jarak jauh
- Targetnya adalah
-
Ubuntu 6.06.1, OpenSSH 4.2p1
- Targetnya adalah
SSH-2.0-OpenSSH_4.2p1 Debian-7ubuntu3, lingkungan Ubuntu 6.06.1 tahun 2006 - Ini adalah versi Ubuntu terakhir yang masih rentan terhadap CVE-2006-5051
- Karena glibc 2.3.6 mengambil mandatory lock saat masuk ke fungsi keluarga malloc, metode mengeksploitasi pemanggilan malloc lain setelah interupsi malloc berujung pada deadlock
- Jalur eksploitasi final memanfaatkan PAM
pam_start()mengatur pointer globalsshpam_handlemiliksshd- Jika
_pam_add_handler()disela, fieldnextyang belum diinisialisasi dapat tersisa - Ketika
pam_end()dipanggil di handler SIGALRM, pointer arbitrer dapat diteruskan kefree()
- Karena teknik
unlink()lama glibc sudah diblokir, digunakan versi fastbin dari Malloc Maleficarum House of Mind - Fake arena diarahkan ke
.got.pltmiliksshd, lalu entri_exit()ditimpa dengan alamat shellcode heap - Heap Ubuntu ini secara default dapat dieksekusi
- Rata-rata dibutuhkan sekitar 10.000 percobaan
- Dengan
MaxStartups=10danLoginGraceTime=120, rata-rata dibutuhkan sekitar 1–2 hari hingga mendapatkan root shell jarak jauh - Penyerang yang kurang beruntung dapat membuat semua 10 koneksi
MaxStartupsmengalami deadlock sebelum mendapatkan root shell
- Targetnya adalah
Eksperimen Debian 12.5.0, OpenSSH 9.2p1
-
Jalur
syslog()dan malloc glibc- Targetnya adalah
SSH-2.0-OpenSSH_9.2p1 Debian-2+deb12u2, lingkungan current stable Debian 12.5.0 tahun 2024 - Lingkungan ini rentan terhadap regresi CVE-2006-5051
- Handler
SIGALRMpada versi ini tidak memanggilpacket_close()ataupam_end(), tetapi masuk ke jalursyslog()grace_alarm_handler()memanggilsigdie()sigdie()memanggilsyslog()lewatsshlogv()dando_log()
syslog()pada Debian glibc 2.36 memanggil malloc saat pemanggilan pertama__tzfile_read()dipanggil melalui jalur__localtime64_r()fopen()memanggilmalloc(304)untuk struktur FILEmalloc(4096)juga dipanggil untuk read buffer internal
- Sejak Oktober 2017, malloc glibc tidak mengambil mandatory lock dalam situasi single-thread
- Pada proses single-thread seperti
sshd, muncul kemungkinan mengeksploitasi race pada malloc
- Targetnya adalah
-
Kondisi ASLR dan Batasan i386
- Lingkungan Debian 12.5.0 i386 memiliki kelemahan ASLR
- PIE
sshd, heap, sebagian besar library, dan stack umumnya diacak - glibc sendiri selalu dipetakan di
0xb7200000atau0xb7400000 - Alamat glibc dapat ditebak dengan probabilitas setengah
- Eksploit mengasumsikan glibc dipetakan di
0xb7400000 - Alasannya, alamat ini sedikit lebih sering muncul dibanding
0xb7200000
-
Ketidakkonsistenan heap dan eksploitasi struktur FILE
- Jalur malloc yang dipilih adalah jalur split yang membagi free chunk besar menjadi dua
- Chunk yang akan dikembalikan dan remainder chunk terbentuk
- Jika
SIGALRMmenyela setelah remainder chunk ditautkan ke unsorted list tetapi sebelum field size diinisialisasi, terjadi ketidakkonsistenan heap - Penyerang mengendalikan field size dari remainder chunk lewat sisa data dari alokasi heap sebelumnya
- Remainder chunk dibuat lebih besar dari ukuran sebenarnya sehingga tumpang tindih dengan chunk heap lain
- Saat malloc di dalam handler SIGALRM menggunakan chunk ini, memori heap tercemar
- Targetnya adalah struktur FILE yang dialokasikan
fopen()di heap dalam__tzfile_read()- Dengan heap corruption terbatas, 1 byte
_vtable_offsetpada struktur FILE ditimpa - Fungsi libio glibc kemudian mencari pointer vtable di offset lain, bukan posisi default
- Penyerang mengendalikan fake vtable pointer dan pointer
_codecvtdi lokasi tersebut menggunakan sisa data dari alokasi heap sebelumnya
- Dengan heap corruption terbatas, 1 byte
- Pada glibc i386, teknik ini dapat memanggil pointer fungsi arbitrer
__fctselama__fread_unlocked() - glibc amd64 tampaknya tidak menggunakan
_vtable_offset
-
Heap layout dan 27 race window
- Karena sulit memenangkan race condition hanya dengan satu small race window, dibuat 27 pasang large hole dan small hole
- 28 pasang akan melampaui
PACKET_MAX_SIZE256KB - Paket final memaksa urutan
malloc(~4KB), malloc(304), malloc(~4KB), malloc(304) - Jika setiap split large hole disela pada momen yang tepat,
fopen()milik handler SIGALRM mengalokasikan small hole yang sesuai sebagai struktur FILE - Untuk membuat heap layout, digunakan kode parsing kunci publik
sshd- Jalur
cert_parse()dancert_free()menjalankan urutanmalloc()danfree()yang hampir arbitrer - Karena tidak menemukan memory leak, chunk tcache digunakan sementara sebagai barrier chunk
- Jalur
- Lima jenis paket kunci publik dikirim
- a/ Membuat alokasi heap yang tidak dapat dikendalikan masuk ke chunk tcache
- b/ Membuat 27 pasang large/small hole dan barrier chunk
- c/ Menulis fake header, fake footer, fake vtable, dan pointer
_codecvt - d/ Mengalokasikan dan membebaskan string besar hampir 256KB untuk memindahkan hole dari unsorted list ke bin malloc masing-masing
- e/ Memaksa urutan malloc terakhir dan membuka 27 small race window
-
Strategi Timing untuk Versi Modern
- Strategi timing berbasis feedback yang digunakan pada versi lama tidak berhasil pada target OpenSSH 9.2p1
- Parsing kunci publik kelima memakan waktu sekitar 10ms, membuat large race window terlalu besar
user_specific_delay()yang diperkenalkan di OpenSSH 7.8p1 menunda respons hingga sekitar 9ms dan merusak feedback lama- Strategi baru membandingkan waktu respons dari dua jenis error yang disengaja
- Mengirim paket yang memicu error tepat sebelum parsing kunci publik
- Mengirim paket yang memicu error tepat setelah parsing kunci publik
- Waktu parsing kunci publik terakhir diukur dari selisih waktu respons keduanya
- Dengan strategi ini, race condition dimenangkan rata-rata dalam sekitar 10.000 percobaan
- Dengan
MaxStartups=100danLoginGraceTime=120, rata-rata dibutuhkan sekitar 3–4 jam hingga race condition dimenangkan - Karena ASLR, rata-rata dibutuhkan sekitar 6–8 jam hingga mendapatkan root shell jarak jauh
Status Eksploit amd64
- Target amd64 ditetapkan sebagai Rocky Linux 9
- Image target adalah
Rocky-9.4-x86_64-minimal.iso - OpenSSH 8.7p1 rentan terhadap race condition handler sinyal ini
- Karena kelemahan ASLR, glibc dipetakan pada kelipatan 2MB sehingga partial pointer overwrite menjadi lebih kuat
- Image target adalah
syslog()pada glibc 2.34 di Rocky Linux 9 secara internal memanggil__open_memstream()- Struktur FILE di-
malloc()di heap calloc(),realloc(), danfree()juga dipanggil, memberi ruang tambahan
- Struktur FILE di-
- Berdasarkan primitive heap corruption, dua struktur FILE yang dialokasikan di heap, dan 21 bit tetap pada alamat glibc, eksploitasi dinilai mungkin juga pada amd64
- Perkiraan waktunya lebih lama daripada 6–8 jam pada i386, tetapi dinyatakan diharapkan kurang dari satu minggu
- Ada juga observasi terpisah tentang Ubuntu 24.04
- Ubuntu 24.04 tidak mengacak ulang ASLR child
sshd, melainkan hanya mengacaknya sekali saat boot - Penyebabnya dilacak ke
systemd-socket-activation.patchyang mematikanrexec_flag - Secara umum ini bukan pilihan yang baik, tetapi pada kerentanan ini hal tersebut mencegah eksploitasi karena
syslog()di dalam handler SIGALRM bukan pemanggilansyslog()pertama sehingga tidak memanggil fungsi malloc - Patch terkait: https://git.launchpad.net/ubuntu/+source/…
- Ubuntu 24.04 tidak mengacak ulang ASLR child
Patch dan Mitigasi
- OpenSSH memperbaiki race condition ini lewat commit
81c1099pada 6 Juni 2024- 81c1099: menambahkan fitur agar
sshd(8)memberi penalti pada client behavior yang bermasalah - Kode yang tidak async-signal-safe dipindahkan dari handler SIGALRM
sshdke listener process agar diproses secara sinkron
- 81c1099: menambahkan fitur agar
- Perbaikan ini berada di atas commit besar
81c1099dan commit defense-in-depth yang lebih besar03e3de4, sehingga backport bisa sulit dilakukan - Jika backport sulit, kode yang tidak async-signal-safe di
sshsigdie()dapat dihapus atau dikomentari agar hanya memanggil_exit(1) - Jika pembaruan atau kompilasi ulang tidak memungkinkan,
LoginGraceTimedapat diatur menjadi0di file konfigurasi- Pengaturan ini mencegah eksekusi kode jarak jauh dalam advisory ini
- Namun, sistem menjadi rentan terhadap DoS akibat habisnya semua koneksi
MaxStartups
Jadwal Publikasi
- 2024-05-19: Menghubungi developer OpenSSH, kemudian patch dan review berlangsung berulang
- 2024-06-20: Menghubungi
distros@openwall - 2024-07-01: Dipublikasikan sebagai coordinated release date
1 komentar
Opini Hacker News
Menariknya, perbaikan RCE tampaknya sudah “terselip” secara publik hampir sebulan lalu
Saat PerSourcePenalties diaktifkan, sshd(8) memantau status terminasi proses sesi anak praautentikasi, lalu mencatat kondisi seperti kegagalan autentikasi berulang atau crash sshd sebagai penalti untuk alamat klien selama jangka waktu tertentu
https://github.com/openssh/openssh-portable/commit/81c1099d2...
Alih-alih patch yang bisa direkayasa balik dan memberi tahu penyerang sesuatu, ini tampaknya cukup cerdik karena mengubah struktur biner sehingga menghilangkan kerentanan tertentu dan, sebagai efek samping, juga memitigasi seluruh keluarga exploit tersebut
Perubahan di atas adalah fitur yang sebelumnya diumumkan untuk menangani koneksi sampah, dan hanya ikut memitigasi kerentanan ini dengan membuat kondisi balapan lebih sulit dimenangkan
Diskusi sebelumnya: https://news.ycombinator.com/item?id=40610621
Saya bertanya-tanya apakah orang-orang hanya membaca komentar pertama di thread, memberi upvote, lalu pergi dengan kesan yang keliru
Ada bagian menarik di catatan rilis OpenSSH
“Eksploitasi yang berhasil telah didemonstrasikan pada sistem Linux/glibc 32-bit dengan ASLR aktif. Dalam kondisi lab, serangan perlu mempertahankan koneksi berturut-turut hingga batas maksimum yang diizinkan server selama rata-rata 6–8 jam. Serangan ini diyakini mungkin juga pada sistem 64-bit, tetapi belum dibuktikan. Serangan semacam ini kemungkinan besar akan membaik.”
https://www.openssh.com/releasenotes.html
Melihat diff [1] tempat bug masuk, menurut analisis masalahnya adalah
sigdie()semula dibungkus dengan#ifdef DO_LOG_SAFE_IN_SIGHAND, lalu direfaktor menjadisshsigdie()yang langsung memanggilsshlogv(), sehingga #ifdef tersebut hilangApa yang bisa mencegahnya? Apakah pull request seharusnya ditinjau lebih banyak? Mengejutkan bahwa software yang menjadi tumpuan seluruh dunia untuk koneksi aman tampaknya secara efektif dipelihara oleh dua orang [2]
[1] https://github.com/openssh/openssh-portable/commit/752250caa...
[2] https://github.com/openssh/openssh-portable/graphs/contribut...
Dalam kasus ini, mungkin akan membantu jika ada komentar yang menjelaskan mengapa
#ifdefdiperlukan. Misalnya, “kode di sini harus aman untuk sinyal asinkron, dan status lock bisa tidak pasti”Meski begitu, sejujurnya
getrlimitjuga tidak ada dalam daftar ini: https://man7.org/linux/man-pages/man7/signal-safety.7.htmlNamun, jika kode yang diberi komentar terkait keamanan sinyal asinkron dihapus atau diubah, kemungkinan itu akan terlihat saat review. Pada kode yang dikutip, hanya
SAFE_IN_SIGHANDyang kurang lebih mengisyaratkan bahwa kode ini harus aman di dalam signal handlersyslogyang reentrant dan aman untuk sinyal asinkron, penulis kode ini mungkin saja sekadar berasumsi bahwa perubahan tersebut amanMereka mungkin lupa atau tidak tahu bahwa pada platform lain, yang menurut para developer ssh OpenBSD sendiri sebenarnya tidak mereka klaim dukung, masih digunakan fungsi yang tidak aman untuk sinyal asinkron
Tidak ada hak untuk menerima sesuatu dari developer open source. Mereka juga bisa melakukan kesalahan, dan mereka sendiri yang berhak menentukan berapa banyak maintainer atau reviewer yang mereka miliki
https://gist.github.com/richhickey/1563cddea1002958f96e7ba95...
#ifdeftanpa dasar seperti di [1]Catatan rilisnya juga layak dibaca: https://www.openssh.com/releasenotes.html
Ini sebenarnya varian dari bug race condition sinyal yang menarik. Menurut laporan kerentanannya, “OpenBSD secara khusus tidak rentan, karena handler SIGALRM memanggil
syslog_r(), versisyslog()yang lebih aman terhadap sinyal asinkron yang dibuat OpenBSD pada 2001”Dengan kata lain, mitigasi keamanan sinyal membuat para pengembang OpenBSD memasukkan kode yang tidak sepele ke dalam handler sinyal, dan ketika kode itu di-porting ke sistem lain, ia menjadi tidak aman. Jika dilakukan refactoring untuk meminimalkan kode di dalam handler sinyal sesuai kebijaksanaan umum dan konvensi kode Unix, bug ini mungkin bisa dihindari
Karena seiring waktu, sangat mudah ada pemanggilan yang tidak aman terhadap sinyal asinkron terselip di salah satu panggilan transitif, dan tidak selalu jelas bahwa jalur itu dapat dicapai dari konteks sinyal
Setelah meng-upgrade instance OpenSSH saya, saya melihat bahwa semuanya tertaut ke musl, bukan glibc, jadi saya mengecek apakah
syslog(3)milik musl juga melakukan alokasi, sehingga mudah dieksploitasi dengan cara yang samaTampaknya tidak: https://github.com/bminor/musl/blob/master/src/misc/syslog.c
Semua yang ada di sana adalah variabel di stack atau variabel statis yang mencegah reentrancy dengan lock. Pemanggilan
{d,sn,vsn}printf()juga tidak melakukan alokasi di musl, tetapi bisa saja di glibc. Apakah ada yang saya lewatkan?Meski begitu, deadlock di dalam
sigalrmbisa mencegah pembersihan koneksi, sehingga dapat berujung pada denial of servicePatch untuk FreeBSD sudah keluar
Belum jelas apakah terdampak. Eksploit yang diketahui hanya mungkin di glibc dan FreeBSD tidak memakai glibc, tetapi lebih baik bermain aman
https://www.freebsd.org/security/advisories/FreeBSD-SA-24:04...
Menurut laporan, jika tidak bisa memperbarui atau mengompilasi ulang sshd, cukup mengatur
LoginGraceTimemenjadi 0 di file konfigurasi dapat memperbaiki race condition handler sinyal iniDalam kasus ini, sshd menjadi rentan terhadap denial of service ketika semua koneksi
MaxStartupshabis, tetapi aman dari eksekusi kode jarak jauh yang dijelaskan dalam advisori iniJadi tampaknya menetapkan
LoginGraceTime 0disshd_configbisa menjadi mitigasiBukankah itu malah lebih buruk?
Patch untuk Debian 12 sudah keluar, dan Debian 11 tidak terdampak
https://security-tracker.debian.org/tracker/CVE-2024-6387
apt updatedanupgradedi server Debian 12, dan satu-satunya yang di-upgrade adalah paket OpenSSHTemuan yang benar-benar bagus
Meski bukan berada di posisi yang langsung mengerjakannya, dalam riset keamanan sering terasa ada suasana bahwa untuk “menang”, yang harus ditemukan bukan sekadar satu masalah untuk diperbaiki atau diberi imbalan, melainkan seluruh rantai yang berujung pada akses jarak jauh
Rasanya, bukankah menemukan satu celah saja—misalnya satu kerusakan memori atau satu pelolosan sandbox—seharusnya sudah cukup. Saat ini ada begitu banyak masalah kecil, sampai mungkin untuk membuat orang benar-benar menanggapinya serius atau membayar bug bounty, kita harus menunjukkan peretasan yang tersambung sampai akhir
Misalnya, jika sebuah aplikasi crash ketika menerima input tepercaya yang keliru, tetapi berdasarkan sifat aplikasi itu memang tidak dimaksudkan untuk terekspos kepada pihak adversarial dan secara realistis hal itu tidak akan terjadi, kebanyakan orang akan menganggapnya sekadar bug, bukan bug keamanan. Bagus kalau diperbaiki, tetapi levelnya tidak sama, dan hal seperti ini juga tidak terlalu sulit ditemukan
Karena itu perlu dibedakan antara bug keamanan “nyata” seperti kasus ini dan bug yang tidak memiliki dampak keamanan, dan pekerjaan membuktikan bahwa masalah dapat dieksploitasi menjadi sangat penting
Bug tanpa dampak keamanan akan ada tanpa habisnya, jadi rasanya tuntutan pembuktian seperti ini tidak akan segera hilang
Itu memang demikian secara desain, dan pengguna bisa menserialisasi serta mendeserialisasi apa pun, termasuk fungsi lambda. Library saya hanya dimaksudkan untuk memproses data dari sumber tepercaya
Sejauh yang saya tahu, tidak ada yang memakai library ini untuk memproses data yang tidak tepercaya. Satu library populer memakai library saya untuk membaca file konfigurasi, tetapi mereka menganggap file konfigurasi sebagai data tepercaya. Dan bukan tugas saya untuk mengawasi bagaimana orang lain memakai library saya
Dalam kasus seperti ini, apakah benar mendaftarkan CVE prioritas tertinggi dengan alasan ada kerentanan eksekusi kode jarak jauh di proyek saya?
Imbalan selalu dibayarkan untuk kategori pertama. Laporan kategori kedua, tanpa bukti konsep atau pembuktian kemungkinan eksploitasi, malah bisa merusak reputasi atau sinyal
Kelemahan yang tidak menjadi dapat dieksploitasi sampai kondisi tertentu terpenuhi hampir selalu ada. Bahkan di kompetisi seperti Pwn2Own, sering terlihat beberapa kerentanan dirangkai hingga akhirnya mengambil alih perangkat, dan banyak yang tetap tidak dipatch selama bertahun-tahun. Para peneliti kadang menyimpan kelemahan seperti itu lama-lama untuk memaksimalkan dampaknya
Menyedihkan, tetapi begitulah kenyataannya
Catatan rilis OpenSSH: https://www.openssh.com/txt/release-9.8
Patch minimal untuk orang-orang yang tidak bisa atau tidak ingin upgrade: https://marc.info/?l=oss-security&m=171982317624594&w=2