
Kelemahan keamanan tingkat tinggi telah terungkap di Nuclei ProjectDiscovery, pemindai kerentanan sumber terbuka yang banyak digunakan, yang jika berhasil dieksploitasi, dapat memungkinkan penyerang melewati pemeriksaan tanda tangan dan berpotensi mengeksekusi kode berbahaya.
Dilacak sebagai CVE-2024-43405, skor CVSS-nya adalah 7,4 dari maksimum 10,0. Ini berdampak pada semua versi Nuclei yang lebih baru dari 3.0.0.
“Kerentanan berasal dari perbedaan antara cara proses verifikasi tanda tangan dan parser YAML menangani karakter baris baru, dikombinasikan dengan cara pemrosesan beberapa tanda tangan,” menurut deskripsi kerentanan.
“Hal ini memungkinkan penyerang untuk memasukkan konten berbahaya ke dalam templat sambil mempertahankan tanda tangan yang valid untuk bagian yang tidak berbahaya dari templat tersebut.”

Nuclei adalah pemindai kerentanan yang dirancang untuk menyelidiki aplikasi modern, infrastruktur, platform cloud, dan jaringan untuk mengidentifikasi kelemahan keamanan. Mesin pemindai menggunakan templat, yang tidak lain adalah file YAML, untuk mengirimkan permintaan khusus guna menentukan adanya cacat.
Selain itu, hal ini dapat mengaktifkan eksekusi kode eksternal pada sistem operasi host menggunakan protokol kode, sehingga memberi peneliti lebih banyak fleksibilitas atas alur kerja pengujian keamanan.
Perusahaan keamanan cloud Wiz, yang menemukan CVE-2024-43405, mengatakan kerentanan tersebut berakar pada proses verifikasi tanda tangan templat, yang digunakan untuk memastikan integritas templat yang tersedia di repositori templat resmi.
Keberhasilan eksploitasi kerentanan merupakan jalan pintas dari langkah verifikasi penting ini, yang memungkinkan penyerang membuat templat berbahaya yang dapat mengeksekusi kode arbitrer dan mengakses data sensitif dari host.
“Karena verifikasi tanda tangan saat ini merupakan satu-satunya metode yang tersedia untuk memvalidasi template Nuclei, ini mewakili satu titik kegagalan,” kata peneliti Wiz, Guy Goldenberg, dalam analisisnya pada hari Jumat.
Pada intinya, masalahnya berasal dari penggunaan ekspresi reguler (alias regex) untuk validasi tanda tangan dan konflik penguraian yang timbul akibat penggunaan parser regex dan YAML, sehingga membuka pintu bagi skenario di mana penyerang dapat memperkenalkan ” \r” karakter sedemikian rupa sehingga menghindari verifikasi tanda tangan berbasis regex dan ditafsirkan sebagai jeda baris oleh parser YAML.
Dengan kata lain, ketidakkonsistenan penguraian ini dapat dirantai untuk membuat templat Nuclei yang menggunakan “\r” untuk menyertakan baris “# intisari:” kedua yang menghindari proses verifikasi tanda tangan tetapi diurai dan dieksekusi oleh penerjemah YAML.
“Verifikasi tanda tangan berbasis regex pada Go memperlakukan \\r sebagai bagian dari baris yang sama, sedangkan parser YAML menafsirkannya sebagai jeda baris. Ketidakcocokan ini memungkinkan penyerang memasukkan konten yang melewati verifikasi tetapi dieksekusi oleh parser YAML,” jelas Goldenberg .
“Logika verifikasi hanya memvalidasi baris # intisari: pertama. Baris # intisari: tambahan diabaikan selama verifikasi tetapi tetap berada dalam konten untuk diuraikan dan dieksekusi oleh YAML.”
Lebih jauh lagi, proses verifikasi mencakup langkah untuk mengecualikan baris tanda tangan dari konten templat, namun melakukannya sedemikian rupa sehingga hanya baris pertama yang divalidasi, sehingga baris berikutnya tidak terverifikasi namun dapat dieksekusi.

Setelah pengungkapan yang bertanggung jawab, masalah ini ditangani oleh ProjectDiscovery pada 4 September 2024, dengan versi 3.3.2. Versi Nuclei saat ini adalah 3.3.7.
“Penyerang dapat membuat template berbahaya yang berisi # baris intisari yang dimanipulasi atau ditempatkan dengan hati-hati \r jeda baris untuk melewati verifikasi tanda tangan Nuclei,” kata Goldenberg.
“Vektor serangan untuk kerentanan ini muncul ketika organisasi menjalankan templat yang tidak tepercaya atau hasil kontribusi komunitas tanpa validasi atau isolasi yang tepat. Penyerang dapat mengeksploitasi fungsi ini untuk memasukkan templat berbahaya, yang menyebabkan eksekusi perintah sewenang-wenang, eksfiltrasi data, atau kompromi sistem.”