idNSA.id - Peneliti keamanan RyotaK mengungkapkan tiga kelemahan di PyPI, yang paling parah berpotensi menyebabkan kompromi seluruh infrastruktur PyPI.
Python Package Index (PyPI) adalah repositori perangkat lunak pihak ketiga resmi untuk Python. PyPI sebagai indeks memungkinkan pengguna untuk mencari paket dengan kata kunci atau filter terhadap metadata, seperti lisensi perangkat lunak bebas atau kompatibilitas dengan POSIX.
Cacat tersebut memengaruhi work-flow combine-prs.yml di pypa/warehouse, yang menyertakan kode sumber PyPI saat ini.
Work-flow ini memungkinkan untuk mengumpulkan pull request yang memiliki nama branch yang dimulai dengan dependabot dan menggabungkannya menjadi satu pull request. Work-flow gagal memverifikasi pembuat pull request, ini berarti siapa pun dapat membuat pull request dengan nama tertentu dan memiliki work-flow untuk memprosesnya.
Work-flow tidak memverifikasi pembuat pull request, siapa pun dapat membuat pull request dengan nama tertentu dan memiliki work-flow untuk memprosesnya. RyotaK menunjukkan bahwa masih tidak mungkin untuk mengeksekusi kode karena work-flow hanya menggabungkan pull request dan hasilnya ditinjau oleh operator manusia yang dapat mendeteksi dan membuang kode berbahaya apa pun.
RyotaK menemukan cacat dalam kode yang digunakan untuk mencetak daftar branch pull request, masalah ini dapat dieksploitasi untuk menjalankan perintah dan membocorkan Token Akses GitHub dengan izin menulis terhadap repositori/warehouse pypa.
Prosedur langkah demi langkah untuk mengeksekusi kode arbitrer di pypi.org dapat di cek pada postingan ini. Pakar melaporkan kerentanan ini ke tim keamanan Python yang memperbaikinya. Dalam pembaruan yang diberikan pada 31 Juli, peneliti @mrtc0 menjelaskan bahwa prosedur serangan di atas tidak berfungsi. RyotaK setuju dan memberikan prosedur berikutnya.
Kerentanan yang ditemukan oleh pakar dapat berdampak signifikan pada ekosistem Python, pakar menyoroti risiko supply chain attack.