FlawOpen

flawopen.com/Teardowns/cve-2026-102255-sonicwall-sma1000-workplace-ssrf

● CVE-2026-102255 · CVSS 10.0[1] · Kritis
Riset Keamanan · FlawOpen

CVE-2026-102255: SSRF pada SonicWall SMA1000

CVE-2026-102255 adalah SSRF pra-autentikasi dengan CVSS 10,0 pada WorkPlace SonicWall SMA1000. Pada 12 Oktober, MS-ISAC menyatakan belum ada laporan eksploitasi di dunia nyata terhadap empat kerentanan dalam advisori tersebut. MS-ISAC juga menjelaskan jalur bersyarat dari SSRF ini ke eksekusi kode jarak jauh jika dirangkai dengan CVE-2026-102256, kerentanan injeksi perintah terpisah yang memerlukan administrator terautentikasi. Advisori tidak menjelaskan mekanisme rantai atau cara memenuhi autentikasi; ini penilaian risiko bersyarat, bukan rantai yang terbukti. Pada 9 Oktober dilaporkan upaya honeypot yang konsisten dengan CVE-2026-102255, tetapi keberhasilan kompromi tidak terbukti. Pasang platform hotfix yang telah diperbaiki.[1], [2], [3], [4], [5], [6]

💡 Penjelasan Sederhana (ELI5)

Bayangkan perangkat sebagai petugas resepsionis yang mengantar pesan antarruang. Celah ini memungkinkan orang asing meminta petugas mengantar pesan ke ruang yang seharusnya memerlukan pemeriksaan identitas. SonicWall telah memperbaiki jalur tersebut; pemberitahuan publik tidak mengungkap rute internal atau patch kode sumber.[1]

Konsep Kunci & Istilah

Pemalsuan permintaan sisi server (SSRF)
Server dibujuk untuk mengirim permintaan yang dipilih pemanggil tidak tepercaya. SonicWall menyebut perangkat dapat menjangkau fungsi internal atas nama peminta.[1], [3]

Pemetaan kerangka kerja

  • Referensi CWE untuk kelemahan yang dijelaskan dalam panduan ini: CWE-918

Analisis Akar Masalah (Root Cause)

SonicWall menjelaskan jalur akses alternatif yang tidak disengaja pada antarmuka Appliance WorkPlace SMA1000. Penyerang jarak jauh tanpa autentikasi dapat membuat perangkat mengirim permintaan atas namanya, menjangkau fungsi internal, dan melakukan operasi tanpa izin. Pemberitahuan SonicWall tidak memublikasikan diff sumber firmware. BleepingComputer mengutip peneliti Ryan Dewhurst yang melaporkan percobaan pada honeypot dengan OPTIONS ke WorkPlace Extraweb dan sasaran layanan CouchDB lokal. Laporan tersebut tidak membuktikan bahwa percobaan berhasil membobol sistem; artikel ini menyebutnya sebagai laporan percobaan yang diatribusikan, bukan eksploitasi terkonfirmasi. Payload dan kredensial yang dilaporkan tidak direproduksi. SonicWall memberi skor CVSS 10,0 Kritis; catatan CVE mencantumkan CWE-918. Vendor menyatakan kerentanan Oktober tidak terkait dengan kerentanan SonicWall lain. Jangan gabungkan CVE ini dengan pengungkapan SMA1000 sebelumnya sebagai satu rantai eksploitasi. Pemberitahuan SonicWall pada 6 Oktober menyatakan belum ada bukti eksploitasi di dunia nyata saat itu. Pada 9 Oktober, BleepingComputer melaporkan bahwa peneliti Ryan Dewhurst mengatakan honeypot Previdian mendeteksi percobaan yang konsisten dengan CVE ini; belum dipastikan apakah percobaan tersebut berhasil membobol sistem. Pembaruan 12 Oktober 2026: MS-ISAC menyatakan belum ada laporan eksploitasi di dunia nyata terhadap empat kerentanan dalam advisori tersebut. Pernyataan ini sejalan dengan laporan upaya honeypot pada 9 Oktober: upaya tidak membuktikan eksploitasi berhasil dan MS-ISAC tidak menyebut korban. Advisori yang sama menilai bahwa SSRF pra-autentikasi CVE-2026-102255 dapat dirangkai dengan CVE-2026-102256, kerentanan injeksi perintah OS terpisah yang memerlukan administrator terautentikasi, sehingga berpotensi menghasilkan eksekusi kode jarak jauh dan kompromi sistem penuh. Advisori tidak menjelaskan cara memenuhi prasyarat autentikasi, tidak menguraikan urutan yang terbukti, dan tidak melaporkan rantai tersebut dalam aktivitas yang diamati. Perlakukan ini sebagai penilaian risiko bersyarat dari sumber pemerintah, bukan rantai eksploitasi terkonfirmasi atau yang dapat direproduksi. SonicWall mencantumkan build perbaikan 12.4.3-03670+ dan 12.5.0-03082+; tetap pasang pembaruan meski rantai belum terbukti.[1], [2], [3], [4], [6]

