sudo root pažeidžiamumas, turintis įtakos Linux Mint ir Elementary OS

Komunalinėje programoje : sudo, naudojamas komandų vykdymui organizuoti kitų vartotojų vardu, nustatyta pažeidžiamumas (CVE-2019-18634), kuri leidžia padidinti savo teises sistemoje root naudotojui. Problema atsiranda tik išleidus sudo 1.7.1, kai faile /etc/sudoers naudojama parinktis „pwfeedback“, kuri pagal numatytuosius nustatymus yra išjungta, bet įjungta kai kuriuose platinimuose, pvz., „Linux Mint“ ir „Elementary OS“. Problema ištaisyta leidime sudo 1.8.31, paskelbtas prieš kelias valandas. Pažeidžiamumas lieka nepataisytas platinimo rinkiniuose.

Parinktis „pwfeedback“ leidžia rodyti „*“ simbolį po kiekvieno įvesto simbolio įvedant slaptažodį. Dėl Klaidos Įgyvendinant getln() funkciją, apibrėžtą faile tgetpass.c, per didelė slaptažodžio eilutė, perduodama per standartinį įvesties srautą (stdin), tam tikromis sąlygomis gali netilpti į skirtą buferį ir perrašyti kitus krūvos duomenis. Perpildymas įvyksta paleidus sudo kodą kaip root.

Problemos esmė ta, kad įvedimo metu naudojant specialųjį simbolį ^U (eilutės išvalymas) ir jei rašymo operacija nepavyksta, kodas, atsakingas už išvesties „*“ simbolių išvalymą, iš naujo nustato duomenis apie turimą buferio dydį, bet ne. grąžinkite žymeklį į pradinės reikšmės dabartinę padėtį buferyje. Kitas veiksnys, prisidedantis prie išnaudojimo yra tai, kad nėra automatinio „pwfeedback“ režimo išjungimo, kai duomenys gaunami ne iš terminalo, o per įvesties srautą (šis trūkumas leidžia sudaryti sąlygas įrašymo klaidai atsirasti, pavyzdžiui, sistemose su vienakryptis neįvardytų kanalų klaida įvyksta bandant rašyti iki skaitymo kanalo pabaigos).

Kadangi užpuolikas visiškai kontroliuoja duomenų perrašymą dėtuvėje, nėra sunku sukurti išnaudojimą, leidžiantį jam išplėsti savo teises į root. Problema gali pasinaudoti bet kuris vartotojas, neatsižvelgiant į sudo leidimus ar konkrečius vartotojo nustatymus sudoer. Norėdami užblokuoti problemą, įsitikinkite, kad /etc/sudoers nėra „pwfeedback“ nustatymo ir, jei reikia, jį išjunkite („Numatytieji !pwfeedback“). Norėdami patikrinti, ar yra problemų, galite paleisti kodą:

$ perl -e ‘spausdinti(("A" x 100 . "\x{00}") x 50)' | sudo -S id
Slaptažodis: segmentavimo klaida

Šaltinis: opennet.ru

Добавить комментарий