idNSA.id - Kerentanan keamanan kritis telah diungkapkan di HAProxy, open-source load balancer dan server proxy yang banyak digunakan, yang dapat disalahgunakan oleh musuh untuk menyelundupkan permintaan HTTP, yang mengakibatkan akses tidak sah ke data sensitif dan eksekusi perintah sewenang-wenang, membuka secara efektif pintu ke berbagai serangan.
Dilacak sebagai CVE-2021-40346, kerentanan Integer Overflow memiliki tingkat keparahan 8,6 pada sistem penilaian CVSS dan telah diperbaiki dalam HAProxy versi 2.0.25, 2.2.17, 2.3.14 dan 2.4.4.
HTTP Request Smuggling, sesuai dengan namanya, adalah serangan aplikasi web yang merusak cara situs web memproses urutan permintaan HTTP yang diterima dari lebih dari satu pengguna. Juga disebut desinkronisasi HTTP, teknik ini memanfaatkan inkonsistensi parsing dalam cara server front-end dan server back-end memproses permintaan dari pengirim.
Server front-end biasanya adalah load balancer atau reverse proxy yang digunakan oleh situs web untuk mengelola chain HTTP request masuk melalui satu koneksi dan meneruskannya ke satu atau lebih server back-end. Oleh karena itu penting bahwa permintaan diproses dengan benar di kedua ujungnya sehingga server dapat menentukan di mana satu permintaan berakhir dan yang berikutnya dimulai, kegagalan yang dapat mengakibatkan skenario di mana konten berbahaya yang ditambahkan ke satu permintaan akan ditambahkan ke awal permintaan berikutnya.
Dengan kata lain, karena masalah yang timbul dari bagaimana server front-end dan back-end bekerja di awal dan akhir setiap permintaan dengan menggunakan header Content-Length dan Transfer-Encoding, akhir dari permintaan HTTP salah perhitungan, membiarkan konten berbahaya tidak diproses oleh satu server tetapi diawali dengan awal permintaan masuk berikutnya dalam chain.
"Serangan itu dimungkinkan dengan memanfaatkan kerentanan integer flow yang memungkinkan mencapai keadaan yang tak terduga di HAProxy saat parsing permintaan HTTP - khususnya - dalam logika yang berkaitan dengan header Content-Length," peneliti dari JFrog Keamanan mengatakan dalam sebuah laporan.
Dalam skenario potensi serangan di dunia nyata, kelemahan tersebut dapat digunakan untuk memicu serangan penyelundupan permintaan HTTP dengan tujuan melewati aturan ACL (aka Access Control List) yang ditentukan oleh HAProxy, yang memungkinkan pengguna menentukan aturan khusus untuk memblokir permintaan salah.
Setelah pengungkapan yang bertanggung jawab, HAProxy memperbaiki kelemahan dengan menambahkan pemeriksaan ukuran untuk panjang nama dan nilai. "Sebagai tindakan mitigasi, cukup untuk memverifikasi bahwa tidak lebih dari satu header [content-length] seperti itu hadir dalam pesan apa pun," Willy Tarreau, pencipta dan pengembang utama HAProxy, mencatat dalam komitmen GitHub yang didorong pada 3 September.
Pelanggan yang tidak dapat meningkatkan ke versi perangkat lunak yang disebutkan di atas disarankan untuk menambahkan cuplikan di bawah ini ke konfigurasi proxy untuk mengurangi serangan:
http-request deny if { req.hdr_cnt(content-length) gt 1 }
http-response deny if { res.hdr_cnt(content-length) gt 1 }