Kerentanan TARmageddon Ungkap Masalah Perangkat Lunak Terbengkalai di Rust

Tim Komunitas BigGo
Kerentanan TARmageddon Ungkap Masalah Perangkat Lunak Terbengkalai di Rust

Sebuah kerentanan keamanan kritis pada pustaka parsing tar Rust yang populer telah mengungkap masalah yang lebih dalam di ekosistem sumber terbuka. Celah ini, yang dilacak sebagai CVE-2025-62518 dan dijuluki TARmageddon, memungkinkan penyerang menyelundupkan file tersembunyi ke dalam ekstraksi arsip, yang berpotensi mengakibatkan eksekusi kode jarak jauh. Yang membuat kasus ini sangat mengkhawatirkan bukan hanya kerentanan teknisnya itu sendiri, tetapi juga jaringan kompleks pustaka yang terbengkalai dan hasil fork yang membuat proses perbaikan menjadi luar biasa sulit.

Komunitas keamanan kini sedang bergulat dengan pertanyaan tentang keamanan rantai pasok perangkat lunak, tantangan dalam memelihara proyek sumber terbuka, dan apakah bahasa pemrograman modern seperti Rust memberikan perlindungan yang memadai terhadap serangan berbasis logika semacam ini.

"Memahami Kerentanan Keamanan dalam Open Source: TARmageddon Menyoroti Risiko dalam Perangkat Lunak Modern"
"Memahami Kerentanan Keamanan dalam Open Source: TARmageddon Menyoroti Risiko dalam Perangkat Lunak Modern"

Kerentanan yang Seharusnya Tidak Terjadi

TARmageddon mengeksploitasi ketidakkonsistenan parsing dalam cara pustaka tar async Rust menangani arsip bersarang dengan informasi header yang bertentangan. Ketika sebuah file tar berisi header extended PAX dan header ustar tradisional yang tidak sepakat tentang ukuran sebuah file, parser yang rentan secara tidak benar maju melalui aliran arsip. Hal ini menciptakan desinkronisasi yang memungkinkan file tersembunyi dari arsip bersarang diekstraksi seolah-olah mereka adalah bagian yang sah dari arsip utama.

Detail teknisnya melibatkan kebingungan header, tetapi dampak praktisnya mudah dipahami: sebuah arsip yang tampak aman selama pemindaian keamanan dapat mengeluarkan file yang tidak terduga selama ekstraksi. Ini melewati kontrol keamanan dan memungkinkan serangan rantai pasok di mana paket berbahaya menyamar sebagai perangkat lunak yang sah.

Bagian yang menakutkan bukanlah bug-nya — melainkan betapa rapuhnya proses perbaikan setelah sebuah crate tidak lagi dipelihara.

Kerentanan ini mempengaruhi beberapa crate Rust populer termasuk tokio-tar, yang telah diunduh lebih dari 5 juta kali di crates.io. Proses penemuan mengungkapkan bahwa fork yang paling banyak digunakan pada dasarnya adalah perangkat lunak terbengkalai - tidak lagi secara aktif dipelihara oleh pengembang aslinya.

Crate Rust yang Terpengaruh dan Statusnya

  • tokio-tar: Fork paling populer (5 juta+ unduhan), ditinggalkan
  • async-tar: Pustaka induk, pengelola menyediakan patch
  • krata-tokio-tar: Awalnya oleh Edera, sekarang diarsipkan, sudah di-patch
  • astral-tokio-tar: Dipelihara secara aktif oleh Astral, sudah di-patch

Tantangan Sebenarnya: Memperbaiki Perangkat Lunak yang Terbengkalai

Apa yang seharusnya menjadi pengungkapan keamanan yang sederhana berubah menjadi mimpi buruk koordinasi yang kompleks. Alih-alih bekerja dengan satu maintainer tunggal, tim keamanan Edera harus menavigasi garis keturunan pustaka hasil fork yang ruwet. Mereka perlu mengembangkan patch untuk versi upstream, menemukan maintainer proyek yang tidak terpelihara melalui rekayasa sosial dan penyelidikan, serta mengoordinasikan perbaikan secara bersamaan di berbagai fork aktif di bawah embargo ketat 60 hari.

Situasi ini menyoroti kelemahan mendasar dalam ekosistem perangkat lunak modern. Ketika dependensi populer menjadi terbengkalai, kerentanan keamanan menjadi semakin sulit untuk diperbaiki. Pengguna hilir mungkin sama sekali tidak menyadari bahwa mereka mengandalkan kode yang tidak terpelihara sampai kerentanan serius muncul.

