Hittade en sårbarhet i Linux-kärnan tty-undersystemet

Forskare från Google Project Zero-teamet meddelade nyligen genom ett blogginlägg en ny metod för att utnyttja sårbarheter (CVE-2020-29661) i TIOCSPGRP ioctl-hanterarens implementering av linux kärna tty undersystem, samt detaljerade skyddsmekanismer som kan blockera sådana sårbarheter.

Det nämns i inlägget att problemet orsakas av ett fel i låskonfigurationen, vilket leder till ett rastillstånd i koden för /tty/tty_jobctrl.c, som användes för att skapa förutsättningar för att komma åt minne efter lansering (use-after-free), utnyttjat av användarutrymmet via manipulation med ioct- genom att anropa TIOCSPGRP.

Förutom den publicerade informationen också en demonstration av en fungerande bedrift gjordes för privilegieupptrappning Debian 10 med kärnan 4.19.0-13-amd64 och som inte heller utesluter att det kan påverka olika distributioner, bland vilka naturligtvis finns de som är baserade på och härledda från Debian.

Många av de individuella utnyttjandeteknikerna och begränsningsalternativen som jag beskriver här är inte nya. Jag tror dock att det finns ett värde i att skriva dem tillsammans för att visa hur olika begränsningar samverkar med en ganska normal fri-efter-användning.

Kodsnuttarna i det här blogginlägget som är relevanta för utnyttjandet är hämtade från den äldre versionen 4.19.160, eftersom det är det som Debian-kärnan är baserad på; några andra kodavsnitt är från mainline linux.

Samtidigt, i den publicerade artikeln, betoningen ligger inte så mycket på tekniken att skapa en fungerande exploatering, utan på vilka verktyg det finns i kärnan för att skydda dig själv mot sådana sårbarheter.

Slutsatsen är en besvikelse eftersom det nämns att metoder som segmentering av minne på högen och styrning av åtkomst till minne efter att det har frigjorts inte tillämpas i praktiken eftersom de leder till minskad prestanda och CFI (Control Flow) baserat skydd. Integrity), vilket blockerar exploateringar i senare stadier av en attack, kräver förbättring.

En speciell typ av terminalenhet är pseudoterminaler, som används när man till exempel öppnar en terminalapplikation i en grafisk miljö eller ansluter till en fjärrmaskin via SSH. Medan andra terminalenheter är anslutna till någon slags hårdvara, styrs båda ändarna av en pseudoterminal av användarutrymme och pseudoterminaler kan skapas fritt av användarutrymme (utan privilegier).

Närhelst /dev/ptmx öppnas (förkortning för "pseudoterminal multiplexer"), representerar den resulterande filbeskrivningen enhetssidan (refererad till i dokumentationen och kärnkällorna som "master pseudoterminal") för en ny pseudoterminal.

 Motsvarande terminalenhet (som ett skal normalt ansluter till) skapas automatiskt av kärnan under /dev/pts/ .

När man tittar på vad som kan göra skillnad i det långa loppet, ligger tyngdpunkten på att använda avancerade statiska analysatorer eller att använda minnessäkra språk som Rust-dialekterna och C med utökade anteckningar (som markerad C) för att bygga tillståndskontroller, lås, föremål och pekare. Skyddsmetoderna nämner också att aktivera panic_on_oops-läge, göra kärnstrukturer skrivskyddade och begränsa åtkomst till systemanrop med hjälp av mekanismer som seccomp.

Felet som orsakade problemet fixades i Linux-kärnan den 3 december förra året. Problemet manifesterar sig i kärnor före version 5.9.13, men de flesta distributioner har åtgärdat problemet i kärnpaketuppdateringarna som släpptes förra året.

Det nämns också om en liknande sårbarhet (CVE-2020-29660) som hittades samtidigt i implementeringen av TIOCGSID ioctl-anropet, men den togs också bort överallt.

Slutligen Om du är intresserad av att veta mer om det, du kan kontrollera detaljerna I följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för data: AB Internet Networks 2008 SL
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.