
Kerentanan baru yang kritis dan membandel di Apache Struts 2 mungkin sudah dalam eksploitasi aktif, dan memperbaikinya tidak semudah mengunduh patch.
penyangga 2 adalah kerangka sumber terbuka untuk membangun aplikasi Java. Meskipun sudah lama melewati masa puncaknya, Struts 2 tetap umum digunakan pada sistem lama di berbagai industri. Faktanya, prevalensi penyakit ini dan usianya yang semakin tua membuat penyakit ini menjadi semakin rentan – CVE-2024-53677CVSS 9.5 — sangat rumit. Karena komponen-komponennya telah melemah, dan teknologi serta praktik keamanan yang lebih baru telah berkembang, memperbaiki masalah baru yang muncul seperti ini memerlukan lebih dari sekadar patch standar.
“Risikonya terletak pada kenyataan bahwa aplikasi lama cenderung tidak terintegrasi dengan pipeline CI/CD modern,” jelas Chris Wysopal, kepala penginjil keamanan di Veracode. Akibatnya, memperbarui perpustakaan Struts 2, membangun dan menerapkan versi baru dari aplikasi yang rentan memerlukan lebih banyak upaya manual dan memakan waktu jauh lebih lama. Upaya yang signifikan ini akan menghasilkan jendela kerentanan yang lebih panjang, di mana penyerang dapat mengeksploitasi dan mengambil keuntungan. kelemahan ini.”
Wysopal menilai, “Kemungkinan besar kita akan melihat eksploitasi kerentanan ini selama berminggu-minggu, ketika organisasi menemukan dan memperbaiki semua contoh penggunaan Struts 2.”
Bug RCE di Apache Struts 2
Pada waktu yang sama tahun lalu, hampir hari ini, kerentanan Struts 2 dengan skor “kritis” 9,8 dalam Common Vulnerability Scoring System (CVSS) diungkapkan kepada publik. CVE-2023-50164 dihasilkan dari kemampuan penyerang untuk memanipulasi parameter pengunggahan file, membuka pintu ke jalur traversal. Dalam kondisi tertentu, penyerang dapat mengunggah skrip berbahaya yang dibuat khusus untuk mencapai eksekusi kode jarak jauh (RCE) di server.
CVE-2024-53677 adalah regen CVE-2023-50164. Itu juga terletak pada komponen File Upload Interceptor Struts 2, yang bertanggung jawab untuk menangani upload file, dan mengaktifkan RCE melalui path traversal. Dalam postingan blognya, Johannes Ullrich dari SANS Institute berspekulasi demikian patch yang tidak memadai untuk CVE-2023-50164 menyebabkan déjà vu terbaru ini.
Dia juga mengamati upaya eksploitasi aktif dari satu alamat IP, yang memanfaatkan a bukti konsep publik (PoC). Penyerang mempermainkan kerentanan tersebut dengan mengunggah “skrip satu baris yang seharusnya mengembalikan 'Apache Struts.' Selanjutnya, penyerang berupaya menemukan skrip yang diunggah. Upaya eksploitasi tersebut sangat mirip dengan PoC asli. Sejak itu, eksploitasi yang sedikit lebih baik telah diunggah ke repositori GitHub yang sama,” tulisnya.
Biasanya dalam situasi seperti ini, organisasi disarankan untuk menerapkan patch sesegera mungkin. Dalam kasus CVE-2024-53677, ceritanya tidak sesederhana itu.
Organisasi perlu melakukan upgrade ke versi terbaru Struts, 6.7.0 — atau, setidaknya, 6.4.0, yang dirilis setelah CVE-2023-50164, yang tidak lagi menggunakan File Upload Interceptor yang dipermasalahkan. Perbaikannya tidak kompatibel ke belakangnamun, Apache mencatat dalam buletin keamanannya. Tim TI perlu bermigrasi ke Action File Upload Interceptor yang bermodel baru, dan menyesuaikan cara aplikasi yang ada menangani unggahan file dengan secara rajin menulis ulang kode mereka untuk memanfaatkannya.
“Ini bukan versi sederhana,” Saeed Abbasi, manajer penelitian kerentanan di Qualys memperingatkan. “Hal ini memerlukan penulisan ulang kode, penyesuaian konfigurasi, dan dapat merusak logika dan ketergantungan yang ada. Dalam lingkungan yang kompleks, menghapus semua jejak pencegat lama menimbulkan tantangan yang signifikan karena rantai plug-in yang rumit dan kerangka kerja berlapis. Kompleksitas ini semakin diperparah oleh kebutuhan untuk pengujian regresi ekstensif.”
Potensi Cakupan Dampak CVE-2024-53677
Pusat keamanan siber nasional di Australia, Belgia, KanadaSingapura, dan Inggris semuanya telah mengeluarkan peringatan keamanan mendesak terkait CVE-2024-53677. Bahwa masalah ini telah menarik begitu banyak perhatian mungkin tidak terlihat jelas pada awalnya, karena Struts 2 sangat jarang digunakan oleh pengembang saat ini. Namun, hal ini tetap hidup dalam sistem lama di seluruh dunia.
Pada tahun 2000an, Struts 2 adalah raja di antara kerangka Web Java. Pada tahun 2007 mereka menerima hampir 350.000 unduhan per bulan. Halaman webnya menerima jutaan kunjungan bulanan; bahkan buletinnya memiliki ribuan pelanggan. Saat ini, Wysopal mengatakan, “Ia tidak lagi memiliki daya tarik arus utama dan jarang dipilih untuk proyek-proyek baru. Kehadirannya lebih merupakan artefak adopsi sejarah daripada popularitas aktif.”
“Kerajaannya terbatas pada penerapan yang stabil dan lama di industri konservatif – khususnya keuangan, asuransi, pemerintahan, dan manufaktur atau logistik skala besar – sering kali di organisasi dan wilayah yang diatur dan kecil kemungkinannya untuk melakukan modernisasi,” katanya. Contoh kasus: kerentanan Struts 2 adalah inti dari hal ini pelanggaran Equifax tahun 2017 yang terkenal.
Seberapa umumkah Struts 2 dalam sistem lama pada tahun 2024? Abbasi melaporkan bahwa dalam 24 jam pertama setelah pengungkapan CVE-2024-53677, Qualys “mengamati puluhan ribu kejadian rentan, yang mencerminkan luas dan mendesaknya tantangan ini.”
Menurut pandangannya, “Kegigihan Struts 2 dalam sistem kritis, lama setelah kerangka kerja yang lebih aman muncul, menggambarkan perjuangan yang terus-menerus dihadapi perusahaan dalam hal utang teknis. Banyak organisasi yang menjalankan versi Struts setelah masa pakainya habis, tanpa perencanaan yang tepat yang mana menambah dampak kerentanan baru. Perusahaan memerlukan manajemen permukaan serangan yang solid, bersama dengan strategi manajemen siklus hidup, memastikan bahwa kerangka kerja penting diperbarui secara berkala, dan komponen yang tidak digunakan lagi segera dihapuskan.”