En teknikk for å utnytte en sårbarhet i tty-undersystemet til Linux-kjernen har blitt avslørt

Forskere fra Google Project Zero-teamet publiserte en metode for å utnytte en sårbarhet (CVE-2020-29661) i implementeringen av TIOCSPGRP ioctl-behandleren fra tty-undersystemet til Linux-kjernen, og undersøkte også i detalj beskyttelsesmekanismene som kan blokkere slike sårbarheter.

Feilen som forårsaket problemet ble fikset i Linux-kjernen 3. desember i fjor. Problemet dukker opp i kjerner opp til versjon 5.9.13, men de fleste distribusjoner har løst problemet i oppdateringer til kjernepakker som ble tilbudt i fjor (Debian, RHEL, SUSE, Ubuntu, Fedora, Arch). En lignende sårbarhet (CVE-2020-29660) ble funnet samtidig i implementeringen av TIOCGSID ioctl-kallet, men det er også allerede rettet overalt.

Problemet er forårsaket av en feil ved innstilling av låser, noe som førte til en løpstilstand i drivers/tty/tty_jobctrl.c-koden, som ble brukt til å skape bruk-etter-frie forhold utnyttet fra brukerplass gjennom ioct-manipulasjoner ved å kalle TIOCSPGRP. En fungerende utnyttelse har blitt demonstrert for rettighetseskalering på Debian 10 med kjerne 4.19.0-13-amd64.

Samtidig fokuserer den publiserte artikkelen ikke så mye på teknikken for å lage en fungerende utnyttelse, men heller på hvilke verktøy som finnes i kjernen for å beskytte mot slike sårbarheter. Konklusjonen er ikke trøstende; metoder som minnesegmentering i haugen og kontroll av minnetilgang etter at den er frigjort, brukes ikke i praksis, da de fører til redusert ytelse, og CFI (Control Flow Integrity)-basert beskyttelse, som blokkerer utnyttelser i de senere stadiene av et angrep, trenger forbedring.

Når man vurderer hva som vil utgjøre en forskjell på lang sikt, er en som skiller seg ut bruken av avanserte statiske analysatorer eller bruken av minnesikre språk som Rust- og C-dialekter med rike merknader (som Checked C) for å sjekke tilstand under byggefasen låser, objekter og pekere. Beskyttelsesmetoder inkluderer også aktivering av panic_on_oops-modus, bytte av kjernestrukturer til skrivebeskyttet modus og begrense tilgang til systemanrop ved å bruke mekanismer som seccomp.

Kilde: opennet.ru

Legg til en kommentar