Celah Git CVE-2026-111760: Clone Rekursif Bisa Jalankan Kode Penyerang, Cek Versi dan Update Sekarang

Oleh , Tim Engineering APIPedia · Terbit · 9 menit baca

CVE-2026-111760 membuat git clone --recurse-submodules bisa menjalankan kode penyerang. Cek versi Git, update ke 2.56.1, dan amankan submodule.

Sampul APIPedia Keamanan: judul "Celah Git: Clone Rekursif Bisa RCE" dengan kartu fakta CVE-2026-111760, CVSS 8.0 (High), pemicu git clone --recurse-submodules, versi aman 2.56.1, dan backport 2.50.2, 2.51.3, 2.52.1, 2.53.1, 2.54.1, 2.55.1.

CVE-2026-111760 adalah celah di Git yang membuat repositori berbahaya bisa menjalankan kode penyerang di komputer korban, cukup ketika korban melakukan clone rekursif beserta submodule-nya. Celah ini ditambal pada 10 November 2026 lewat Git 2.56.1 serta backport 2.50.2, 2.51.3, 2.52.1, 2.53.1, 2.54.1, dan 2.55.1, dengan skor CVSS 3.1 sebesar 8.0 (High).

Yang membuatnya penting: git clone --recurse-submodules adalah perintah sehari-hari developer, pipeline CI, dan tool yang membundel Git sendiri. Rilis yang sama juga menambal lima celah lain, termasuk satu yang menyasar server code hosting. Artikel ini membahas cara kerja celahnya, siapa yang terdampak, versi yang aman, cara mengecek mesin Anda, mitigasi sementara, dan cara mencari jejak submodule yang mencurigakan.

Ringkasan cepat: apa yang perlu Anda tahu?

ItemDetail
IDCVE-2026-111760 (advisory Git: GHSA-vp2w-7xxj-jvxr)
JenisInteger truncation saat Git menangani index; advisory tidak mencantumkan CWE
DampakEksekusi kode lewat hook atau config berbahaya milik penyerang
SkorCVSS 3.1: 8.0 High (AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:H/A:H)
PemicuClone rekursif (--recurse-submodules) dari repositori yang dikendalikan penyerang
Versi aman2.56.1, atau backport 2.50.2, 2.51.3, 2.52.1, 2.53.1, 2.54.1, 2.55.1
StatusPatch tersedia sejak 10 November 2026; sumber yang kami baca tidak melaporkan eksploitasi aktif, dan celah ini tidak tercantum di berita KEV terbaru
PenemuRangkaian celah dikreditkan ke Luke Martin dan pwn2addr; perbaikan oleh Toon Claes, Karthik Nayak, dan Kaartic Sivaraam

Bagaimana celah ini bekerja?

Git menyimpan daftar file yang dilacak di index. Menurut The Hacker News, celah ini berupa integer truncation pada penanganan index: path yang sangat panjang di dalam repositori bisa lolos pemeriksaan keamanan Git, tetapi kemudian ditulis ke disk dengan nama yang lebih pendek. Penyerang bisa mengatur agar nama pendek itu menjadi .git.

Celah ini berbahaya karena perilaku submodule. Git menolak mengganti folder .git dengan symbolic link, tetapi pada submodule yang baru di-clone, .git berupa file (gitfile). Release notes Git menjelaskan bahwa Git bisa dikelabui untuk menimpa gitfile submodule itu dengan symlink yang menunjuk ke folder berisi config atau hook berbahaya. Hook adalah program yang dijalankan Git pada titik tertentu, jadi begitu Git memakai folder tersebut, kode penyerang bisa berjalan.

Diagram alur CVE-2026-111760 dalam lima langkah: 1) penyerang menyiapkan repositori dengan path sangat panjang, 2) korban menjalankan git clone --recurse-submodules, 3) path lolos cek keamanan lalu namanya terpotong akibat integer truncation menjadi .git, 4) file .git submodule diganti symlink ke folder hooks atau config berbahaya, 5) Git menjalankan hook dan kode penyerang berjalan. Cabang perbaikan: Git 2.56.1 dan versi backport menolak path yang terlalu panjang sebelum sempat dipotong.

