Bukan satu serangan, melainkan satu bulan yang sibuk
Nama Black October merujuk pada Oktober 2026, ketika temuan keamanan kritis bermunculan hampir bersamaan. Penting untuk meluruskannya sejak awal: ini bukan satu serangan oleh satu pelaku, melainkan campuran dari pengungkapan kerentanan, kompromi rantai pasok, dan kegagalan infrastruktur kepercayaan, yang waktu terjadinya berdekatan sehingga dampaknya terasa seperti satu peristiwa besar.
Pembedaan ini penting. Serangan terkoordinasi menunjuk pada pelaku. Gelombang seperti ini menunjuk pada kondisi: fondasi yang dipakai banyak situs ternyata memiliki celah, dan celah itu kini diketahui publik. Sebagian temuan ini bahkan ditemukan dengan bantuan AI, yang mempercepat baik penemuan maupun pengungkapan.
PHP di garis depan: PHP2Shell
Cerita terbesar bulan itu bernama PHP2Shell: dua celah kritis pada interpreter PHP sendiri, CVE-2026-109618 dan CVE-2026-109619, masing-masing dengan skor CVSS 9,2. Keduanya memungkinkan eksekusi kode jarak jauh tanpa autentikasi pada server web yang menjalankan PHP. Artinya, penyerang tidak perlu akun dan tidak perlu melewati halaman login. Cukup mengirim permintaan yang dibuat khusus, dan ia bisa menjalankan perintah dengan hak akses pekerja PHP di server tersebut.
Yang diserang di sini bukan sebuah aplikasi, melainkan cara PHP menangani permintaan web. Celah pertama menyalahgunakan penanganan kehabisan memori saat memproses permintaan, misalnya saat mengurai data formulir yang diunggah, di mana penangan session.upload_progress mendekode dan menulis ulang sesi selama penguraian unggahan, sebelum skrip permintaan itu sendiri berjalan. Ketika proses itu kehabisan memori dan dibatalkan secara mendadak, keadaan internal PHP menjadi tidak konsisten dan bisa dirusak hingga menjadi eksekusi kode. Celah kedua menyalahgunakan keadaan global yang tersisa dari satu permintaan, lalu dipakai ulang oleh permintaan berikutnya pada pekerja yang sama.
Dampaknya luas karena PHP berada di bawah sebagian besar web: WordPress, Joomla, Drupal, PrestaShop, WooCommerce, Magento, Laravel, Symfony, dan aplikasi kustom yang tak terhitung. Semua cara PHP melayani permintaan web terdampak, termasuk mod_php Apache yang dinilai paling berisiko, PHP-FPM, php-cgi, FrankenPHP, dan LiteSpeed. Bahkan perkakas internal yang hanya dipakai karyawan ikut terdampak bila bisa diakses dari internet, karena celah ini terpicu sebelum halaman login. Celahnya memengaruhi semua rilis sejak PHP 5 tahun 2004 dan tidak terdeteksi selama lebih dari satu dekade.
Rinciannya bocor pada 20 Oktober, sebelum tanggal pengungkapan yang direncanakan, dan serangan awal sudah terlihat sebelum perbaikan tersedia. Perbaikan darurat diterbitkan 21 Oktober pada versi 8.5.12, 8.4.27, 8.3.36, dan 8.2.35. PHP 8.1 dan yang lebih lama tidak mendapat perbaikan resmi, sehingga situs-situs tua menjadi kelompok yang paling sulit dilindungi. Badan keamanan Inggris NCSC bahkan menyarankan organisasi yang tidak bisa segera memperbaiki untuk mempertimbangkan menonaktifkan sistemnya sampai perbaikan penuh bisa dilakukan.
JavaScript: Next.js dan Node.js
Pada 14 Oktober, sorotan jatuh pada Next.js, framework di balik banyak situs modern. Dua celah kritis yang bisa dieksploitasi tanpa autentikasi diumumkan: GHSA-673q-mjm6-r5xr pada fitur use cache, dan GHSA-2464-fhr4-w9xw pada API optimasi gambar, di mana berkas SVG yang dibuat khusus bisa memicu eksekusi kode. Di sekitar waktu yang sama, GHSA-p3m5-59mp-jv5r mengumumkan celah denial-of-service pada Server Actions. Perbaikannya dirilis pada versi 16.4.1 dan 15.5.28.
Seminggu kemudian, pada 21 Oktober, giliran Node.js, runtime tempat sebagian besar aplikasi web JavaScript berjalan. Sepuluh CVE diperbaiki sekaligus, termasuk eksekusi kode jarak jauh pada dekoder Brotli (CVE-2026-111497) dan celah pintas validasi nama host TLS (CVE-2026-105483 dan CVE-2026-106069). Runtime yang sudah diperbaiki adalah versi 26.12.1, 24.22.1, dan 22.23.4. Polanya sama dengan PHP: yang diserang adalah lapisan fondasi, sehingga satu perbaikan melindungi semua aplikasi di atasnya, dan satu kelalaian membahayakan semuanya sekaligus.
Python: kepercayaan dan kredensial
Python terdampak Black October dari dua arah yang berbeda. Arah pertama adalah infrastruktur kepercayaan. Delapan kunci perantara milik otoritas sertifikat eMudhra ternyata bisa dihitung oleh siapa pun, salah satunya hanya bernilai angka 4. Kunci yang lemah seperti ini memungkinkan penyerang memalsukan sertifikat HTTPS yang tampak sah dan menyamar sebagai situs seperti Python.org atau indeks paket PyPI, bila koneksi berhasil disadap. Peramban memblokir kunci tersebut dalam hitungan jam, tetapi perkakas Python harus diperbarui: pip versi 26.2.2 atau lebih baru, bersama certifi dan toko kepercayaan yang diperbarui.
Arah kedua adalah kredensial aplikasi. CVE-2026-89111, dengan skor CVSS 10,0, adalah celah pemalsuan permintaan sisi server pada SAP Cloud SDK for Python. SDK ini membangun URL permintaan token OAuth2 dengan menyisipkan subdomain tenant yang diberikan aplikasi. Penyerang yang mengendalikan subdomain tersebut bisa menyisipkan pemisah URL dan mengarahkan permintaan token ke server miliknya, sehingga SDK mengirimkan ID klien dan rahasia klien aplikasi ke tangan penyerang. Celah ini diperbaiki pada SDK versi 0.45.2, setelah diketahui bahwa sejumlah rilis melewatkan pemeriksaan validasi yang seharusnya.
Java: pembaruan besar dan toko kepercayaan
Java masuk ke dalam gelombang ini lewat dua pintu. Pintu pertama adalah pembaruan triwulanan Oracle pada Oktober, yang memperbaiki 55 kerentanan Java SE sekaligus. Pintu kedua sama dengan Python: toko kepercayaan Java juga harus diperbarui untuk tidak lagi mempercayai kunci eMudhra yang lemah. Selain itu, pembaruan keamanan SAP bulan Oktober mencakup celah pada aplikasi berbasis Java, termasuk CVE-2026-89108, di mana pemeriksaan otorisasi yang hilang pada komponen manufaktur SAP memungkinkan pembuatan akun administrator pada server aplikasi Java di bawahnya hingga kompromi penuh.
Pelajaran dari sisi Java sama dengan sisi lainnya: yang diserang bukan fitur yang terlihat pengguna, melainkan lapisan yang tidak terlihat, yaitu runtime, toko kepercayaan, dan komponen platform yang jarang dibuka kecuali saat ada pengumuman keamanan.
Di luar bahasa: rantai pasok dan kredensial
Sebagian insiden Black October bahkan tidak menyerang bahasa pemrograman sama sekali. Yang diserang adalah jalur pengiriman perangkat lunak dan rahasia di sekitarnya. GitLab mengumumkan CVE-2026-110264, eksekusi kode jarak jauh tanpa autentikasi dengan skor CVSS 10,0 pada instalasi self-managed. Paket npm tensorlake versi 0.5.144 yang diterbitkan dari akun yang dibajak membawa worm pencuri kredensial. Rilis LiteLLM 1.107.0 di PyPI dan Docker berisi pencuri kredensial. Binari CLI OVHcloud versi 0.11.0 sampai 0.15.0 ditukar dengan kode pencuri kredensial cloud dan kunci SSH. Rank Math PRO 3.0.123 yang diunduh dalam jendela sebelas jam membawa malware. Kunci UpdraftCentral yang dicuri dipakai untuk mendorong plugin pintu belakang ke situs pelanggan. Railway melaporkan kemungkinan akses ke variabel lingkungan terenkripsi, sebagian terdekripsi, dan Zeabur melaporkan kredensial admin teks biasa yang memungkinkan pembacaan rahasia pelanggan di sembilan region.
Daftar ini penting karena mengubah cara berpikir tentang apa yang harus dilindungi. Menambal kode sendiri tidak cukup bila paket yang Anda pasang sudah berkhianat, dan menambal kerentanan tidak cukup bila kredensial yang dicuri masih berlaku.
Apa arti sudah diperbaiki
Untuk kerentanan seperti ini, perbaikan berarti pembaruan versi, bukan pengaturan yang bisa diaktifkan. Situs yang menjalankan PHP, Next.js, dan runtime Node.js di atas garis perbaikan berada di sisi yang benar dari garis ini. Situs yang masih di bawahnya tetap rentan, tidak peduli seberapa baik lapisan keamanan lainnya. Pembaruan harus sampai ke produksi: pekerja PHP di-restart, kontainer dibangun ulang, dan versi yang benar-benar berjalan diperiksa kembali.
Dan di mana kredensial sudah terpapar, perbaikan tidak lengkap tanpa rotasi: kunci, token, dan kata sandi yang dicuri harus diganti, karena menutup celah tidak mencabut akses yang sudah didapat penyerang. Inilah pelajaran pertama Black October, dan yang paling sederhana: versi perangkat lunak Anda, toko kepercayaan Anda, dan kredensial Anda adalah bagian dari keamanan Anda. Bukan detail teknis yang bisa ditunda sampai sempat.
