Kerentanan pada PHP berpotensi membahayakan situs web PHP mana pun.

Pengembang PHP mengumumkan perilisan patch darurat (8.5.12, 8.4.27, 8.3.36, dan 8.2.35) hari ini pukul 17.00 (MSK) yang akan mengatasi dua kerentanan kritis. Semua administrator server PHP disarankan untuk segera menginstal patch tersebut pada sistem mereka setelah dirilis. Detail resmi hanya akan diungkapkan setelah patch tersedia, tetapi berdasarkan informasi yang tersedia untuk umum, kerentanan ini adalah CVE-2026-109618 dan CVE-2026-109619, yang berpotensi memungkinkan eksekusi kode jarak jauh pada server web apa pun yang menjalankan skrip PHP dalam konfigurasi default. Masalah ini memengaruhi semua versi mulai dari PHP 5.4.

Eksploitasi prototipe (1, 2) telah muncul secara online untuk menguji kerentanan sistem. Catatan eksploitasi tersebut menyatakan bahwa kerentanan disebabkan oleh akses ke memori yang sudah dibebaskan dalam penanganan pelacakan kemajuan pengunduhan file. server (session.upload_progress). Serangan ini tidak memerlukan fungsionalitas unggah file di situs; aktivasi otomatis penanganan konten "multipart/form-data" di interpreter PHP sudah cukup. Eksploitasi yang berhasil memerlukan penentuan tata letak memori proses, yang spesifik untuk setiap build (masalah ini dapat diatasi dengan melakukan brute-force pada exploit menggunakan offset yang telah dihitung sebelumnya untuk paket dari distribusi yang berbeda).

Sebagai solusi sementara, beberapa orang merekomendasikan untuk mengatur parameter php.ini "session.upload_progress.enabled = off" (atau "php_admin_flag[session.upload_progress.enabled] = off" di PHP-FPM), tetapi perwakilan proyek PHP, serta penulis prototipe eksploitasi pertama, mengklaim bahwa ini tidak cukup untuk memblokir kedua kerentanan tersebut. Catatan untuk prototipe eksploitasi kedua menyatakan bahwa, selain pengaturan php.ini yang disebutkan di atas, pemblokiran total permintaan dengan tipe konten "multipart/form-data" diperlukan untuk mencegah serangan tanpa menerapkan patch.

Di Apache httpd, aturan berikut di mod_rewrite dapat digunakan untuk memblokir permintaan multipart:

RewriteCond %{HTTP:Content-Type} multipart [NC]
RewriteRule ^ — [F,L]

Untuk memblokir di nginx:

jika ($http_content_type ~* "multipart") {
403 kembali;
}

Untuk mengunci Caddy:

@multipart header_regexp Content-Type (?i)multipart
balas @multipart 403

Pembaruan: Patch PHP 8.5.12, 8.4.27, 8.3.36, dan 8.2.35 telah dirilis, beserta detail tentang kerentanan kritis yang telah diperbaiki. Analisis mendetail tentang kerentanan dan solusi sementara yang direkomendasikan secara resmi tersedia dalam berita terpisah.

Sumber: opennet.ru

Beli hosting yang andal untuk situs dengan perlindungan DDoS, server VPS VDS 🔥 Beli hosting website andal dengan perlindungan DDoS, server VPS VDS | ProHoster