Diskusi komunitas berfokus pada mengapa Rust tampaknya rentan terhadap paket yang terbengkalai. Beberapa komentator menyarankan bahwa ekosistem pengemasan Rust yang mudah justru memudahkan pengembang untuk mempublikasikan proyek tetapi menciptakan beban pemeliharaan yang mungkin tidak mereka antisipasi. Yang lain mencatat bahwa banyak pustaka Rust dimulai sebagai proyek pembelajaran atau porting dari bahasa lain, dan maintainer mungkin beralih setelah kegembiraan awal memudar.

Kronologi Pengungkapan

  • 2025-08-21: Bug ditemukan dan reproduksi dibuat
  • 2025-08-22: Patch dikembangkan dan diungkapkan kepada maintainer
  • 2025-09-02: Pengakuan dari maintainer async-tar
  • 2025-10-21: Pengungkapan publik dan rilis patch

Di Luar Keamanan Memori: Batas Keamanan Rust

Kerentanan TARmageddon berfungsi sebagai pengingat penting bahwa jaminan keamanan memori Rust tidak mencegah bug logika. Sementara Rust secara efektif menghilangkan seluruh kelas kerentanan korupsi memori yang menghantui kode C dan C++, bahasa ini tidak memberikan perlindungan khusus terhadap cacat dalam logika program atau penanganan data.

Seperti yang dicatat seorang komentator, Ini adalah pengingat penting bahwa Rust bukanlah solusi ajaib. Sementara jaminan Rust membuatnya lebih sulit untuk memperkenalkan bug keamanan memori, itu tidak menghilangkan bug logika. Ketidakkonsistenan parsing yang menjadi inti TARmageddon pada dasarnya adalah cacat logika yang dapat terjadi dalam bahasa pemrograman apa pun.

Insiden ini juga memunculkan pertanyaan tentang strategi manajemen dependensi di berbagai ekosistem. Komentator mencatat bahwa distribusi Linux tradisional sering kali mempertahankan patch keamanan untuk paket bahkan ketika maintainer upstream menghilang, sementara manajer paket khusus bahasa seperti Cargo, pip, dan npm biasanya mengikuti pendekatan kirim apa yang mereka berikan kepada kami.

Skenario Serangan Potensial

  • Pembajakan paket Python melalui unggahan PyPI
  • Keracunan image container dalam framework pengujian
  • Bypass pemindaian keamanan untuk file yang tidak disetujui
  • Kompromi sistem build dalam pipeline CI/CD

Ke Depan: Solusi untuk Ekosistem yang Lebih Sehat

Upaya pengungkapan terkoordinasi, meskipun menantang, menunjukkan bahwa keamanan berbasis komunitas dapat bekerja bahkan dalam keadaan sulit. Tim Edera bekerja dengan beberapa maintainer di berbagai fork untuk memastikan patch tersedia sebelum pengungkapan publik. Mereka juga secara proaktif menghubungi proyek-proyek hilir utama untuk mempersiapkan mereka terhadap pembaruan yang diperlukan.

Bagi organisasi yang mengandalkan perangkat lunak sumber terbuka, insiden ini menekankan pentingnya secara teratur mengaudit dependensi untuk status pemeliharaannya. Mitigasi runtime seperti memvalidasi jumlah file yang diekstraksi terhadap manifes yang diharapkan dan menggunakan sandbox ekstraksi terpisah dapat memberikan pertahanan berlapis bahkan ketika dependensi yang rentan tidak dapat segera diperbarui.

Ekosistem Rust, seperti banyak lingkungan pemrograman modern, menghadapi tantangan menyeimbangkan kenyamanan dengan keamanan. Penerbitan paket yang mudah telah mendorong pertumbuhan Rust yang cepat tetapi dapat berkontribusi pada tantangan pemeliharaan di kemudian hari. Seiring dengan matangnya komunitas, mengembangkan alat yang lebih baik untuk mengidentifikasi dan menangani dependensi yang terbengkalai akan sangat penting untuk keamanan jangka panjang.

Kisah TARmageddon bukan hanya tentang satu kerentanan - ini tentang tantangan struktural yang dihadapi oleh pemeliharaan perangkat lunak sumber terbuka. Seiring dengan bertambahnya dependensi dan maintainer yang beralih, seluruh ekosistem perangkat lunak menjadi lebih rapuh. Memecahkan masalah ini akan membutuhkan alat yang lebih baik, model pendanaan yang lebih berkelanjutan, dan kesadaran yang lebih besar di antara pengembang tentang status pemeliharaan dependensi mereka.

Referensi: TARMAGEDDON (CVE-2025-62518): KERENTANAN RCE MENYOROTI TANTANGAN PERANGKAT LUNAK SUMBER TERBUKA YANG TERBENGKALAI