IMBAUAN KEAMANAN PADA MICROSOFT WINDOWS NETWORK FILE SYSTEM NLM PORTMAP

IMBAUAN KEAMANAN PADA MICROSOFT WINDOWS NETWORK FILE SYSTEM NLM PORTMAP

Posted by : Admin , Aug 29, 2022


Pendahuluan
Network File System adalah suatu protokol sistem file yang dikembangkan pertama kali oleh Sun Microsystems pada tahun 1984. NFS memungkinkan pengguna untuk mengakses file yang dibagikan secara jarak jauh dengan cara yang sama seperti sistem file lokal diakses. Pada selasa, 10 Mei 2022, National Vulnerability Database (NVD) menerbitkan imbauan kerentanan pada Microsoft Windows Network File System NLM Portmap. Kerentanan ini disebabkan oleh penanganan yang tidak tepat atas respons RPC yang dibuat terhadap permintaan Portmap yang dibuat oleh program RPC Network Lock Manager (NLM).

Produk Terdampak
Produk yang terdampak oleh CVE-2022-26937 yaitu Microsoft Windows Network File System NLM Portmap dengan NFSV2 dan NFSV3.

Detail dan Dampak Kerentanan
Pada selasa, 10 Mei 2022, National Vulnerability Database (NVD) menerbitkan imbauan kerentanan pada Microsoft Windows Network File System NLM Portmap. Microsoft Windows memiliki beberapa fitur yang dirancang untuk berkomunikasi dan berinteraksi dengan file bersama (File Shares) dari non-windows. Kerentanan stack buffer overflow terdapat di Windows Network File System (NFS). Kerentanan ini disebabkan oleh penanganan yang tidak tepat atas respons RPC yang dibuat terhadap permintaan Portmap yang dibuat oleh program RPC Network Lock Manager (NLM). Protokol Network Lock Manager (NLM) adalah perpanjangan dari NFS versi 2 dan 3, yang menyediakan file penasehat gaya Sistem V dan penguncian rekaman melalui jaringan. Karena NFS versi 2 dan 3 adalah protokol stateless, protokol NLM dikembangkan untuk mengelola status penguncian pada file yang disimpan di share NFS. Protokol NLM mendukung prosedur sinkronus dan asinkronus untuk menerapkan fungsi penguncian dan berbagi file. Kerentanan stack buffer overflow ada di Windows NFS. Lebih khusus lagi, kerentanan ini disebabkan oleh penanganan yang salah dari bidang Universal Address yang dikembalikan dalam balasan RPC GETADDR. Saat Windows NFS merespons panggilan NLM secara asinkronus, fungsi NlmGetClientAddressAndConnection() dipanggil. Alur ini dipicu baik sebagai respons terhadap panggilan NLM asinkronus, seperti NLM_TEST_MSG, NLM_LOCK_MSG, NLM_UNLOCK_MSG, atau saat server mengirim panggilan `NLM_GRANTED` ke klien, setelah panggilan sebelumnya (sinkron atau asinkron) oleh klien untuk membuat kunci mengembalikan status `LCK_BLOCKED`. Jika protokol IPv6 digunakan untuk komunikasi melalui protokol ONC RPC, server akan mengeluarkan panggilan GETADDR RPC ke klien untuk mengambil alamat IP-nya. Ketika bidang Alamat Universal yang dikembalikan oleh klien dalam balasan GETADDR diproses oleh server NFS, bidang tersebut disalin menggunakan memmove() ke dalam buffer berukuran 96 byte. Selain itu, buffer ini kemudian direferensikan pada indeks yang sama dengan ukuran string bidang Alamat Universal dan disetel ke 0. Namun, fungsi NlmGetClientAddressAndConnection() tidak memverifikasi ukuran string Alamat Universal yang dikembalikan. Oleh karena itu, jika string yang disediakan oleh klien adalah 96 byte atau lebih, buffer akan ditulis melewati batasnya, menghasilkan kondisi stack buffer overflow. Penyerang jarak jauh dapat mengeksploitasi kerentanan ini dengan mengirimkan permintaan NLM yang memicu respons asinkron oleh server NFS. Saat server mengirimkan permintaan GETADDR RPC, penyerang dapat merespons dengan balasan GETADDR yang dibuat. Eksploitasi yang berhasil dapat mengakibatkan eksekusi kode arbitrer di bawah konteks SISTEM. Eksploitasi yang gagal menghasilkan crash sistem target.

Panduan Mitigasi
Untuk melakukan pencegahan terhadap kerentanan CVE-2022-26937, terdapat saran yang dapat dilakukan yaitu pengguna melakukan pembaruan versi Windows yang melindungi pengguna dari kerentanan ini. Pengguna juga disarankan tidak mengaktifkan NFSV2 dan NFSV3.