Versi yang sudah ditambal menolak path yang terlalu panjang sebelum panjangnya sempat terpotong. Release notes juga mencantumkan perbaikan tambahan (defense-in-depth) di read-cache yang menolak entri cache dengan nama terlalu panjang.

Kenapa skornya "hanya" 8.0?

Vektor CVSS di advisory Git menunjukkan beberapa syarat: kompleksitas serangan tinggi (AC:H), butuh hak akses rendah (PR:L), dan butuh interaksi korban (UI:R), yaitu korban harus meng-clone repositori itu secara rekursif. Namun scope-nya berubah (S:C) dengan dampak tinggi pada kerahasiaan, integritas, dan ketersediaan. Advisory juga menyebut repositori jahat itu dihosting penyerang sendiri, bukan di forge biasa, dan saat ini diyakini hanya bisa dipicu dengan opsi --recurse-submodules.

Siapa yang terdampak?

  • Developer yang memakai Git versi di bawah rilis perbaikan dan pernah atau sering melakukan clone rekursif, termasuk lewat script setup proyek.
  • Pipeline CI/CD dan build server yang meng-clone repositori pihak ketiga beserta submodule-nya secara otomatis.
  • Aplikasi yang membundel salinan Git sendiri. GitHub secara khusus menyarankan memperbarui aplikasi semacam ini, karena update Git dari sistem operasi tidak ikut memperbaruinya.
  • Pengguna Windows: per 10 November pukul 19.09 UTC, The Hacker News mencatat Git for Windows belum merilis versi berbasis 2.56.1.
  • Pengguna GitHub Enterprise Server yang belum naik ke 3.19.15, 3.20.11, 3.21.9, atau 3.22.4.

Pengguna github.com dan GitHub Enterprise Cloud sudah ditambal di sisi server oleh GitHub. Tetapi celah utamanya terjadi di Git milik klien yang meng-clone, jadi Git di laptop dan runner Anda tetap harus diperbarui.

Seberapa serius situasinya?

Kronologi CVE-2026-111760: 10 November 2026 pukul 18.03 UTC Git 2.56.1 dan 2.50.2 sampai 2.55.1 dirilis dengan 6 CVE ditambal sekaligus; 10 November advisory GHSA-vp2w-7xxj-jvxr terbit dengan CVSS 3.1 8.0 High; 10 November GitHub menambal github.com dan GHEC serta merilis GHES 3.19.15, 3.20.11, 3.21.9, 3.22.4; 10 November pukul 19.09 UTC Git for Windows belum merilis versi berbasis 2.56.1; menyusul GitHub Desktop, Copilot app, Codespaces, dan Actions.

  • Pengumuman rilis Git oleh Junio C Hamano pada 10 November 2026 menyebutnya "a set of coordinated security fix releases" dan meminta pengguna memperbarui secepatnya.
  • Satu rilis menambal enam CVE: CVE-2026-111760, CVE-2026-113408, CVE-2026-114466, CVE-2026-114467, CVE-2026-114469, dan CVE-2026-105437.
  • GitHub menyiapkan versi baru GitHub Desktop dan GitHub Copilot app, dan Codespaces serta GitHub Actions juga akan mendapat Git yang sudah diperbaiki.
  • Sumber yang kami baca belum melaporkan eksploitasi di dunia nyata maupun PoC publik untuk CVE-2026-111760.

Satu catatan: saat kami membukanya, halaman advisory GHSA-vp2w-7xxj-jvxr masih menulis "Patched versions: none" dan "Patches are being discussed". Isi itu tampaknya belum diperbarui, karena release notes resmi Git sudah mencantumkan CVE-2026-111760 sebagai diperbaiki. Pegang release notes sebagai acuan versi aman.

Lima celah lain dalam rilis yang sama

