En teknik til at udnytte en sårbarhed i tty-undersystemet i Linux-kernen er blevet afsløret

Forskere fra Google Project Zero-teamet offentliggjorde en metode til at udnytte en sårbarhed (CVE-2020-29661) i implementeringen af ​​TIOCSPGRP ioctl-handleren fra tty-undersystemet i Linux-kernen og undersøgte også i detaljer de beskyttelsesmekanismer, der kunne blokere sådanne sårbarheder.

Fejlen, der forårsagede problemet, blev rettet i Linux-kernen den 3. december sidste år. Problemet dukker op i kerner op til version 5.9.13, men de fleste distributioner har løst problemet i opdateringer til kernepakker, der blev tilbudt sidste år (Debian, RHEL, SUSE, Ubuntu, Fedora, Arch). En lignende sårbarhed (CVE-2020-29660) blev samtidig fundet i implementeringen af ​​TIOCGSID ioctl-kaldet, men den er også allerede blevet rettet overalt.

Problemet er forårsaget af en fejl ved indstilling af låse, hvilket fører til en løbstilstand i drivers/tty/tty_jobctrl.c-koden, som blev brugt til at skabe use-after-free-betingelser udnyttet fra brugerplads gennem ioct-manipulationer. ved at kalde TIOCSPGRP. En fungerende udnyttelse er blevet demonstreret til privilegieeskalering på Debian 10 med kerne 4.19.0-13-amd64.

Samtidig fokuserer den publicerede artikel ikke så meget på teknikken til at skabe en fungerende udnyttelse, men snarere på hvilke værktøjer der findes i kernen til at beskytte mod sådanne sårbarheder. Konklusionen er ikke trøstende; metoder som hukommelsessegmentering i heapen og kontrol af hukommelsesadgang, efter at den er frigivet, bruges ikke i praksis, da de fører til et fald i ydeevne, og CFI (Control Flow Integrity)-baseret beskyttelse, som blokerer udnyttelser i de senere stadier af et angreb, skal forbedres.

Når man overvejer, hvad der ville gøre en forskel på lang sigt, er en, der skiller sig ud, brugen af ​​avancerede statiske analysatorer eller brugen af ​​hukommelsessikre sprog som Rust- og C-dialekter med rige annoteringer (såsom Markeret C) for at kontrollere tilstand under byggefasen låse, objekter og pointere. Beskyttelsesmetoder omfatter også aktivering af panic_on_oops-tilstanden, ændring af kernestrukturer til skrivebeskyttet tilstand og begrænsning af adgang til systemopkald ved hjælp af mekanismer såsom seccomp.

Kilde: opennet.ru

Tilføj en kommentar