FlawOpen

flawopen.com/Teardowns/cve-2026-1731-beyondtrust-websocket-command-injection

● CVE-2026-1731 · CVSS v4 9.9[1] · Kritis
Riset Keamanan · FlawOpen

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.

Vektor CVSSCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:L/SI:H/SA:L[1]
💡 Penjelasan Sederhana (ELI5)

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

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

Langkah 1

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.

Langkah 2

Pihak lain mengirim versi protokol

Wrapper membaca nilai versi jarak jauh dari koneksi. Nilai ini dikendalikan peminta, bukan konfigurasi lokal tepercaya.

Langkah 3

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.

Langkah 4

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.

Langkah 5

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.

Langkah 6

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

IMPLEMENTASI RENTAN
# Contoh ringkas: remoteVersion berasal dari pihak lain.
read -r remoteVersion || exit 1
if [[ "$localVersion" -lt "$remoteVersion" ]]; then
    version=$localVersion
else
    version=$remoteVersion
fi
PERBAIKAN AMAN & KUAT
# 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

Sumber