Është zbuluar një teknikë për shfrytëzimin e një cenueshmërie në nënsistemin tty të kernelit Linux

Studiuesit nga ekipi i Google Project Zero publikuan një metodë për shfrytëzimin e një dobësie (CVE-2020-29661) në zbatimin e mbajtësit ioctl TIOCSPGRP nga nënsistemi tty i kernelit Linux, dhe gjithashtu ekzaminuan në detaje mekanizmat e mbrojtjes që mund të bllokonin një të tillë. dobësitë.

Defekti që shkaktoi problemin u rregullua në kernelin Linux që në 3 dhjetor të vitit të kaluar. Problemi shfaqet në kernel deri në versionin 5.9.13, por shumica e shpërndarjeve e rregulluan problemin në përditësimet e paketave të kernelit të propozuara vitin e kaluar (Debian, RHEL, SUSE, Ubuntu, Fedora, Arch). Një cenueshmëri e ngjashme (CVE-2020-29660) u gjet njëkohësisht në zbatimin e thirrjes TIOCGSID ioctl, por gjithashtu është rregulluar kudo.

Problemi shkaktohet nga një defekt i kyçjes që shkakton një gjendje gare në kodin drivers/tty/tty_jobctrl.c, i cili mund të përdoret për të krijuar kushte të aksesit të memories pa pagesë, të shfrytëzuara nga hapësira e përdoruesit nëpërmjet ioct-thirrjes TIOCSPGRP. Një shfrytëzim pune është demonstruar për përshkallëzimin e privilegjeve në Debian 10 me kernel 4.19.0-13-amd64.

Në të njëjtën kohë, në artikullin e botuar, theksi nuk është aq shumë në teknikën e krijimit të një shfrytëzimi pune, por në atë se cilat mjete ekzistojnë në kernel për t'u mbrojtur nga dobësi të tilla. Përfundimi nuk është inkurajues, metoda të tilla si segmentimi i kujtesës në grumbull dhe kontrolli i aksesit të memories pasi të lirohet nuk përdoren në praktikë, pasi ato çojnë në një ulje të performancës dhe mbrojtja e bazuar në CFI (Integriteti i rrjedhës së kontrollit), duke bllokuar shfrytëzimet në fazat e mëvonshme të sulmit, ka nevojë për përmirësim.

Kur merret parasysh se çfarë mund të bëjë një ndryshim në planin afatgjatë, përdorimi i analizuesve statikë të avancuar ose përdorimi i gjuhëve të sigurta për memorie, si dialektet Rust dhe C me shënime të pasura (si p.sh. Checked C) në fazën e ndërtimit të kontrolluesve të gjendjes brava, objekte dhe tregues. Ndër metodat e mbrojtjes, përmendet edhe aktivizimi i modalitetit panic_on_oops, transferimi i strukturave të kernelit në modalitetin vetëm për lexim dhe kufizimi i aksesit në thirrjet e sistemit duke përdorur mekanizma të tillë si seccomp.

Burimi: opennet.ru

Shto një koment