Alur Serangan Langkah demi Langkah

Langkah 1

Permintaan tanpa autentikasi mencapai WorkPlace

SonicWall menyebut kerentanan pra-autentikasi ini berada pada antarmuka SMA1000 WorkPlace. BleepingComputer melaporkan percobaan OPTIONS yang terdeteksi honeypot terhadap WorkPlace Extraweb; hal itu tidak membuktikan kompromi berhasil.[1], [4]

Langkah 2

Perangkat meminta atas nama peminta

Vendor menyatakan penyerang dapat menjangkau fungsi internal dan melakukan operasi tanpa izin. Menurut BleepingComputer, percobaan itu menyasar CouchDB lokal, tetapi peneliti belum mengonfirmasi kompromi yang berhasil.[1], [4]

Langkah 3

Respons operator: pasang hotfix dan selidiki paparan

SonicWall menyebut build 12.4.3-03670+ dan 12.5.0-03082+ sebagai versi yang sudah diperbaiki. Jika pemasangan hotfix tertunda, batasi paparan WorkPlace sebagai penahanan sementara, simpan log, dan lakukan penyelidikan. Upaya yang dilaporkan tidak membuktikan kompromi berhasil.[1], [4], [5]

Kode Sumber: Rentan vs Aman

Kode sumber firmware dan diff patch tidak dipublikasikan. Contoh Python generik ini membatasi pemanggil pada ID layanan tetap; aplikasi mengendalikan origin dan path serta menonaktifkan pengalihan. Ini bukan kode SonicWall, bukan reproduksi CVE, dan bukan pertahanan SSRF lengkap. Pasang hotfix platform SonicWall.[1]

Cuplikan sumber: Generic SSRF defense illustration; not SonicWall source

IMPLEMENTASI RENTAN
# Ilustrasi umum saja; bukan kode sumber SonicWall atau reproduksi kerentanan.
def fetch_health(user_supplied_url, session):
    return session.get(user_supplied_url, timeout=3)
PERBAIKAN AMAN & KUAT
# Pola pertahanan SSRF umum saja; bukan kode sumber SonicWall atau patch lengkap.
from urllib.parse import urljoin

SERVICE_PATHS = {"status": "/health"}
BASE_URLS = {"status": "https://status.example.internal"}

def fetch_health(service_id, session):
    base = BASE_URLS.get(service_id)
    path = SERVICE_PATHS.get(service_id)
    if base is None or path is None:
        raise ValueError("unknown service")
    # Input pengguna memilih kapabilitas tetap, bukan URL atau host.
    return session.get(urljoin(base, path), timeout=(2, 3), allow_redirects=False)

Daftar Periksa Penguatan Sistem Rekayasa

Sumber