CVERingkasan
CVE-2026-113408Server jahat bisa mengiklankan unborn HEAD berisi path traversal (contoh refs/heads/../../../TARGET) saat clone repositori kosong lewat protokol v2; dengan files ref backend, update ref bisa menulis ke file yang tidak semestinya
CVE-2026-114467Merge tag dengan lebih dari dua tanda tangan GPG merusak memori stack, berpotensi DoS, termasuk di forge
CVE-2026-114469Binary patch yang mengembang sangat besar lolos batas sekitar 1 GiB dan membuat Git crash (out-of-bounds read)
CVE-2026-105437Merge sangat besar dengan banyak konflik dan conflict-marker-size besar membuat buffer terlalu kecil sehingga heap rusak; GitLab menilai server code hosting paling mungkin disasar lewat git merge-tree
CVE-2026-114466Fitur fast-import rewrite-submodules-from, rewrite-submodules-to, dan export-pack-edges bisa membaca atau membuat file sembarang; kini ditolak kecuali dengan --allow-unsafe-features

Versi mana yang aman?

CabangVersi aman minimumCatatan
2.562.56.1Rilis terbaru
2.552.55.1Backport
2.542.54.1Backport
2.532.53.1Backport
2.522.52.1Backport
2.512.51.3Backport
2.502.50.2Backport
Di bawah 2.50Lihat catatanPengumuman menyebut rilis tersedia "down to maint-2.43", tetapi tag yang dicantumkan hanya 2.50.2 ke atas. Paling aman naik ke salah satu versi di atas
GitHub Enterprise Server3.19.15, 3.20.11, 3.21.9, 3.22.4Sesuai cabang GHES Anda

Bagaimana cara mengecek versi Git?

# Versi Git yang dipakai di terminal
git --version

# Lokasi binary Git (bisa lebih dari satu di PATH)
which -a git

# Apakah clone/pull otomatis memakai submodule? (true = rekursif secara default)
git config --show-origin --get submodule.recurse

# Cari salinan Git lain yang dibundel aplikasi (contoh di Linux/macOS)
find / -type f -name git -perm -u+x 2>/dev/null | grep -v '^/proc' | head -50

Di runner CI, tambahkan git --version di awal job supaya versi yang benar-benar dipakai tercatat di log. Ingat bahwa image container dan runner self-hosted sering membawa Git versi lama.

Bagaimana cara update dengan aman?

Urutan yang disarankan: hentikan clone rekursif dari sumber tak tepercaya dulu, baru perbarui Git di semua mesin.

Langkah 1: mitigasi sementara

GitHub menyarankan langkah berikut sampai versi perbaikan terpasang, dan menegaskan langkah ini tidak menggantikan patch: clone hanya dari server tepercaya, jangan clone rekursif repositori yang tidak dipercaya, jangan merge konten atau tag yang tidak dipercaya, dan jangan memproses binary patch atau stream fast-import dari sumber tak tepercaya.

# Pastikan clone tidak otomatis rekursif (hapus jika pernah di-set true)
git config --global --unset submodule.recurse

# Untuk repositori yang belum dipercaya: clone TANPA submodule dulu
git clone https://contoh.domain/repo.git
cd repo

# Periksa daftar submodule sebelum mengambilnya
cat .gitmodules
git submodule status

Untuk server code hosting yang belum bisa upgrade, The Hacker News mengutip workaround CVE-2026-105437: tambahkan conflict-marker-size=7 ke file info/attributes tiap repositori, atau matikan pengecekan merge untuk repositori tak tepercaya.

# Contoh untuk repositori bare di server (sesuaikan path)
echo '* conflict-marker-size=7' >> /path/ke/repo.git/info/attributes

Langkah 2: update dan verifikasi

GitHub menyarankan memasang versi perbaikan dari sistem operasi atau distributor Git Anda. Paket di tiap distro bisa terbit di waktu berbeda, jadi cek versi setelah update.

# Debian/Ubuntu
sudo apt update && sudo apt install --only-upgrade git

# RHEL/Rocky/AlmaLinux/Fedora
sudo dnf upgrade git

# macOS (Homebrew)
brew update && brew upgrade git

# Verifikasi: harus 2.56.1 atau versi backport yang sesuai cabang
git --version

Di Windows, pantau rilis Git for Windows berbasis 2.56.1, lalu jalankan git update-git-for-windows atau unduh installer resmi. Perbarui juga GitHub Desktop dan aplikasi lain yang membundel Git begitu versi barunya keluar.

