flawopen.com/Teardowns/cve-2026-1731-beyondtrust-websocket-command-injection
CVE-2026-1731: injeksi perintah BeyondTrust
CVE-2026-1731 memungkinkan perintah OS tanpa autentikasi via WebSocket pada BeyondTrust Remote Support/PRA. Pasang patch dan periksa sistem terekspos.
Bayangkan meja resepsionis meminta nomor versi pengunjung lalu memberikan jawabannya ke kalkulator yang mengevaluasi rumus, bukan sekadar memeriksa angka. Masukan bisa berubah dari data menjadi instruksi. CVE-2026-1731 membuka batas ini pada layanan BeyondTrust; perbaikan menolak nilai selain versi desimal pendek sebelum perbandingan.
Konsep Kunci & Istilah
CVE-2026-1731- Kerentanan injeksi perintah OS kritis tanpa autentikasi pada BeyondTrust Remote Support dan Privileged Remote Access.
thin-scc-wrapper- Wrapper shell BeyondTrust pada jalur protokol klien. Analisis patch Rapid7 mengidentifikasi pemrosesan versi dari pihak lain sebagai batas yang rentan.
Evaluasi aritmetika Bash- Operator numerik Bash mengevaluasi operand sebagai ekspresi aritmetika. Teks yang tidak tepercaya dapat melintasi batas antara data dan ekspresi.
CWE-78- Netralisasi yang tidak tepat atas elemen khusus dalam perintah OS, juga disebut injeksi perintah OS.
CISA KEV- Katalog CISA yang mencatat kerentanan dengan bukti eksploitasi di dunia nyata.
Pemetaan kerangka kerja
- Referensi CWE untuk kelemahan yang dijelaskan dalam panduan ini: CWE-78
- CISA KEV — ditambahkan 2026-02-13 — CVE-2026-1731
Analisis Akar Masalah (Root Cause)
Advisori BeyondTrust Februari 2026 menyebut CVE-2026-1731 sebagai eksekusi kode jarak jauh pra-autentikasi pada Remote Support dan Privileged Remote Access, dengan CWE-78 dan CVSS 4.0 9,9. Permintaan klien yang dibuat khusus dapat menjalankan perintah OS dalam konteks pengguna situs. Analisis patch vendor oleh Rapid7 menempatkan batas kode pada jalur WebSocket thin-scc-wrapper: skrip membaca remoteVersion yang dikendalikan pihak lain lalu membandingkannya dengan operator numerik Bash. Perbandingan ini melakukan evaluasi aritmetika; nilai yang bukan angka biasa dapat ditafsirkan sebagai ekspresi, bukan teks pasif. Patch mengharuskan satu atau dua digit ASCII (^[0-9]{1,2}$) sebelum perbandingan. Kode berikut adalah ilustrasi ringkas berdasarkan sumber, bukan skrip produk lengkap atau bukti eksploitasi. BeyondTrust melaporkan upaya awal pada 10 Februari dan aktivitas terbatas terhadap sistem self-hosted yang terekspos ke internet dan belum dipatch sebelum 9 Februari. Google Threat Intelligence Group kemudian melaporkan beberapa klaster yang mengeksploitasi CVE ini serta tindakan lanjutan yang beragam. Laporan tersebut membuktikan aktivitas yang diamati, bukan berarti semua korban mengalami rantai yang sama.
Alur Serangan Langkah demi Langkah
Appliance publik menerima koneksi protokol
Layanan terdampak menyediakan jalur WebSocket untuk protokol thin-client. Rapid7 menjelaskan jalur rentan dapat dijangkau tanpa autentikasi; BeyondTrust mengklasifikasikannya sebagai RCE pra-autentikasi.
Pihak lain mengirim versi protokol
Wrapper membaca nilai versi jarak jauh dari koneksi. Nilai ini dikendalikan peminta, bukan konfigurasi lokal tepercaya.
Bash memperlakukan nilai sebagai operand aritmetika
Perbandingan rentan memakai operator numerik Bash. Karena Bash mengevaluasi operand sebagai ekspresi, masukan yang tidak divalidasi belum tentu tetap menjadi teks pasif.
Injeksi perintah berjalan sebagai akun layanan
Eksploitasi yang berhasil dapat menjalankan perintah OS dalam konteks pengguna situs BeyondTrust. Vendor menilai dampak kerahasiaan, integritas, dan ketersediaan sebagai tinggi.
Eksploitasi yang diamati menimbulkan risiko lanjutan
BeyondTrust melaporkan upaya awal dan aktivitas terbatas terhadap appliance self-hosted yang terekspos dan belum dipatch. GTIG kemudian melaporkan beberapa klaster dan tindakan lanjutan; laporan tersebut khusus untuk kampanye, bukan rantai universal.
Patch memvalidasi sebelum membandingkan
Patch menolak versi jarak jauh yang tidak valid dan menghentikan wrapper; hanya nilai valid yang melanjutkan negosiasi protokol. Terapkan patch atau rilis yang telah diperbaiki dan selidiki sistem yang terekspos saat rentan.
Kode Sumber: Rentan vs Aman
Rapid7 menyebut patch BT26-02 menambahkan validasi satu atau dua digit sebelum remoteVersion dibandingkan. Cuplikan ini diringkas dan tidak menyertakan protokol produk atau detail permintaan. Invarian utamanya adalah validasi sebelum evaluasi aritmetika Bash; tanda kutip saja tidak membuat operand aritmetika aman. Jika memungkinkan, parsing dan perbandingan dilakukan pada komponen bertipe tanpa shell, lalu tolak nilai tidak valid di batas protokol.
Cuplikan sumber: thin-scc-wrapper — ilustrasi ringkas berdasarkan analisis patch vendor oleh Rapid7
# Contoh ringkas: remoteVersion berasal dari pihak lain.
read -r remoteVersion || exit 1
if [[ "$localVersion" -lt "$remoteVersion" ]]; then
version=$localVersion
else
version=$remoteVersion
fi
# Tolak masukan tak terduga sebelum perbandingan aritmetika.
read -r remoteVersion || exit 1
if [[ ! "$remoteVersion" =~ ^[0-9]{1,2}$ ]]; then
exit 1
fi
if [[ "$localVersion" -lt "$remoteVersion" ]]; then
version=$localVersion
else
version=$remoteVersion
fi
Daftar Periksa Penguatan Sistem Rekayasa
- ✓Inventarisasi semua appliance Remote Support dan Privileged Remote Access, termasuk sistem self-hosted yang tidak menerima pembaruan otomatis.
- ✓Terapkan BT26-02-RS atau tingkatkan Remote Support ke versi 25.3.2 atau lebih baru; terapkan BT26-02-PRA atau tingkatkan Privileged Remote Access ke versi 25.1.1 atau lebih baru sesuai advisori BeyondTrust terbaru.
- ✓Jika sistem self-hosted terekspos ke internet dan belum dipatch hingga 9 Februari 2026, ikuti petunjuk respons insiden BeyondTrust dan selidiki akses tanpa izin, persistensi, eskalasi hak akses, serta akses data.
- ✓Tinjau telemetri jaringan dan aplikasi untuk sesi WebSocket tak terduga serta proses anak atau perintah tidak biasa yang dijalankan akun layanan; bandingkan alert dengan perilaku normal appliance.
- ✓Pada setiap batas shell, validasi kolom protokol dengan daftar izin ketat sebelum membandingkan angka; jangan teruskan teks tak tepercaya ke aritmetika Bash,
eval, atau string perintah. - ✓Tambahkan uji regresi untuk versi kosong, terlalu panjang, bertanda, mengandung spasi, atau karakter non-desimal; pastikan semuanya ditolak sebelum perbandingan atau peluncuran proses.