Esploristoj de la teamo Project Zero de Google publikigis metodon por ekspluati vundeblecon (CVE-2020-29661) en la efektivigo de la TIOCSPGRP ioctl-traktilo el la tty-subsistemo de la kerno. Linux, kaj ankaŭ detale ekzamenis la protektajn mekanismojn, kiuj povus bloki tiajn vundeblecojn.
La cimo kaŭzanta la problemon estis riparita en la kerno. Linux reen la 3-an de decembro de la pasinta jaro. La problemo aperas en kernoj antaŭ versio 5.9.13, sed plej multaj distribuaĵoj solvis la problemon en ĝisdatigoj de kernaj pakaĵoj publikigitaj lastjare (Debian, RHEL, SUSE, Ubuntu, Fedora, Arch). Simila vundebleco (CVE-2020-29660) estis samtempe trovita en la efektivigo de la TIOCGSID ioctl-voko, sed ĝi ankaŭ jam estis vaste flikita.
La problemon kaŭzas eraro en ŝlosagordo, kiu kondukas al konkurskondiĉo en drivers/tty/tty_jobctrl.c, kiu estis sukcese ekspluatita por krei kondiĉon "uzu-post-liberigo", ekspluateblan el uzantospaco per manipulado de la ioct-voko TIOCSPGRP. Funkcianta ekspluato estis montrita por privilegia eskalado en Debian 10 kun kerno 4.19.0-13-amd64.
La publikigita artikolo malpli fokusiĝas al la tekniko por krei funkcian ekspluaton kaj pli al la ekzistantaj kernaj iloj por protekti kontraŭ tiaj vundeblecoj. La konkludo ne estas kuraĝiga: metodoj kiel stakmemorsegmentado kaj post-libera kontrolo ne estas uzataj en praktiko ĉar ili kondukas al reduktita rendimento, kaj CFI (Control Flow Integrity)-bazita protekto, kiu blokas ekspluatojn en la malfruaj stadioj de atako, bezonas plian disvolviĝon.
Kiam oni konsideras tion, kio povus plibonigi la situacion longtempe, oni emfazas progresintajn statikajn analizilojn aŭ memor-sekurajn lingvojn, kiel Rust kaj C-dialektoj kun progresintaj komentoj (ekz., Checked C). Ĉi tiuj lingvoj kontrolas la staton de seruroj, objektoj kaj montriloj dum konstruado. Aliaj rekomenditaj protektaj metodoj inkluzivas aktivigi panic_on_oops, igi kernstrukturojn nurlegeblaj kaj limigi aliron al sistemvokoj per mekanismoj kiel seccomp.
fonto: opennet.ru
