Am găsit o eroare în kernel-ul AF_PACKET și am eliminat textul derulant din consolă

recent o altă problemă a fost dezvăluită în subsistemul AF_PACKET Kernel Linux, care permite unui utilizator local neprivilegiat să ruleze codul ca root sau ieșiți din containere izolate dacă au acces root.

Informațiile publicate menționează că este necesară autorizarea CAP_NET_RAW pentru a crea socketul AF_PACKET și pentru a exploata vulnerabilitatea.

Cu toate acestea, se observă că un utilizator fără privilegii poate obține permisiunea specificat în containere create pe sisteme cu spații de nume de utilizator activate.

De exemplu, spațiile de nume ale utilizatorilor sunt incluse în mod implicit în Ubuntu și Fedora, dar nu sunt activate în Debian și RHEL. În timp ce în Android, procesul mediaerver are dreptul de a crea sockets AF_PACKET, prin care vulnerabilitatea poate fi exploatată.

Despre vulnerabilitatea din AF_PACKET

Vulnerabilitatea este prezentă în funcția tpacket_rcv și este cauzată de o eroare în calculul variabilei netoff.

Un atacator poate crea condiții sub care va scrie o valoare mai mică decât maclen în variabila netoff, care va provoca o revărsare prin calcularea „macoff = netoff-maclen” și apoi acest lucru ar putea seta incorect indicatorul tampon pentru datele primite.

Ca urmare, un atacator poate iniția scrierea de la 1 la 10 octeți într-o zonă din afara bufferului alocat. 

Calculul greșit a fost prezent în kernel din iulie 2008, adică în toate kernel-urile actuale, însă abilitatea acum cunoscută de a-l folosi pentru a scrie într-o zonă din afara buffer-ului alocat (vulnerabilitate) a fost introdusă probabil în februarie din 2016 (din kernel versiuni 4.6-rc1 și ulterioare), cu dezvoltarea suportului virtio_net.

În ceea ce privește soluția problemei, aceasta este încă disponibilă ca patch. Pe lângă faptul că, pe de altă parte, se observă că se dezvoltă un exploit care permite obținerea drepturilor de root pe sistem.

Pentru cei care sunt interesați să știe dacă remedierea este deja disponibilă pentru distribuirea lor, pot urmări apariția actualizărilor pachetelor în diferitele distribuții de pe următoarele pagini: Ubuntu, Fedora, SUSE, Debian, RHEL, Arc.

Suportul pentru derularea textului pentru consola de text a fost eliminat

Pe de altă parte, vorbind despre nucleul Linux, s-a anunțat, de asemenea, că codul de defilare a textului a fost eliminat din implementarea consolei de text din nucleul Linux (CONFIG_VGACON_SOFT_SCROLLBACK).

Codul a fost eliminat din cauza prezenței unor bug-uri, pe care nimeni nu l-a corectat din cauza lipsei unui manager care să supravegheze dezvoltarea vgacon.

Și asta acum câteva luni, o vulnerabilitate a fost identificată și remediată în vgacon (CVE-2020-14331) care ar putea provoca o depășire a bufferului din cauza lipsei verificărilor adecvate ale disponibilității memoriei în buffer-ul de defilare. Vulnerabilitatea a atras atenția dezvoltatorilor care a organizat teste fuzzing ale codului vgacon în syzbot.

Pe lângă asta verificările ulterioare au relevat încă câteva probleme Similar în codul vgacon, precum și problemele de implementare a software-ului de deplasare în controlerul fbcon.

Din păcate, codul problemei a fost lăsat nesupravegheat mult timp, probabil datorită faptului că dezvoltatorii au trecut la utilizarea consolei grafice și au încetat să mai fie folosite console de text (oamenii continuă să folosească consolele vgacon și fbcon, dar nu au fost interfața principală a nucleului de zeci de ani și au răspândit atât funcții precum defilarea încorporată a controlerului (Shift + PgUp / PgUp) sunt probabil cu o cerere redusă).

În acest sens, Linus Torvalds a decis să nu încerce să păstreze codul nerevendicat, ci pur și simplu ștergeți-l.

În cele din urmă, se menționează că, dacă există utilizatori care au nevoie de această funcționalitate, codul pentru a susține derularea în consolă va fi returnat la nucleu de îndată ce există un gospodar pregătit sau care dorește să-și asume sarcina de a prelua întreținerea sa în propriile lor mâini, adică singurul care vrea să-i dedice timp.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: AB Internet Networks 2008 SL
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.