Kerentanan ing Python sing ngidini nelpon perintah sistem saka skrip kothak wedhi

A cara wis diterbitake kanggo lulus sistem eksekusi kode terisolasi ing Python, adhedhasar nggunakake bug dawa-dikenal sing muncul ing Python 2.7, diidentifikasi ing 2012 lan durung didandani ing Python 3. Bug ngidini nggunakake disambung khusus. Kode Python kanggo miwiti akses menyang memori sing wis dibebasake (Use-After-Free) ing Python. Kaping pisanan, dianggep yen kesalahan kasebut ora nyebabake ancaman keamanan lan mung ing kasus sing arang banget, biasane digawe kanthi artifisial, bisa nyebabake mandap skrip sing ora normal.

A peneliti keamanan ing pseudonym kn32 dadi kasengsem ing masalah lan ngatur kanggo nyiapake exploitasi apa sing ndadekake iku bisa kanggo nelpon sembarang printah sistem tanpa gadhah akses langsung kanggo cara kaya os.system. Eksploitasi dipun ginakaken ing Python murni lan dianggo tanpa ngimpor perpustakaan external lan tanpa nginstal "kode.__new__" handler. Saka pancingan, mung "builtin.__id__" digunakake, sing biasane ora dilarang. Ing sisih praktis, kode sing diusulake bisa digunakake kanggo ngliwati mekanisme isolasi ing macem-macem layanan lan lingkungan (contone, ing lingkungan sinau, cangkang online, handler sing dibangun, lsp), sing ngidini eksekusi kode Python, nanging mbatesi telpon kasedhiya lan ora ngidini cara nelpon kayata os.system.

Kode sing diusulake minangka analog saka telpon os.system, sing bisa digunakake kanthi ngeksploitasi kerentanan ing CPython. Eksploitasi bisa digunakake karo kabeh versi Python 3 ing sistem kanthi arsitektur x86-64 lan nduduhake operasi sing stabil ing Ubuntu 22.04, sanajan mode proteksi PIE, RELRO lan CET diaktifake. Pakaryan kasebut entuk informasi saka kode Python babagan alamat salah sawijining fungsi ing kode CPython sing bisa dieksekusi. Adhedhasar alamat iki, alamat basis CPython ing memori lan alamat sistem () fungsi ing conto libc dimuat ing memori diwilang. Ing pungkasan, transisi langsung menyang alamat sistem tartamtu diwiwiti kanthi substitusi pointer argumen pisanan menyang baris "/ bin / sh".

Kerentanan ing Python sing ngidini nelpon perintah sistem saka skrip kothak wedhi


Source: opennet.ru

Add a comment