Dokumen ini menjelaskan dampak kerentanan peningkatan hak istimewa lokal CVE-2026-31431 pada kernel Linux dan solusi resminya. Alibaba Cloud menyediakan versi minor kernel yang telah diperbaiki untuk mengatasi kerentanan ini, sehingga keamanan sistem Anda dipulihkan tanpa memerlukan modifikasi kode aplikasi apa pun.
Latar Belakang
CVE-2026-31431 adalah kerentanan peningkatan hak istimewa lokal pada modul algif_aead kernel Linux.
Modul algif_aead digunakan untuk operasi Authenticated Encryption with Associated Data (AEAD) di ruang kernel. Patch optimasi kinerja yang diperkenalkan sebelumnya menambahkan mekanisme berbagi cache halaman, yang memungkinkan penyerang menulis 4 byte data terkendali ke cache halaman dari file yang dapat dibaca. Dengan memodifikasi file biner setuid, penyerang dapat meningkatkan hak istimewa lokal untuk memperoleh izin root.
Solusi
Alibaba Cloud menerapkan perbaikan resmi dari hulu (upstream) dengan merilis versi minor kernel baru untuk mengatasi kerentanan tersebut.
Perbaikan ini membatalkan operasi in-place yang tidak aman pada modul algif_aead dan kembali menggunakan mode out-of-place yang lebih aman untuk enkripsi dan dekripsi:
Sebelum perbaikan: Operasi enkripsi/dekripsi menggunakan ulang cache halaman, yang membuka risiko peningkatan hak istimewa lokal.
Setelah perbaikan: Operasi enkripsi/dekripsi menggunakan buffer terpisah.
Karena perbaikan ini membatalkan optimasi kinerja dari hulu, kinerja pada beberapa skenario enkripsi dan dekripsi mungkin sedikit menurun. Kami menyarankan Anda memantau secara ketat metrik kinerja aplikasi dan stabilitas sistem setelah peningkatan.
Versi yang terdampak dan diperbaiki
Sistem operasi | Versi yang terdampak | Versi yang diperbaiki |
Alibaba Cloud Linux 2 | kernel-4.19.91-28.4 dan versi sebelumnya | kernel-4.19.91-28.5.al7 atau versi lebih baru |
Alibaba Cloud Linux 3 | kernel-5.10.134-19.3 dan versi sebelumnya | kernel-5.10.134-19.3.1.al8 atau versi lebih baru |
Alibaba Cloud Linux 4 | kernel-6.6.102-5.3 dan versi sebelumnya | kernel-6.6.102-5.3.1.alnx4 atau versi lebih baru |
Peningkatan kernel
Menjalankan yum update kernel akan meningkatkan kernel saat ini ke versi terbaru di repositori. Contohnya:
kernel-5.10.134-16 → kernel-5.10.134-19.3.1. Proses peningkatan ini mungkin melibatkan perubahan kompatibilitas atau regresi kinerja. Anda harus mengontrol kecepatan peningkatan secara ketat serta melakukan pemeriksaan kesehatan layanan dan validasi canary.
Langkah 1: Buat snapshot
Sebelum melakukan peningkatan, buat snapshot untuk disk sistem dan disk data Anda. Hal ini memungkinkan Anda melakukan rollback dengan cepat jika terjadi masalah.
Jalur: Konsol ECS > Detail Instans > Penyimpanan Blok > Buat Snapshot
Langkah 2: Instal kernel yang telah diperbaiki
Metode 1: Peningkatan online dengan YUM (disarankan)
# 1. Bersihkan cache.
sudo yum clean all
# 2. Instal kernel yang telah diperbaiki.
sudo yum update kernel
# 3. Konfirmasi kernel boot default.
sudo grubby --default-kernel
# Output yang diharapkan: /boot/vmlinuz-<nomor_versi_yang_diperbaiki>
# Jika output menunjukkan versi yang diperbaiki, tidak diperlukan tindakan lebih lanjut. Jika tidak, lanjutkan ke langkah 4.
# 4. (Opsional) Tetapkan kernel baru sebagai default.
# Pertama, lihat semua kernel beserta nilai indeksnya.
sudo grubby --info=ALL | grep -E "^index|^kernel"
# Tetapkan kernel baru sebagai default (ganti dengan nilai indeks aktual).
sudo grubby --set-default-index=<indeks_kernel_baru>Metode 2: Instalasi offline dengan RPM
# 1. Unduh paket RPM yang sesuai dari saluran resmi Alibaba Cloud.
# 2. Instal kernel.
sudo rpm -ivh kernel-*.rpm
# 3. Konfirmasi kernel boot default.
sudo grubby --default-kernel
# Output yang diharapkan: /boot/vmlinuz-<nomor_versi_yang_diperbaiki>
# Jika output menunjukkan versi yang diperbaiki, tidak diperlukan tindakan lebih lanjut. Jika tidak, lanjutkan ke langkah 4.
# 4. (Opsional) Tetapkan kernel baru sebagai default.
# Pertama, lihat semua kernel beserta nilai indeksnya.
sudo grubby --info=ALL | grep -E "^index|^kernel"
# Tetapkan kernel baru sebagai default (ganti dengan nilai indeks aktual).
sudo grubby --set-default-index=<indeks_kernel_baru>Langkah 3: Reboot sistem
sudo rebootLangkah 4: Verifikasi perbaikan
# Periksa versi kernel.
uname -r
# Output yang diharapkan: Versi yang diperbaiki atau versi yang lebih baru (lihat tabel versi sebelumnya).Dampak peningkatan
Dampak untuk peningkatan umum
Jika Anda meningkatkan kernel karena alasan selain memperbaiki kerentanan ini:
Jika Anda tidak menggunakan modul
algif_aead: Peningkatan ini tidak berdampak. Fungsionalitas dan kinerja sistem tetap tidak berubah.Untuk workload yang menggunakan antarmuka AF_ALG untuk enkripsi atau dekripsi: Fungsionalitas tetap normal setelah peningkatan, tetapi kinerja modul
algif_aeadmenurun sekitar 5%.
Jika workload Anda tidak bergantung pada
algif_aeaddan Anda tidak memiliki persyaratan keamanan atau kepatuhan, Anda dapat menjadwalkan jendela peningkatan sesuai kebutuhan.Jika Anda memiliki persyaratan keamanan atau kepatuhan, atau workload Anda menggunakan modul ini, kami menyarankan Anda segera melakukan peningkatan.
Dampak kinerja
Perbaikan ini membatalkan optimasi kinerja dari hulu dan beralih dari model cache bersama ke buffer terpisah. Contohnya:
Berdasarkan pengujian
libkcapiMenggunakan algoritma AES(AESNI) GCM(ASM-RFC) 256
Kinerja modul
algif_aeadmenurun sekitar 5%.
Sebelum perbaikan: Menggunakan mode in-place dengan cache halaman bersama. Ini memberikan kinerja lebih tinggi tetapi membuka risiko keamanan.
Setelah perbaikan: Menggunakan mode out-of-place dengan buffer terpisah, yang memberikan keamanan lebih tinggi.
Kami menyarankan melakukan peningkatan selama jam sepi dan memantau metrik aplikasi Anda selama 10 hingga 30 menit setelahnya.
Prosedur rollback
Jika Anda mengalami masalah kompatibilitas atau kinerja setelah peningkatan, Anda dapat melakukan rollback dengan salah satu metode berikut.
Metode 1: Rollback snapshot (disarankan)
Hentikan instans ECS.
Di konsol, lakukan rollback disk menggunakan snapshot yang Anda buat sebelum peningkatan.
Jalankan instans dan verifikasi status workload Anda.
Metode 2: Ganti kernel boot default
# 1. Tampilkan daftar versi kernel yang terinstal.
grep menuentry /boot/grub2/grub.cfg | cut -d "'" -f2
# 2. Tetapkan kernel sebelumnya sebagai default saat startup.
sudo grubby --set-default-index=<indeks_kernel_sebelumnya>
# 3. Reboot sistem.
sudo reboot
# 4. (Opsional) Hapus kernel baru dan komponennya (contoh: 5.10.134-19.3.1.al8).
sudo yum remove kernel-5.10.134-19.3.1.al8 \
kernel-core-5.10.134-19.3.1.al8 \
kernel-modules-5.10.134-19.3.1.al8 \
kernel-modules-extra-5.10.134-19.3.1.al8 \
kernel-modules-internal-5.10.134-19.3.1.al8Catatan
Reboot diperlukan: Anda harus reboot sistem agar peningkatan kernel berlaku. Jika Anda tidak dapat reboot sistem, lihat Mitigasi dengan Menonaktifkan Keluarga Protokol AF_ALG di Alibaba Cloud Linux.
Validasi workload: Jika workload Anda memanggil antarmuka
AF_ALGuntuk menggunakan modulalgif_aead, Anda harus memvalidasi secara hati-hati kebenaran fungsional dan kinerjanya setelah peningkatan.Kompatibilitas: Jika workload Anda menggunakan modul kernel kustom, pastikan modul tersebut kompatibel dengan versi kernel target sebelum Anda melakukan peningkatan.
Rekomendasi pemantauan: Setelah peningkatan, kami menyarankan Anda memantau secara ketat garis dasar kinerja dan memeriksa log kesalahan untuk workload yang intensif kriptografi.