Bagaimana mendeteksi repositori yang mencurigakan?

Belum ada IOC yang dipublikasikan untuk celah ini. Yang bisa diperiksa adalah ciri teknik serangannya: gitfile submodule yang berubah menjadi symlink, serta hook atau config tak dikenal. Jalankan dari folder repositori hasil clone rekursif.

# 1) Normalnya .git di dalam submodule adalah FILE biasa, bukan symlink
find . -name .git -type l -exec ls -l {} \;

# 2) Hook aktif (selain contoh *.sample) di repositori utama dan submodule
find .git/hooks .git/modules -path '*hooks/*' ! -name '*.sample' -type f 2>/dev/null

# 3) core.hooksPath atau konfigurasi lain yang mengarah ke folder tak dikenal
git config --show-origin --get-regexp 'core\.hookspath|core\.fsmonitor|core\.sshcommand'
git submodule foreach --recursive 'git config --show-origin --get-regexp "core\..*" || true'

# 4) Path yang sangat panjang di index (pemicu celah)
git ls-files | awk 'length($0) > 4096 {print length($0)": "substr($0,1,80)"..."}'

Hasil kosong di langkah 1 sampai 3 adalah kondisi normal untuk kebanyakan proyek. Satu temuan saja belum tentu serangan, tetapi symlink .git di submodule atau hook yang tidak Anda pasang sendiri layak diperiksa serius.

Kalau menemukan tanda pembobolan?

  1. Putuskan mesin dari jaringan dan simpan salinan folder repositori, termasuk .git/modules, sebagai bukti.
  2. Periksa proses yang berjalan dan cron/systemd timer baru di mesin tersebut.
  3. Rotasi kredensial yang tersimpan di mesin: SSH key, token Git hosting, credential helper, token cloud, dan secret CI.
  4. Bangun ulang runner atau workstation dari image bersih dengan Git versi aman.
  5. Laporkan repositori sumbernya ke platform hosting terkait.

Pertanyaan yang sering diajukan

Saya hanya pakai github.com. Apakah perlu update?

Ya. GitHub sudah menambal server github.com, tetapi celah utama terjadi di Git klien saat meng-clone. Git di laptop, server, dan runner Anda tetap harus diperbarui.

Apakah git clone biasa tanpa submodule aman?

Advisory Git saat ini meyakini celah ini hanya bisa dipicu dengan --recurse-submodules. Tetapi rilis yang sama juga menambal celah lain yang tidak butuh submodule, misalnya CVE-2026-113408 saat clone repositori kosong, jadi update tetap wajib.

Apakah celah ini sudah masuk CISA KEV?

Sumber yang kami baca tidak menyebutnya. Berita KEV terbaru (10 November 2026) membahas Cisco BroadWorks dan Openwave, bukan Git. Status bisa berubah, jadi pantau katalog KEV.

Bagaimana dengan VPS atau shared hosting di Indonesia?

Kalau Anda punya akses SSH dan memakai Git di server untuk deployment, cek versinya dengan git --version dan update lewat paket distro. Di shared hosting, Git dikelola penyedia, jadi tanyakan jadwal update ke mereka dan hindari clone rekursif repositori pihak ketiga sampai Git diperbarui.

Apakah runner GitHub Actions aman?

GitHub menyatakan Actions akan mendapat Git yang sudah diperbaiki. Untuk runner self-hosted, Anda sendiri yang harus memperbarui Git di mesin runner.

Celah ini menambah daftar masalah keamanan di rantai pasok developer setelah celah GitLab CVE-2026-97229. Polanya serupa: alat yang kita pakai setiap hari untuk mengambil dan membangun kode ikut menjadi jalur serangan. Untuk server Linux, cek juga status celah kernel CVE-2026-98432.

Sumber

Topik:

Tentang penulis

Tim APIPedia — Tim Engineering APIPedia

Tim engineering di balik APIPedia yang membangun dan memelihara API data Indonesia - ongkir, OCR KTP, data wilayah, BMKG, hingga server MCP - dan menulis panduan integrasinya dari pengalaman langsung.