Jujur aja, Oktober biasanya horornya cuma dekorasi labu.
Minggu ini enggak. Minggu ini server beneran yang jadi hantu.
Bayangin kamu buka laptop Selasa pagi tanggal 21 Oktober, niatnya cuma mau cek deploy-an semalem. Tiba-tiba grup Slack, timeline X, sama Hacker News isinya sama semua: PHP jebol, Node jebol, GitLab jebol, ada CA yang private key-nya angka 4, sama paket Python yang dipake hampir semua perusahaan AI tiba-tiba nyolong password.
Semua kejadian dalam 6 hari. Bukan satu-satu, tapi barengan.
Ceritanya mulai pelan dulu dari tanggal 14 Oktober.
F5 ngerilis NGINX versi 1.30.6 dan 1.31.7 diam-diam di luar jadwal. Isinya 5 CVE sekaligus: CVE-2026-15176, CVE-2026-93479, CVE-2026-95101, CVE-2026-97629, CVE-2026-97205. Katanya bisa RCE sama DoS. Yang bikin geleng-geleng, satu bug di situ umurnya udah 21 tahun, dari NGINX 0.8.11 tahun 2005. Lebih tua dari YouTube.
Belum sempat tarik napas, tanggal 17 Oktober meledak di dua tempat beda.
Tempat pertama, dunia sertifikat. Seorang peneliti anonim namanya Wayne lapor ke tim browser: 8 intermediate CA milik eMudhra / emSign private key-nya bisa direcover cuma dari sertifikat publiknya. Dia ngasih bukti signed message beneran.
Kenapa bisa? Karena key P-384 nya di-generate ngasal, nilainya di bawah 256. Artinya siapapun bisa ngitung balik. Researcher Scott Helme ngebuktiin di laptopnya, key dengan nilai 4, 56, dan 115 ke-recover dalam waktu kurang dari satu detik. Satu private key CA beneran angka 4. Bukan joke, beneran angka 4.
Delapan itu isinya 6 buat TLS dan 2 buat code signing, dan tanggal 18 Oktober semuanya di-revoke.
Di hari yang sama, di tempat kedua, OpenCode. Platform AI coding agent yang lagi naik daun ini ngirim email ke user dengan subjek "Action Required: Potential provider key breach." Mereka bilang ada akses ilegal ke legacy system yang lagi mau dipensiunin, dan kunci OpenAI, Anthropic, Google yang disimpan di workspace bisa kebuka. Kejadiannya malam 16-17 Oktober, impact-nya 1.4% user Console, dan awal kebocoran paling cepat 17 Oktober jam 00:30 UTC. Abis itu dipake buat nguras billing AI orang, mereka nyebutnya distillation attack yang jalan 48 jam.
Dan di hari yang sama juga, Amazon nyatet ada percobaan exploit PHP di jaringan honeypot mereka. Padahal waktu itu publik belum tau ada bug PHP sama sekali.
Puncaknya beneran Selasa, 21 Oktober. Hari di mana semua orang gak bisa tidur.
Jam 2 siang UTC, PHP ngerilis patch darurat: 8.5.12, 8.4.27, 8.3.36, dan 8.2.35. Isinya fix buat dua flaw yang dikasih nama PHP2Shell: CVE-2026-109618 dan CVE-2026-109619. Dua-duanya CVSS 9.2, RCE tanpa login.
Ini bukan bug di plugin WordPress. Ini di jantung PHP-nya sendiri. Yang satu RCE lewat korupsi memori pas out-of-memory, yang satu lewat global state yang nyangkut antar request. PHP sendiri bilang gak ada mitigasi sempurna, update adalah satu-satunya pilihan aman, dan yang paling berisiko itu yang masih pakai mod_php.
Bug-nya udah ngumpet sejak PHP 5.4, lebih dari 10 tahun, dan bocornya lewat post anonim di Hacker News tanggal 20-21 Oktober. Makanya jadwal rilisnya dimajuin mendadak.
Di jam yang hampir sama, Node.js juga rilis patch darurat: 26.12.1, 24.22.1, dan 22.23.4. Total 10 CVE.
Bintangnya CVE-2026-111497, out-of-bounds write di decoder Brotli yang bisa jadi RCE. Severity High, kena semua branch yang masih disupport: 26.x, 24.x, 22.x. Sederhananya, aplikasi kamu nerima data dengan Content-Encoding: br, pas di-decompress, memory ketulis sembarangan.
Yang bikin cerita ini beda, salah satu laporan nyebut bug Brotli ini ditemukan dengan bantuan Codex, dan maintainer Node ngebut nge-patch karena takut AI lain nemuin duluan. Ini bukan lagi manusia vs manusia.
Kalau kamu masih di Node 20.x? Gak ada fix. Selesai.
Di hari yang sama, GitLab ngerilis patch kedua dengan CVSS 10. Jadi tanggal 12 Oktober mereka udah rilis fix buat CVE-2026-97229 dengan CVSS 10. Eh 9 hari kemudian, 21 Oktober, mereka rilis lagi CVE-2026-110264, CVSS 10 lagi.
Bedanya, yang kedua ini jangkauannya gila. Kena semua rilis sejak GitLab 7.0 tahun 2014. 12 tahun instalasi. Fix-nya harus naik ke 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10, dan 18.11.13. Jadi kalau kamu udah patch tanggal 12, kamu masih jebol tanggal 21. Censys ngitung masih ada 25.766 host yang vulnerable.
Belum selesai. Di hari yang sama juga, LiteLLM, library Python buat routing ke AI yang download-nya jutaan per bulan, kecolongan di supply chain.
Versi 1.107.0 yang naik ke PyPI ternyata berisi credential stealer dan backdoor. Caranya pinter banget, mereka taro 3 file di site-packages yang jalan setiap Python start, bahkan kalau kamu gak pernah import litellm. File-nya cook.pth, cook.py, sitecustomize.py. Paketnya cuma nongol 2 jam di PyPI, tapi ini udah kejadian kedua kalinya tahun ini setelah Maret.
Sementara buntut eMudhra bikin Go harus rilis darurat juga. Go ngerilis 1.27.3 dan 1.26.10 yang nolak chain yang berisi 8 key itu, CVE-nya CVE-2026-111943, dan wajib rebuild binary.
Nah, kalau ditarik benang merahnya, ada 3 hal yang bikin minggu ini beda banget.
1. Musuhnya bukan PHP vs Node. Musuhnya adalah versi mati yang masih kamu biarin hidup. Data Modat itu nusuk: 4.384.302 service, 1.886.612 host yang expose PHP, dan 79% yang ngasih tau versinya itu jalan di branch EOL. Artinya hampir 4 dari 5 server PHP yang keliatan di internet itu udah gak dapet update lagi.
2. Frontier AI udah lebih cepat dari kita. Dulu butuh bulan buat nemu bug 10 tahun. Sekarang AI nemuin, PoC bocor di Hacker News, dan 45 menit kemudian udah ada scanning di internet.
3. Yang bisa tidur nyenyak minggu ini bukan yang paling jago ngoding, tapi yang paling tau dia punya apa. Dia tau dia punya PHP versi berapa, Node versi berapa, di mana, dan bisa pencet tombol patch dalam jam, bukan minggu.
Jadi pertanyaan ini bukan "kamu pakai stack apa?"
Tapi, "apakah masih ada runtime PHP atau Node yang unsupported dan masih kebuka ke internet di infra kamu, iya atau tidak?"
Kalau jawabannya "gak tau", itu udah jawabannya.
Cek apa yang beneran jalan di prod hari ini, bukan apa yang tertulis di Notion. Update PHP ke 8.2.35+, Node ke 22.23.4+, NGINX ke 1.30.6+, Go ke 1.27.3 dan rebuild, GitLab ke 19.5.1. Dan kalau pernah install LiteLLM 1.107.0 atau simpan kunci di OpenCode Console, rotate semuanya sekarang.
Oktober emang harusnya spooky. Tahun ini dia beneran dapet gelar itu.
Referensi CVE Lengkap
- PHP: CVE-2026-109618, CVE-2026-109619 (CVSS 9.2) — Fixed 8.2.35, 8.3.36, 8.4.27, 8.5.12
- Node: CVE-2026-111497 (Brotli RCE), CVE-2026-105482, CVE-2026-105483, CVE-2026-106069 + 6 lainnya — Fixed 22.23.4, 24.22.1, 26.12.1
- NGINX: CVE-2026-15176, CVE-2026-93479, CVE-2026-95101, CVE-2026-97629, CVE-2026-97205 — Fixed 1.30.6, 1.31.7
- Go: CVE-2026-111943 (eMudhra distrust) — Fixed 1.26.10, 1.27.3
- GitLab: CVE-2026-97229 (CVSS 10 - 12 Okt), CVE-2026-110264 (CVSS 10 - 21 Okt) — Fixed 19.5.1 dkk
- eMudhra: Downstream CVE-2026-111943 (Go), CVE-2026-113470 (Firefox)
- LiteLLM & OpenCode: Supply chain compromise, bukan CVE, tapi impact credential theft
