Fant en sårbarhet i Linux-kjernen tty-undersystemet

Forskere fra Google Project Zero-teamet ble sluppet nylig gjennom et blogginnlegg en ny metode for å utnytte sårbarheter (CVE-2020-29661) i implementeringen av ioctl-behandleren TIOCSPGRP av Linux-kjerne tty-undersystem, samt detaljerte beskyttelsesmekanismer som kan blokkere disse sårbarhetene.

Det er nevnt i innlegget at problemet er forårsaket av en feil i låseinnstillingene, som førte til en rasetilstand i koden til /tty/tty_jobctrl.c, som ble brukt til å skape betingelser for å få tilgang til minne etter lansering (bruk-etter-fri), utnyttet av brukerplass gjennom manipulasjon med ioct- ved å kalle TIOCSPGRP.

I tillegg til informasjonen som er publisert, også en funksjonell utnyttelsesdemo ble utført for privilegieeskalering i Debian 10 med kjerne 4.19.0-13-amd64 og som heller ikke utelukker at det kan påvirke ulike distribusjoner, blant annet er de som er basert på og avledet fra Debian.

Mange av de individuelle utnyttelsesteknikkene og avbøtende alternativene som jeg beskriver her, er ikke nye. Imidlertid synes jeg det er verdt å skrive dem sammen for å vise hvordan ulike avbøtende tiltak samhandler med en ganske normal etterfri utnyttelse.

Kodebitene i dette blogginnlegget som er relevante for utnyttelsen er hentet fra forrige versjon 4.19.160, da det er det mål-Debian-kjernen er basert på; noen andre kodebiter er fra Linux mainline.

Samtidig, i den publiserte artikkelen, vekten er ikke så mye på teknikken for å skape en funksjonell utnyttelse, men på hvilke verktøy det er i kjernen for å beskytte deg selv mot slike sårbarheter.

Konklusjonen er skuffende, som det nevnes at metoder som segmentering av minne i haugen og kontroll av tilgang til minne etter at det er frigjort, ikke brukes i praksis da de fører til ytelsesforringelse og beskyttelse basert på CFI (Control Flow Integrity), som blokkerer utnyttelser i senere stadier av et angrep, krever forbedringer.

En spesiell type terminalenhet er pseudoterminaler, som brukes når du for eksempel åpner en terminalapplikasjon i et grafisk miljø eller kobler til en ekstern maskin via SSH. Mens andre terminalenheter er koblet til en slags maskinvare, styres begge ender av en pseudoterminal av brukerplass, og pseudoterminaler kan fritt opprettes av brukerplass (uten privilegier).

Hver gang / dev / ptmx åpnes (forkortelse for "pseudo-terminal multiplexer"), representerer den resulterende filbeskrivelsen enhetssiden (referert til i dokumentasjonen og kjernekildene som "master pseudo-terminal") til en enhet. ny pseudo terminal.

 Den tilsvarende terminalenheten (som et skall normalt kobles til) opprettes automatisk av kjernen under / dev / pts / .

Når man ser på hva som kan utgjøre en forskjell i det lange løp, er det lagt vekt på å bruke avanserte statiske parsere eller å bruke minnesikre språk som Rust- og C-dialekter med utvidede merknader (som påvist C) for å bygge brikker av status, låser, objekter og pekere. Beskyttelsesmetodene nevner også å aktivere panic_on_oops-modus, gjøre kjernestrukturer skrivebeskyttet og begrense tilgang til systemanrop gjennom mekanismer som seccomp.

Feilen som forårsaker problemet det ble fikset i Linux-kjernen 3. desember i fjor. Problemet manifesterer seg i kjerner før versjon 5.9.13, men de fleste distribusjoner har løst problemet i kjernepakkeoppdateringene som ble tilbudt i fjor.

En lignende sårbarhet er også nevnt (CVE-2020-29660) som ble funnet samtidig i implementeringen av TIOCGSID ioctl-kallet, men som også ble fjernet overalt.

Endelig Hvis du er interessert i å vite mer om det, kan du sjekke detaljene I den følgende lenken.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: AB Internet Networks 2008 SL
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.