PinTheft — dobĂ«sia e gjashtĂ« e klasĂ«s Copy Fail, e cila ofron tĂ« drejtat root nĂ« Linux

Informacioni i zbulimi mbi një dobësi të gjashtë (1, 2-3, 4, 5) që lejon një përdorues lokal pa privilegje të fitojë të drejtat root duke rishkruar të dhëna në cache-në e faqes. Kjo dobësi ka emrin kodues PinTheft. Një prototip i eksploitatit është në dispozicion. Identifikuesi CVE ende nuk është caktuar. Një zgjidhje është në dispozicion në formën e një patch-i, i cili u publikua më 5 maj dhe u pranua në degën netdev më 11 maj, por nuk është përfshirë në lëshimet korrektuese të bërthamës.

Dobësia është e pranishme në implementimin e protokollit rrjet RDS (Reliable Datagram Sockets), i cili është i destinuar për shkëmbimin e shpejtë të mesazheve midis node-ve në një klaster, me vonesë minimale dhe dorëzim të garantuar. Një sulm është i mundur në sistemet me nën sistemin io_uring të aktivizuar (io_uring_disabled=0) dhe me bërthamën e ndërtuar me opsionet CONFIG_RDS, CONFIG_RDS_TCP dhe CONFIG_IO_URING. Për funksionimin e eksploitatit, në sistem duhet të ketë një skedar ekzekutiv të aksesueshëm për lexim me flag SUID-root.

PĂ«r tĂ« shkarkuar automatikisht modulin e bĂ«rthamĂ«s rds_tcp, eksploiti kĂ«rkon dĂ«rgimin e tĂ« dhĂ«nave pĂ«rmes RDS duke pĂ«rdorur transportin SO_RDS_TRANSPORT=2. VĂ«rehet se ndĂ«r shpĂ«rndarjet e testuara tĂ« Linux nĂ« konfigurimin e paracaktuar, moduli i bĂ«rthamĂ«s rds ofrohet vetĂ«m nĂ« Arch Linux. PĂ«r tĂ« bllokuar kĂ«tĂ« dobĂ«si nĂ« mĂ«nyrĂ« anashkaluese, 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

Dobësia shkaktohet nga një gabim në implementimin e mekanizmit zerocopy në funksionin rds_message_zcopy_from_user(), i cili kryen ndryshimin e drejtpërdrejtë të të dhënave në cachin e faqeve për të eliminuar mbështjelljen e panevojshme. Në rast dështimi, nuk u pastrua fusha rm->data.op_nents, çka çoi në çlirimin e dyfishtë të buffers (double-free). Shfaqja e një vlere të papërshtatshme në numëruesin e referencave u shfrytëzua për të rikuperuar të dhëna në cachin e faqeve, falë manipulimit të treguesit në një buffer të fiksuar io_uring.

NĂ« pjesĂ«n tjetĂ«r, mekanizmi i shfrytĂ«zimit Ă«shtĂ« tipik pĂ«r tĂ« gjitha dobĂ«sitĂ« e kĂ«saj klase — sulmuesi arrin tĂ« vendosĂ« njĂ« skedar programi me flamurin suid root nĂ« cache-in e faqeve, pas tĂ« cilĂ«s ai zĂ«vendĂ«son nĂ« krye tĂ« ELF kodin pĂ«r tĂ« ekzekutuar /usr/bin/sh. Pas kĂ«saj manipulimi, ekzekutimi i programit çon nĂ« ngarkimin nĂ« memorje jo tĂ« skedarit origjinal ekzekutiv nga disku, por tĂ« njĂ« kopjeje tĂ« modifikuar nga cache-i i faqeve. Ndryshe nga eksploitĂ«t e kaluar, varianti i ri Ă«shtĂ« adaptuar vetĂ«m pĂ«r sulmin kundĂ«r mjetit "su", por gjithashtu mund tĂ« pĂ«rdoret nĂ«se nĂ« sistem ka programe tĂ« tjera si suid, si mount, passwd, chsh, newgrp, umount dhe pkexec.

Burimi: opennet.ru

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster