Ei au detectat o vulnerabilitate în bibliotecile uClibc și uClibc-ng care afectează firmware-ul Linux 

Acum câteva zile a fost lansată știrea că în bibliotecile standard C uClibc și uClibc-ng, utilizat în multe dispozitive încorporate și portabile, a fost identificată o vulnerabilitate (cu CVE încă nealocat), care permite înlocuirea datelor fictive în memoria cache DNS, care pot fi folosite pentru a falsifica adresa IP a unui domeniu arbitrar din cache și pentru a redirecționa cererile către domeniu către serverul atacatorului.

Despre problema se mentioneaza ca aceasta afectează diverse firmware-uri Linux pentru routere, puncte de acces și dispozitive IoT, precum și distribuții Linux încorporate precum OpenWRT și Embedded Gentoo.

Despre vulnerabilitate

Vulnerabilitate se datorează utilizării identificatorilor de tranzacție predictibili în cod pentru a trimite interogări de DNS. ID-ul de interogare DNS a fost ales prin simpla creștere a contorului fără randomizare suplimentară a numerelor de porturi, ceea ce a făcut posibilă otrăvirea cache-ului DNS prin trimiterea preventivă a pachetelor UDP cu răspunsuri false (răspunsul va fi acceptat dacă sosește înainte de răspunsul de la serverul real și include identificarea corectă).

Spre deosebire de metoda Kaminsky propusă în 2008, nici măcar nu este necesar să se ghicească ID-ul tranzacției, deoarece este inițial previzibil (inițial, este setat la 1, care crește cu fiecare cerere și nu este selectat aleatoriu).

Pentru a te proteja împotriva ghicirii ID, caietul de sarcini recomandă în continuare utilizarea unei distribuții aleatorii a numerelor de porturi de rețea de origine de la care sunt trimise interogările DNS, ceea ce compensează dimensiunea insuficientă a ID-ului.

Când randomizarea portului este activată, pentru a forma un răspuns fals, pe lângă selectarea unui identificator de 16 biți, este și necesar să selectați numărul portului de rețea. În uClibc și uClibc-ng, o astfel de randomizare nu a fost activată în mod explicit (când a fost apelată bind, nu a fost specificat un port UDP sursă aleatorie) și implementarea sa depindea de configurația sistemului de operare.

Când randomizarea portului este dezactivată, determinarea ce id de cerere pentru a incrementa este marcată ca o sarcină banală. Dar chiar și în cazul randomizării, atacatorul trebuie doar să ghicească portul de rețea din intervalul 32768-60999, pentru care poate folosi trimiterea simultană masivă de răspunsuri false pe diferite porturi de rețea.

Problema a fost confirmat în toate versiunile actuale ale uClibc și uClibc-ng, inclusiv cele mai recente versiuni de uClibc 0.9.33.2 și uClibc-ng 1.0.40.

„Este important de reținut că o vulnerabilitate care afectează o bibliotecă C standard poate fi destul de complexă”, a scris echipa într-o postare pe blog în această săptămână.

„Nu numai că ar exista sute sau mii de apeluri către funcția vulnerabilă în mai multe puncte dintr-un singur program, dar vulnerabilitatea ar afecta un număr nedefinit de alte programe multi-furnizor configurate să folosească acea bibliotecă”.

În septembrie 2021, au fost trimise informații despre vulnerabilitate către CERT/CC pentru pregătirea coordonată a matricei. În ianuarie 2022, problema a fost împărtășită cu peste 200 de producători asociat cu CERT/CC.

În martie, a existat o încercare de a contacta separat întreținătorul proiectului uClibc-ng, dar acesta a răspuns că nu poate remedia el însuși vulnerabilitatea și a recomandat dezvăluirea publică a informațiilor despre problemă, în speranța de a obține ajutor pentru a dezvolta o remediere. comunitatea. De la producători, NETGEAR a anunțat lansarea unei actualizări cu eliminarea vulnerabilității.

Este important de menționat că o vulnerabilitate care afectează o bibliotecă C standard poate fi destul de complexă. Nu numai că ar exista sute sau mii de apeluri către funcția vulnerabilă în mai multe puncte dintr-un singur program, dar vulnerabilitatea ar afecta un număr nedefinit de alte programe de la mai mulți furnizori configurați să folosească acea bibliotecă.

Se observă că vulnerabilitatea se manifestă în dispozitivele de la mulți producători (de exemplu, uClibc este folosit în firmware-ul de la Linksys, Netgear și Axis), dar, deoarece vulnerabilitatea rămâne nepattched în uClibc și uClibc-ng, informații detaliate despre dispozitive și anumite producătorii în ale căror produse există o problemă, până când acestea sunt dezvăluite.

În cele din urmă dacă sunteți interesat să aflați mai multe despre asta, puteți verifica detaliile În următorul link.


Conținutul articolului respectă principiile noastre de etică editorială. Pentru a raporta o eroare, faceți clic pe aici.

Fii primul care comenteaza

Lasă comentariul tău

Adresa ta de email nu va fi publicată.

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  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.