Sårbarhed i VFS i Linux-kernen, som muliggør forhøjelse af privilegier

Der er fundet en sårbarhed (CVE-2022-0185) i API Filesystem Context, leveret af Linux-kernen, der gør det muligt for en lokal bruger at opnå root-rettigheder i systemet. Forskeren, der opdagede problemet, har offentliggjort en demonstration af et exploit, som muliggør kørsel af kode med root-rettigheder i Ubuntu 20.04 i standardkonfiguration. Koden til exploit forventes at blive lagt på GitHub inden for en uge, efter at distributionerne har udsendt en opdatering med rettelse af sårbarheden.

Sårbarheden findes i funktionen legacy_parse_param() i VFS og skyldes manglende tilstrækkelig kontrol af den maksimale størrelse af parametre, der gives i filsystemer, der ikke understøtter API Filesystem Context. Ved at videregive en alt for stor parameter kan der opstå et overflow i en heltalsvariabel, der bruges til at beregne størrelsen af de skrevne data - der er en grænseoverskridelsescheck ‘if (len > PAGE_SIZE - 2 - size)’, som ikke aktiveres, hvis værdien af size er større end 4094 på grund af heltalsoverflow ved lav grænse (integer underflow; når 4096 - 2 - 4095 konverteres til unsigned int, bliver det 2147483648).

Den nævnte fejl tillader, at der ved adgang til et særligt formateret FS-billede kan opstå buffer overflow, hvilket kan overskrive kerndata, der følger efter det tildelte hukommelsesområde. For at kunne udnytte sårbarheden kræves rettighederne CAP_SYS_ADMIN, dvs. administratorrettigheder. Problemet er, at sådanne rettigheder kan opnås af en privilegeret bruger i en isoleret container, hvis systemet har aktiveret understøttelse af brugernavnepladser (user namespaces). For eksempel er brugernavnepladser som standard aktiveret i Ubuntu og Fedora, men ikke aktiveret i Debian og RHEL (medmindre container-isoleringsplatforme anvendes).

Problemet optræder fra Linux-kernen 5.1 og er blevet rettet i opdateringerne 5.16.2, 5.15.16, 5.10.93, 5.4.173, der blev udgivet i går. Opdateringer af pakkerne med rettelse af sårbarheden er allerede blevet offentliggjort for RHEL, Debian, Fedora, Ubuntu. Rettelsen er endnu ikke tilgængelig på Arch Linux, Gentoo, SUSE og openSUSE. Som en midlertidig beskyttelsestilgang for systemer, der ikke bruger containerisolation, kan man sætte sysctl 'user.max_user_namespaces' til 0: echo 'user.max_user_namespaces=0' > /etc/sysctl.d/userns.conf # sysctl -p /etc/sysctl.d/userns.conf

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster