Pada 10 November 2026, proyek Git merilis pembaruan keamanan yang memperbaiki enam kerentanan sekaligus. Yang paling serius adalah eksekusi kode berbahaya (remote code execution) saat melakukan recursive clone dari repositori buatan penyerang. Artinya, satu perintah git clone --recurse-submodules ke repo yang salah sudah cukup untuk menjalankan kode penyerang di laptop developer, runner CI, sampai server build Anda.
Perbaikannya tersedia di Git 2.56.1, dengan backport ke seri 2.55.1, 2.54.1, 2.53.1, 2.52.1, 2.51.3, dan 2.50.2. Bagi tim yang memakai Git setiap hari, memperbarui tooling ini adalah pekerjaan sepuluh menit yang layak dikerjakan malam ini juga.
Enam celah, satu pembaruan
Ringkasan tiap CVE berdasarkan pengumuman resmi GitHub Blog edisi 10 November 2026:
- CVE-2026-111760, eksekusi kode saat recursive clone. Integer truncation pada penanganan index membuat path yang sangat panjang lolos validasi dengan satu nama tetapi ditulis dengan nama yang lebih pendek. Penyerang memakai celah ini untuk mengganti file
.gitmilik submodule dengan symlink ke direktori berisi konfigurasi atau hooks jahat, lalu Git mengeksekusi kode tersebut ketika direktori itu dipakai. - CVE-2026-113408, path traversal lewat HEAD yang diiklankan server. Saat clone repo kosong via Git protocol v2, server bisa mengiklankan symref
HEADke branch yang belum punya commit. Git sebelumnya tidak memvalidasi target symref itu, sehingga nama berisi komponen../membuat operasi berikutnya menulis di luar direktori refs. - CVE-2026-114467, stack corruption saat melepas signature. Git mengasumsikan sebuah pesan maksimal punya dua signature GPG, padahal pesan dengan lebih dari dua signature membuat Git menulis melewati batas array berukuran tetap. Pemicunya bisa merge tag, dan efeknya memory corruption yang berujung denial of service.
- CVE-2026-114469, out-of-bounds read saat apply binary patch. Batas ukuran patch sekitar 1 GiB hanya dicek dari ukuran file yang dikirim, padahal patch biner terkompresi sehingga patch kecil bisa mengembang melewati batas dan membuat Git crash.
- CVE-2026-105437, heap corruption saat merge besar. Perhitungan memori untuk hasil merge bisa overflow ketika hasilnya sangat besar, misalnya banyak konflik digabung dengan atribut
conflict-marker-sizeberukuran besar. Buffer yang dialokasikan terlalu kecil lalu ditulisi melewati batas. - CVE-2026-114466, akses filesystem lewat fast-import. Fitur
rewrite-submodules-fromdanrewrite-submodules-tobisa membaca file arbitrer dan membocorkan isinya lewat pesan error, sementaraexport-pack-edgesbisa membuat atau menambahi file. Keduanya kini ditolak dari input stream kecuali pemanggil eksplisit memakai--allow-unsafe-features.
Selain enam perbaikan itu, rilis ini menambah pengecekan overflow pada alokasi index entry saat checkout dan pemrosesan tree. Tujuannya agar ukuran alokasi tidak terpotong sebelum path disalin ke memori.
Cek dulu versi Git di semua mesin
Langkah pertama selalu inventaris. Jalankan perintah berikut di laptop, server aplikasi, VPS klien, dan runner CI:
git --version
# contoh output: git version 2.56.0
Kalau angka versinya masih di bawah patch seri Anda (2.56.1, 2.55.1, 2.54.1, 2.53.1, 2.52.1, 2.51.3, atau 2.50.2), berarti instalasi itu belum aman. Ada beberapa tempat yang sering terlewat saat audit:
- Runner CI/CD seperti GitLab Runner, GitHub Actions self-hosted, dan Jenkins agent, karena justru inilah yang paling sering memproses repo dari luar.
- Git bawaan aplikasi pada GitHub Desktop, aplikasi GitHub Copilot, serta IDE yang membawa Git sendiri. GitHub menyatakan sedang menyiapkan rilis GitHub Desktop dan Copilot app dengan Git yang sudah dipatch, sekaligus memperbarui Codespaces dan GitHub Actions.
- Server Git internal seperti Gitea, GitLab, dan Forgejo, karena mereka melakukan merge atas nama pengguna.
- GitHub Enterprise Server, dengan perbaikan di versi 3.19.15, 3.20.11, 3.21.9, dan 3.22.4. Administrator diminta segera melakukan upgrade.
Cara update
Pilih jalur yang sesuai platform Anda. Intinya satu hal: dapatkan build yang sudah berisi patch, jangan hanya menunggu.
- Ubuntu/Debian. Perbarui dari repo distro, dan bila repo belum menyediakan versi patch, gunakan PPA resmi
ppa:git-core/ppa.sudo apt update sudo apt install --only-upgrade git git --version - macOS. Cara tercepat lewat Homebrew.
brew update brew upgrade git git --version - Windows. Pakai winget atau installer Git for Windows terbaru.
winget upgrade --id Git.Git - Build dari source untuk server yang membutuhkan versi spesifik.
curl -LO https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.56.1.tar.gz tar -xzf git-2.56.1.tar.gz && cd git-2.56.1 make prefix=/usr/local all sudo make prefix=/usr/local install - Container. Ganti base image ke tag yang sudah memuat Git patch lalu rebuild, karena image lama yang di-pin ke digest lama tetap rentan.
Kalau belum bisa update malam ini
Git menyebut update sebagai satu-satunya proteksi yang benar-benar efektif, dan langkah berikut hanya mengurangi risiko untuk sementara:
- Clone hanya dari server yang Anda percaya, dan hindari
--recurse-submodulespada repo asing. - Jangan merge konten atau tag dari sumber tidak tepercaya.
- Jangan memproses binary patch atau stream
fast-importdari sumber luar. - Untuk pipeline yang meng-build kode pihak ketiga, jalankan di container sekali pakai dengan akses jaringan dan filesystem minimal.
Kebiasaan yang mencegah kejadian serupa
Kerentanan Git jarang jadi berita besar, padahal dampaknya menyentuh seluruh rantai kerja: developer, CI, sampai server produksi. Ada tiga kebiasaan kecil yang membantu. Pertama, catat versi Git di dokumentasi infrastruktur supaya audit berikutnya cepat. Kedua, ikuti feed rilis di git-scm.com atau kategori Git pada blog GitHub. Ketiga, jadwalkan patch bulanan untuk tooling developer, bukan hanya untuk aplikasi web. Di banyak proyek pemerintah dan desa yang kami kelola, Git sering dianggap "sudah ada dan jalan", padahal ia sama-sama butuh pembaruan keamanan seperti PHP, Nginx, atau library framework.
Sumber: Git security vulnerabilities announced, GitHub Blog, 10 November 2026; Git Downloads di git-scm.com.
