Pasukan Python telah mengeluarkan beberapa kemas kini keselamatan pada 25 Oktober 2026 untuk menangani insiden kunci pihak berkuasa sijil perantaraan eMudhra yang terjejas. Perubahan ini memberi perhatian kepada satu bahagian yang mudah terlepas pandang: cara aplikasi memutuskan sama ada sambungan yang disulitkan boleh dipercayai.
Bagi pembangun dan pentadbir sistem, isu ini melibatkan lebih daripada nombor versi pada komputer riba. Aplikasi, persekitaran maya dan imej kontena mungkin menggunakan salinan Python atau himpunan sijil yang berbeza.
Python 3.15.2 ialah antara keluaran keselamatan yang dipercepatkan bagi menangani kunci sijil perantaraan eMudhra yang terjejas. Menurut nota keluaran Python, modul ssl kini menyekat penggunaan kunci tersebut sebagai lapisan perlindungan tambahan. Keluaran Python 3.11.18 pada tarikh yang sama turut menangani insiden ini.
Dokumentasi Python 3.15 menerangkan bahawa sekatan mengenal pasti sijil berdasarkan kunci awamnya. Oleh itu, salinan sijil yang ditandatangani silang tetapi menggunakan kunci yang sama juga disekat. Perlindungan ini berfungsi sebagai benteng tambahan walaupun aplikasi membekalkan himpunan sijil akarnya sendiri.
Ini ialah perubahan khusus pada laluan pemeriksaan sijil yang menggunakan modul ssl berkenaan. Ia tidak membuktikan bahawa setiap alat rangkaian, bahasa pengaturcaraan atau sistem dalam organisasi sudah dilindungi.
Sumber: Python Release Python 3.15.2; What's New in Python 3.15: Notable changes in 3.15.2; Python Release Python 3.11.18.
Sijil TLS membantu perisian mengesahkan identiti pelayan ketika membuat sambungan. Dalam rantaian kepercayaan, sijil perantaraan menghubungkan sijil yang digunakan oleh pelayan dengan pihak berkuasa sijil akar yang dipercayai oleh klien.
Nasihat keselamatan projek certifi menyatakan bahawa kunci peribadi bagi lapan sijil perantaraan eMudhra telah terjejas dan sijil tersebut telah dibatalkan. Menurut nasihat itu, pihak yang memiliki salah satu kunci boleh menghasilkan sijil yang kelihatan sah untuk nama hos pilihan mereka.
Untuk memintas atau mengubah trafik TLS dalam senario yang diterangkan oleh nasihat itu, penyerang juga perlu berada pada laluan sambungan dan klien perlu mempercayai himpunan sijil yang terjejas. Kewujudan kelemahan ini sahaja tidak membuktikan bahawa sesuatu aplikasi telah diserang.
Sumber: What's New in Python 3.15: Notable changes in 3.15.2; certifi bundles emSign root CAs with compromised intermediate CA keys.
Certifi menyediakan himpunan sijil akar yang digunakan oleh pelbagai perisian Python. Nasihat projek menyenaraikan requests, urllib3 dan pip sebagai contoh perisian yang boleh terlibat, bergantung pada himpunan kepercayaan yang digunakan.
Menurut nasihat tersebut, certifi versi sebelum 2026.10.18 mengandungi akar emSign yang berkaitan. Versi 2026.10.18 membuang semua akar emSign daripada himpunannya, manakala 2026.10.19 mengembalikan akar yang tidak terjejas. Nasihat itu mengesyorkan versi 2026.10.19 atau lebih baharu dan pembinaan semula imej kontena yang menyertakan certifi.
Nota Python pula menyatakan bahawa penggunaan biasa pip, termasuk menaik taraf pip sendiri, dilindungi daripada serangan berasaskan kunci yang terjejas apabila menggunakan keluaran Python yang telah diperbaiki. Kenyataan itu mempunyai skop khusus; ia bukan jaminan keselamatan menyeluruh untuk semua pakej atau sambungan.
Sumber: Python Release Python 3.15.2; certifi bundles emSign root CAs with compromised intermediate CA keys.
Nombor versi utama sahaja tidak mencukupi untuk menentukan sama ada pembaikan tersedia pada pemasangan tertentu. Halaman keluaran Python menunjukkan bahawa 3.11.18 dan 3.15.2 masing-masing menerima kemas kini berkaitan insiden ini. Senarai dokumentasi Python turut merekodkan keluaran 25 Oktober untuk siri 3.12, 3.13 dan 3.14.
Terdapat perbezaan dalam cara keluaran dibekalkan. Python menyatakan bahawa 3.11.18 ialah keluaran keselamatan dalam bentuk kod sumber, tanpa pemasang binari baharu daripada projek Python. Pengguna pengedaran sistem operasi atau platform terurus perlu menyemak maklumat penyedia masing-masing untuk mengetahui pakej dan pembaikan yang tersedia.
Pasukan juga perlu membezakan Python yang digunakan ketika membina aplikasi dengan Python yang berjalan dalam persekitaran produksi. Kedua-duanya boleh berada pada versi berbeza walaupun aplikasi berasal daripada repositori yang sama.
Sumber: Python Release Python 3.15.2; Python Release Python 3.11.18; Python documentation by version.
Sebagai langkah kerja, mulakan dengan inventori ringkas: kenal pasti aplikasi Python, tugas automasi, pelayan binaan dan imej kontena yang membuat sambungan keluar. Catat sumber pemasangan dan versi setiap persekitaran, termasuk persekitaran maya yang dikekalkan secara berasingan.
Seterusnya, semak nasihat penyedia untuk Python, certifi dan sistem operasi yang digunakan. Sediakan kemas kini dalam persekitaran ujian, bina semula imej yang mengandungi salinan lama, kemudian uji sambungan penting seperti repositori pakej dan API pembekal. Rekodkan hasil ujian sebelum melaksanakan perubahan mengikut proses organisasi.
Sebagai contoh, sebuah pasukan pembangunan di Malaysia yang menggunakan kontena untuk memproses data pelanggan boleh menyemak kedua-dua imej asas dan persekitaran binaannya. Jika sambungan sah gagal selepas perubahan kepercayaan sijil, siasat rantaian sijil dan hubungi penyedia perkhidmatan; mengabaikan pengesahan TLS akan menghilangkan perlindungan yang diperlukan.
Untuk pelajar pula, insiden ini ialah peluang memahami hubungan antara sijil akar, sijil perantaraan dan perisian klien. Cuba lukis rantaian kepercayaan dalam persekitaran pembelajaran dan terangkan bahagian yang diperiksa pada setiap sambungan. Contoh dan langkah dalam bahagian ini ialah cadangan editorial, bukan laporan bahawa organisasi tertentu di Malaysia telah terjejas.
Sumber: Python Release Python 3.15.2; certifi bundles emSign root CAs with compromised intermediate CA keys.
Disediakan secara automatik dengan bantuan AI berdasarkan sumber yang dipautkan. Semakan sumber: 2026-11-07. Gambar utama ialah ilustrasi janaan AI, bukan foto peristiwa sebenar.