idNSA.id - Pemelihara
sistem Git source code version control
mengumumkan telah memperbaiki beberapa kerentanan kritis, dilacak
sebagai CVE-2022-23521 dan
CVE-2022-41903, dalam perangkat lunak mereka.
Cacat tersebut ditemukan sebagai bagian dari audit source
code keamanan dari system Git source code version control yang disponsori oleh
OSTIF, yang dilakukan oleh tim pakar keamanan dari X41
dan GitLab.
Kerentanan dapat dieksploitasi oleh pelaku untuk mencapai
eksekusi kode jarak jauh. Kerentanan memengaruhi versi <= v2.30.6, v2.31.5,
v2.32.4, v2.33.5, v2.34.5, v2.35.5, v2.36.3, v2.37.4, v2.38.2, dan v2.39.0. Versi
yang dipatch termasuk v2.30.7, v2.31.6, v2.32.5, v2.33.6, v2.34.6, v2.35.6,
v2.36.4, v2.37.5, v2.38.3, dan v2.39.1.
CVE-2022-41903 adalah integer overflow di `git archive`, `git
log –format` yang dapat menyebabkan eksekusi kode jarak jauh di git.
“Git adalah sistem kontrol revisi terdistribusi. `git log` dapat menampilkan komit dalam format arbitrer menggunakan penentu `–format`. Fungsionalitas ini juga diekspos ke `git archive` melalui `export-subst` gitattribute. Saat memproses operator padding, ada integer overflow di `pretty.c::format_and_pad_commit()` di mana `size_t` disimpan secara tidak benar sebagai `int`, lalu ditambahkan sebagai offset ke `memcpy()`. ” membaca nasihat untuk masalah ini. “Luapan ini dapat dipicu secara langsung oleh pengguna yang menjalankan perintah yang memanggil mesin pemformat komit (misalnya, `git log –format=…`). Ini juga dapat dipicu secara tidak langsung melalui arsip git melalui mekanisme ekspor-subst, yang memperluas penentu format di dalam file di dalam repositori selama arsip git.”
Pemelihara preject merekomendasikan pengguna yang tidak dapat
segera memperbarui instalasi mereka untuk menonaktifkan "arsip git"
di repositori yang tidak tepercaya untuk mengurangi cacat CVE-2022-41903.
Masalah kedua, dilacak sebagai CVE-2022-23521, adalah parsing
integer overflow gitattributes.
“Git adalah sistem kontrol revisi terdistribusi.
gitattributes adalah mekanisme untuk memungkinkan mendefinisikan atribut untuk
jalur. Atribut ini dapat ditentukan dengan menambahkan file `.gitattributes` ke
repositori, yang berisi kumpulan pola file dan atribut yang harus diatur untuk
jalur yang cocok dengan pola ini. Saat mem-parsing gitattributes, multiple
integer overflow dapat terjadi saat ada sejumlah besar pola jalur, sejumlah
besar atribut untuk satu pola, atau saat nama atribut yang dideklarasikan
sangat besar.” membaca nasihat itu. “Luapan ini dapat dipicu melalui file
`.gitattributes` yang dibuat yang mungkin menjadi bagian dari riwayat komit.
Git diam-diam membagi baris lebih panjang dari 2KB saat mem-parsing
gitattributes dari sebuah file, tetapi tidak saat mem-parsingnya dari indeks.
Konsekuensinya, mode kegagalan bergantung pada apakah file ada di pohon kerja,
indeks, atau keduanya. Pelimpahan bilangan bulat ini dapat mengakibatkan
pembacaan dan penulisan heap yang sewenang-wenang, yang dapat mengakibatkan
eksekusi kode jarak jauh.”
“Kesimpulannya, code base Git menunjukkan beberapa masalah
keamanan dan besarnya basis kode membuatnya menantang untuk mengatasi semua
contoh potensial dari masalah ini. Penggunaan pembungkus yang aman dapat
meningkatkan keamanan perangkat lunak secara keseluruhan sebagai strategi
jangka pendek. Sebagai strategi peningkatan jangka panjang, kami
merekomendasikan untuk bergantian antara sprint pemfaktoran ulang basis kode
yang dibatasi waktu dan tinjauan keamanan berikutnya.” menyimpulkan laporan
yang diterbitkan oleh Eric Sesterhenn, dan Markus Vervier yang menemukan
masalah tersebut.