Informacioni mbi një të shtatë vulnerabilitet (1, 2-3, 4, 5) është zbuluar, e cila i lejon një përdorues lokal të paprivilegjuar të fitojë të drejtat root duke rishkruar të dhëna në cache-në e faqes. Vulnerabiliteti ka marrë emrin kodor PinTheft. Një prototip i exploit-it është në dispozicion. Identifikuesi CVE ende nuk është caktuar. Një rregullim është aktualisht në dispozicion vetëm si një patch, i cili u publikua më 5 Maj dhe u miratua më 11 Maj në degën netdev, por nuk është përfshirë në lëshimet përmirësuese të bërthamës.
Vulnerabiliteti është prezent në zbatimin e protokollit të rrjetit RDS (Reliable Datagram Sockets), i destinuar për shkëmbim të shpejtë mesazhesh midis nyjeve në klaster, me vonesë minimale dhe dorëzim të garantuar. Sulmi është i mundur në sisteme me nën-sistemin io_uring të ndarë (io_uring_disabled=0) dhe bërthamën e ndërtuar me opsionet CONFIG_RDS, CONFIG_RDS_TCP dhe CONFIG_IO_URING. Për të funksionuar exploit-i, në sistem duhet të jetë një skedar ekzekutiv i lexueshëm me flamurin SUID-root.
PĂ«r ngarkimin automatik tĂ« modulit tĂ« bĂ«rthamĂ«s rds_tcp, exploit-i kĂ«rkon dĂ«rgimin e tĂ« dhĂ«nave pĂ«rmes RDS duke pĂ«rdorur transportin SO_RDS_TRANSPORT=2. VĂ«rehet se, midis distribuimeve tĂ« testuara tĂ« Linux, nĂ« konfigurimin e parazgjedhur, moduli i bĂ«rthamĂ«s rds ofrohet vetĂ«m nĂ« Arch Linux. PĂ«r tĂ« bllokuar vulnerabilitetin, mund tĂ« bllokoni ngarkimin automatik tĂ« moduleve tĂ« bĂ«rthamĂ«s rds dhe rds_tcp: rmmod rds_tcp rds printf âinstall rds /bin/false\ninstall rds_tcp /bin/false\nâ > /etc/modprobe.d/pintheft.conf
Vulnerabiliteti është shkaktuar nga një gabim në zbatimin e mekanizmit zerocopy në funksionin rds_message_zcopy_from_user(), që realizon ndryshimin e drejtpërdrejtë të të dhënave në cache-në e faqes për të përjashtuar buferizimin e tepërt. Në rast dështimi, nuk është bërë pastrimi i fushës rm->data.op_nents, duke shkaktuar një çlirimin e dyfishtë të buferit (double-free). Shfaqja e një vlere të papërshtatshme në numëruesin e referencave është përdorur për të rishkruar të dhëna në cache-në e faqes, falë manipulimit me treguesin në një bufer të ngurtë io_uring.
Mekanizmi i eksploatimit Ă«shtĂ« tipik pĂ«r tĂ« gjitha tĂ« metat e kĂ«saj kategorie â sulmuesi arrin tĂ« ruajĂ« njĂ« skedar programi me flag suid root nĂ« cache-nĂ« e faqes, pas sĂ« cilĂ«s vendos nĂ« header-in ELF kod pĂ«r tĂ« ekzekutuar \/usr\bin\/sh. Pas kĂ«saj manovre, ekzekutimi i programit shkakton ngarkimin nĂ« memorie tĂ« njĂ« skedari tĂ« ndryshuar nga cache-nĂ« e faqes, nĂ« vend tĂ« skedarit origjinal nga disku. Ndryshe nga eksploitat e kaluara, varianti i ri Ă«shtĂ« adaptuar vetĂ«m pĂ«r tĂ« sulmuar utilitarin "su", por gjithashtu mund tĂ« pĂ«rdoret kur nĂ« sistem ekzistojnĂ« programe tĂ« tilla si suid, si mount, passwd, chsh, newgrp, umount dhe pkexec.
Burimi: opennet.ru
