Au fost detectate două vulnerabilități în Kernel-ul Linux care le-au permis utilizatorilor să-și ridice privilegiile 

vulnerabilitate

Dacă sunt exploatate, aceste defecte pot permite atacatorilor să obțină acces neautorizat la informații sensibile sau, în general, pot cauza probleme

Cu câteva zile în urmă vestea a dat asta Au fost detectate două vulnerabilități în subsistemele ale nucleul linux, Netfilter și io_uring, care permit unui utilizator local să-și ridice privilegiile asupra sistemului.

Prima este vulnerabilitatea. (CVE-2023-32233) care a fost detectat în subsistemul Netfilter și cauzate de accesul la memorie după utilizare liberă în modulul nf_tables, care asigură funcționarea filtrului de pachete nftables.

Această eroare se datorează faptului că netfilter nf_tables permite actualizarea configurației sale pentru solicitările lot care se grupează multiple operații de bază în tranzacţiile atomice.

Problema a fost reprodus în diferite versiuni ale nucleului Linux, inclusiv Linux 6.3.1 (stabil curent) iar vulnerabilitatea poate fi exploatată prin trimiterea de solicitări special concepute pentru a actualiza configurația nftables. Se menționează că atacul necesită acces la nftables, care poate fi obținut într-un spațiu de nume de rețea separat dacă aveți drepturile CLONE_NEWUSER, CLONE_NEWNS sau CLONE_NEWNET (de exemplu, dacă puteți rula un container izolat).

Cu privire la acest bug, cercetătorul care a identificat problema a promis să amâne cu o săptămână publicarea unor informații detaliate și a unui exemplu de exploit de lucru care oferă un shell rădăcină.

Într-un scenariu specific, o solicitare de lot nevalidă poate conține o operație care șterge implicit un set anonim nft existent urmat de o altă operație care încearcă să acționeze asupra aceluiași set nft anonim după ce acesta este șters. În scenariul de mai sus, un exemplu al operației de mai sus este ștergerea unei reguli nft existente care utilizează un set anonim nft. Și un exemplu al acestei din urmă operațiuni este o încercare de a elimina un element din acea matrice anonimă nft după ce matricea este eliminată alternativ, operațiunea din urmă ar putea chiar încerca să elimine din nou în mod explicit acea matrice anonimă nft. 

După cum am menționat deja la început, asta a fost acum câteva zile, iar exploitul și informațiile au fost deja dezvăluite. Exploatarea, precum și detaliile sale pot fi găsite la următorul link.

A doua greșeală detectată, a fost vulnerabilitatea (CVE-2023-2598) în implementarea interfeței I/O asincrone io_uring inclus în nucleul Linux începând cu versiunea 5.1.

Problema este cauzată de o eroare în funcția io_sqe_buffer_register, care permite accesul la memoria fizică în afara limitelor unui buffer alocat static. Problema apare doar în ramura 6.3 și va fi remediată în următoarea actualizare 6.3.2.

Se menționează că ideea din spatele comiterii inițiale este că, în loc să divizați paginile mari care sunt stocate în tampon în intrări bvec individuale, puteți avea o singură intrare bvec pentru toate părțile stocate în tampon ale paginii. Mai exact, dacă toate paginile din harta tampon utilizează structura primei pagini și lungimea tamponului într-o singură intrare bvec în loc să mapați fiecare pagină individual.

Deci bvec se va extinde cu mult dincolo de o singură pagină pe care de fapt îi este permis să o atingă. Mai târziu, IORING_OP_READ_FIXED și IORING_OP_WRITE_FIXED ne permit să citim și să scriem în buffer (adică, memoria indicată de bvec) după bunul plac. Acest lucru permite accesul de citire/scriere la memoria fizică din spatele singurei pagini pe care o avem de fapt.

Publicația despre vulnerabilități menționează pașii de reproducere a erorilor:

1. Creați un memfd
2. Eroare o singură pagină din acel descriptor de fișier
3. Folosiți MAP_FIXED pentru a mapa această pagină în mod repetat, către locații consecutive
4. Înregistrați întreaga regiune pe care tocmai ați completat-o ​​cu pagina respectivă ca
un buffer fix cu IORING_REGISTER_BUFFERS
5. Folosiți IORING_OP_WRITE_FIXED pentru a scrie bufferul într-un alt fișier
(OOB read) sau IORING_OP_READ_FIXED pentru a citi datele din buffer (
scriere OOB).

În sfârșit, merită menționat că este deja disponibil  un prototip de exploit funcțional (CVE-2023-2598) pentru testare, permițându-vă să rulați cod cu privilegii de kernel.

Vulnerabilitate (CVE-2023-32233) A fost remediat în actualizarea 6.4-rc și puteți urmări remedierea vulnerabilității în distribuții pe paginile: DebianUbuntuGentooRHELFedoraSUSE/openSUSEArc.


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.