Peneliti keamanan telah menemukan kerentanan baru yang disebut ParseMelalui mempengaruhi aplikasi berbasis Golang yang dapat disalahgunakan untuk mendapatkan akses tidak sah ke aplikasi berbasis cloud.
“Kerentanan yang baru ditemukan memungkinkan aktor ancaman untuk melewati validasi dalam kondisi tertentu, sebagai akibat dari penggunaan metode penguraian URL yang tidak aman yang dibangun dalam bahasa tersebut,” kata perusahaan keamanan siber Israel Oxeye dalam sebuah laporan yang dibagikan kepada The Hacker News.
Masalahnya, pada intinya, berkaitan dengan inkonsistensi yang berasal dari perubahan yang diperkenalkan pada logika parsing URL Golang yang diterapkan di pustaka “net/url”.

Sementara versi bahasa pemrograman sebelum 1.17 memperlakukan titik koma sebagai pembatas kueri yang valid (mis., example.com?a=1;b=2&c=3), perilaku ini telah dimodifikasi untuk memunculkan kesalahan saat menemukan string kueri yang berisi titik koma.

“Paket net/url dan net/http digunakan untuk menerima “;” (titik koma) sebagai pemisah pengaturan dalam kueri URL, selain “&” (ampersand),” menurut catatan rilis untuk versi 1.17 yang dirilis Agustus lalu.
“Sekarang, pengaturan dengan titik koma non-persen-encoded ditolak dan server net/http akan mencatat peringatan ke ‘Server.ErrorLog’ ketika menemukan satu di URL permintaan.”

Masalah muncul ketika API publik berbasis Golang yang dibangun di atas versi 1.17 atau yang lebih baru berkomunikasi dengan layanan backend yang menjalankan versi sebelumnya, yang mengarah ke skenario di mana aktor jahat dapat menyelundupkan permintaan yang menyertakan parameter kueri yang seharusnya ditolak.
Sederhananya, idenya adalah untuk mengirim permintaan yang berisi titik koma dalam string kueri, yang diabaikan oleh API Golang yang menghadap pengguna tetapi diproses oleh layanan internal. Ini, pada gilirannya, dimungkinkan karena fakta bahwa salah satu metode yang bertanggung jawab untuk mendapatkan string kueri yang diuraikan secara diam-diam membuang kesalahan yang dikembalikan.

Oxeye mengatakan telah mengidentifikasi beberapa contoh ParseThru dalam proyek sumber terbuka seperti Harbour, Traefik, dan Skipper, yang memungkinkan untuk melewati validasi yang diterapkan dan melakukan tindakan yang tidak sah. Masalah telah diatasi setelah pengungkapan yang bertanggung jawab kepada masing-masing vendor.
Ini bukan pertama kalinya penguraian URL menimbulkan masalah keamanan. Awal Januari ini, Claroty dan Snyk mengungkapkan sebanyak delapan kelemahan di perpustakaan pihak ketiga yang ditulis dalam bahasa C, JavaScript, PHP, Python, dan Ruby yang berasal dari kebingungan dalam penguraian URL.