Keselamatan CFML: CVE sebenar, dan cara mengukuhkan pelayan
Enam rekod kerentanan untuk Lucee dan lebih tiga ratus untuk ColdFusion dalam pangkalan data rasmi. Yang menentukan keselamatan awak bukan bilangan rekod itu, tetapi lima punca sebenar yang berulang dalam setiap insiden.
ColdFusion mempunyai reputasi keselamatan yang buruk dalam kalangan sebahagian pembangun. Sebahagian daripada reputasi itu berasas, dan sebahagiannya bertukar menjadi cerita yang berulang tanpa angka. Tulisan ini memisahkan dua perkara itu dengan menggunakan data daripada pangkalan data kerentanan rasmi, bukan pendapat.
Satu perkara perlu dinyatakan lebih awal supaya tidak salah faham. Kerentanan pada sebuah enjin adalah biasa dalam mana-mana teknologi yang berusia puluhan tahun. Yang menentukan sama ada sistem awak selamat bukan bilangan kerentanan yang pernah direkodkan, tetapi jarak antara tarikh tampalan dikeluarkan dan tarikh awak memasangnya.
Apa yang saya periksa, dan bila
Saya memeriksa pangkalan data kerentanan NIST, iaitu rujukan rasmi yang menyimpan rekod kerentanan yang diberi nombor CVE. Pemeriksaan saya dibuat pada September 2026.
- Carian bagi kata kunci Lucee menghasilkan enam rekod.
- Carian bagi kata kunci ColdFusion menghasilkan lebih tiga ratus rekod, termasuk yang tertua dari tahun 1999.
- Nombor besar itu bukan bukti bahawa Adobe ColdFusion tiga ratus kali lebih teruk. Rekod tertua berusia lebih dua puluh lima tahun, dan bilangan rekod dipengaruhi oleh berapa lama produk itu dikaji, bukan hanya berapa kerap ia bermasalah.
Kerentanan Lucee yang boleh awak semak sendiri
Enam rekod itu semuanya boleh disemak pada pangkalan data NIST. Beberapa yang penting untuk difahami diberikan di bawah bersama kadarnya. Kadar ini dipanggil skor CVSS, iaitu skala 0 hingga 10 yang menggambarkan keterukan kerentanan, dan nilai 9 ke atas biasanya bermakna kelemahan itu boleh digunakan tanpa banyak syarat.
- CVE-2023-38693 dengan skor 9.8, iaitu rekod paling serius dalam senarai ini.
- CVE-2024-55354 dengan skor 8.8, melibatkan keadaan yang memerlukan penyerang boleh meletakkan fail pada pelayan terlebih dahulu.
- CVE-2021-21307 dengan skor 8.6.
- CVE-2026-29519 dengan skor 8.2, iaitu kerentanan penulisan skrip silang yang dipantulkan melalui penguraian laluan URL. Rekod ini menyatakan ia melibatkan baris keluaran 5.3.x, 6.1.x, 6.2.x dan 7.0.x, dan ia boleh digunakan tanpa pengesahan. Nama itu panjang, tetapi maksudnya mudah. Penyerang boleh membina satu pautan yang, apabila dibuka oleh orang lain, menjalankan kod di dalam pelayar orang itu.
- Dua lagi rekod melibatkan kelemahan yang memerlukan pengesahan, dan salah satunya menyentuh antara muka pentadbir.
Perhatikan tarikh CVE-2026-29519, iaitu Julai 2026. Ini bukan perkara lama, dan ia juga bukan alasan untuk panik. Ia sebab untuk menyemak versi enjin awak hari ini dan membandingkannya dengan keluaran terbaru enjin itu.
Rekod Adobe yang perlu dikenali
Untuk Adobe ColdFusion, rekod yang paling sering disebut dalam konteks insiden ialah CVE-2023-26360, dengan skor CVSS 8.6 dan diterbitkan pada Mac 2023. Rekod itu menyatakan versi 2018 sehingga kemas kini 15 dan versi 2021 sehingga kemas kini 5 sebagai terjejas, dan menerangkan kelemahan kawalan capaian yang boleh membawa kepada pelaksanaan kod sewenang-wenangnya.
Yang penting daripada rekod itu bukan nombornya, tetapi apa yang ia gambarkan. Kerentanan pada sistem berusia bertahun-tahun biasanya datang daripada ciri lama yang masih dihidupkan. Apabila awak memasang enjin baharu, banyak ciri itu dimatikan secara lalai. Bahayanya ialah apabila sistem lama dipindahkan ke enjin baharu sambil semua ciri lama dihidupkan semula supaya kodnya terus berjalan.
Lima punca sebenar insiden, mengikut susunan kekerapan
Rekod kerentanan menjelaskan bagaimana penyerang boleh masuk. Ia tidak menjelaskan mengapa sistem terdedah. Lima sebab di bawah ini ialah apa yang biasanya berlaku dalam keadaan sebenar, dan tiada satu pun daripada mereka memerlukan penyerang yang canggih.
- Antara muka pentadbir dibuka kepada seluruh internet. Ini punca paling biasa. Panel pentadbir tidak sepatutnya boleh dicapai oleh sesiapa sahaja di dunia, dan menukar laluannya tidak menjadikannya selamat.
- Enjin yang usang. Sistem yang berjalan selama empat atau lima tahun tanpa tampalan keselamatan ialah keadaan yang paling biasa ditemui dalam sistem lama, dan sebab ia begitu biasa ialah kerana tiada sesiapa bertanggungjawab untuknya.
- Kata laluan pentadbir yang lemah atau dikongsi antara beberapa orang. Satu kata laluan yang dikongsi bermakna tiada rekod siapa yang berbuat apa, dan pemadaman akaun selepas seseorang berhenti kerja menjadi mustahil.
- Ciri pembangunan yang ditinggalkan dalam sistem hidup. Log terperinci dan antara muka pengesanan yang berguna semasa membina sistem itu boleh mendedahkan banyak perkara apabila dibiarkan aktif di internet.
- Kebenaran yang terlalu luas. Akaun pangkalan data yang digunakan oleh sistem biasanya mempunyai kuasa menghapuskan seluruh pangkalan data, walaupun kerja sebenarnya hanya perlu membaca dan menulis beberapa jadual.
Sepuluh perkara yang saya syorkan dilakukan sendiri
- Semak versi enjin awak hari ini, kemudian bandingkan dengan keluaran terbaru yang diterbitkan oleh pihak enjin itu sendiri.
- Tampal segera, dan tetapkan cara untuk tahu apabila tampalan baharu keluar. Tampalan yang keluar minggu lepas tidak menutup apa-apa jika awak hanya memeriksanya sekali setahun.
- Sekat antara muka pentadbir daripada internet. Kalau awak perlu menggunakannya, gunakan penghadang alamat dan bukan laluan rahsia.
- Matikan ciri yang tidak digunakan. Setiap ciri yang hidup ialah satu kawasan yang perlu dijaga.
- Tetapkan akaun pangkalan data sistem supaya mempunyai hanya kebenaran yang diperlukan, tidak lebih.
- Letakkan enjin supaya berjalan dengan akaun pengguna biasa pada sistem itu, bukan sebagai pengguna tertinggi.
- Hidupkan mekanisme keselamatan yang disediakan oleh enjin itu sendiri, dan jangan longgarkannya dengan alasan ia menyusahkan kerja.
- Sediakan satu tempat untuk log, dan buat satu cara supaya awak membaca amaran yang penting. Log yang tidak pernah dibaca sama nilainya dengan tiada log.
- Buat sandaran yang boleh dipulihkan, dan uji pemulihan itu sekali sekala. Sandaran yang tidak pernah diuji bukan sandaran, tetapi harapan.
- Adakan pemeriksaan untuk perkhidmatan yang berhenti sendiri, kerana sistem yang mati senyap lebih merbahaya daripada sistem yang gagal dengan bunyi bising.
Kesimpulan yang jujur
Tiada bahasa pengaturcaraan yang selamat secara lalai. Sistem yang selamat biasanya sistem yang dikemas kini, yang lognya dibaca dan yang tidak meletakkan panel pentadbirnya di depan pintu. Ketiga-tiga perkara itu adalah kerja, bukan ciri.
Cara menyemak sendiri sama ada sistem awak terdedah
Semakan ini tidak memerlukan alat khas, dan ia mengambil masa kurang daripada sepuluh minit. Lakukan pada sistem awak sendiri, bukan pada sistem orang lain.
- Semak versi enjin yang berjalan, kemudian bandingkan dengan keluaran terbaru yang diterbitkan oleh pihak enjin itu.
- Cuba buka halaman pentadbir enjin dari luar rangkaian pejabat. Kalau ia terbuka, ia masalah pertama yang perlu diselesaikan, dan ia tidak memerlukan sebarang kepakaran untuk dibaiki.
- Cari fail log, kemudian baca apa yang tercatat semasa waktu luar pejabat. Serangan automatik hampir selalu kelihatan di situ sebagai permintaan yang berulang pada laluan yang tidak pernah wujud dalam sistem awak.
- Periksa akaun pangkalan data yang digunakan oleh sistem, dan pastikan ia tidak mempunyai kebenaran menguruskan pengguna atau menghapuskan pangkalan data.
- Semak sama ada ciri pembangunan masih hidup. Kalau sistem itu sudah digunakan oleh orang sebenar, ciri untuk membina sistem biasanya tidak lagi diperlukan.
Perkara yang tidak boleh diselesaikan oleh teknologi
Ada satu perkara yang tidak muncul dalam mana-mana senarai pengukuhan, dan ia lebih menentukan daripada semua yang lain. Sistem selamat apabila ada seorang manusia yang tahu ia wujud, tahu apa yang berjalan di dalamnya, dan membaca amaran apabila ia berbunyi.
Saya pernah melihat sistem yang sempurna dari segi teknikal, dengan tampalan terkini dan panel pentadbir tertutup, tetapi tiada siapa membaca log selama lapan bulan. Sistem seperti itu selamat sehingga satu perkara berlaku, dan apabila ia berlaku, tiada sesiapa yang tahu bila ia bermula. Keselamatan bukan keadaan yang dicapai sekali, tetapi tabiat yang diulang setiap minggu.
Kalau awak mengambil satu perkara sahaja daripada tulisan panjang ini, ambillah yang ini. Kerentanan yang ditemui bulan lepas ialah masalah yang boleh diselesaikan. Enjin yang dibiarkan selama lima tahun tanpa diperiksa ialah masalah yang lebih besar, dan ia tidak akan muncul dalam mana-mana senarai CVE.
Halaman ini dicetak tanpa menu, borang langgan dan jalur sisi.
Baca juga di laman ini
- Lucee lawan Adobe ColdFusion: apa bezanya pilihan enjin dan kesan pada keselamatan
- Kenapa ColdFusion tiada dalam senarai bahasa pengaturcaraan popular konteks mengapa ia jarang dibincangkan
- Semak SSL/TLS laman sendiri dalam 5 minit langkah keselamatan asas yang lain
- Belajar ColdFusion pada 2026: laluan, sumber dan masa asas bahasa sebelum menyentuh pelayan
Sumber yang disemak
Maklumat dalam tulisan ini disemak dengan sumber di bawah. Bila keadaan berubah (harga, waktu, terma), sumber inilah yang paling tepat — bukan halaman ini.
- Pangkalan Data Kerentanan Kebangsaan NIST, carian kata kunci Lucee (September 2026)
- Pangkalan Data Kerentanan Kebangsaan NIST, carian kata kunci ColdFusion (September 2026)
- Rekod CVE-2026-29519, penulisan skrip silang Lucee melalui penguraian laluan URL
- Rekod CVE-2023-26360, ketidakcukupan kawalan capaian Adobe ColdFusion
- Blog dan amaran keselamatan Lucee
Dapat tulisan baharu terus ke e-mel
Sekali sekala sahaja: panduan web, berita AI, dan tempat menarik di Kelantan. Tiada iklan, dan e-mel encik tidak dikongsi dengan sesiapa.