sudo-radika vundebleco influanta Linux Mint kaj Elementary OS

En la utileco sudo, uzata por organizi la plenumon de komandoj nome de aliaj uzantoj, identigita vundebleco (CVE-2019-18634), kiu ebligas al vi pliigi viajn privilegiojn en la sistemo al la radika uzanto. La problemo nur aperas ekde la liberigo de sudo 1.7.1 kiam oni uzas la opcion "pwfeedback" en la dosiero /etc/sudoers, kiu estas malŝaltita defaŭlte sed ebligita ĉe iuj distribuoj kiel Linux Mint kaj Elementary OS. Problemo riparita en eldono sudo 1.8.31, publikigita antaŭ kelkaj horoj. La vundebleco restas nefiksita en distribuaj iloj.

La opcio "pwfeedback" ebligas la montradon de la signo "*" post ĉiu enigita signo dum enigo de pasvorto. Pro eraroj En la efektivigo de la funkcio getln(), difinita en la tgetpass.c-dosiero, tro granda pasvorta ĉeno trapasita per la norma enigfluo (stdin) sub certaj kondiĉoj eble ne taŭgas en la asignita bufro kaj anstataŭigas aliajn datumojn sur la stako. La superfluo okazas dum rulado de sudo-kodo kiel radiko.

La esenco de la problemo estas, ke kiam oni uzas la specialan signon ^U (linia malplenigo) dum enigo kaj se la skriba operacio malsukcesas, la kodo respondeca por malplenigo de la eligo "*" signoj restarigas la datumojn pri la disponebla bufrograndeco, sed ne faras. redonu la montrilon al la komenca valoro aktuala pozicio en la bufro. Alia faktoro kontribuanta al la ekspluatado estas la manko de aŭtomata malfunkciigo de la "pwfeedback" reĝimo kiam datumoj alvenas ne de la terminalo, sed tra la eniga fluo (ĉi tiu difekto permesas krei kondiĉojn por registra eraro okazi, ekzemple, sur sistemoj kun unudirekta nenomitaj kanaloj eraro okazas kiam oni provas skribi ĝis la fino de legita kanalo).

Ĉar atakanto havas kompletan kontrolon pri datuma anstataŭigo sur la stako, ne estas malfacile krei ekspluataĵon, kiu ebligas al li pligrandigi siajn privilegiojn por radiki. La problemo povas esti ekspluatata de iu ajn uzanto, sendepende de sudo-permesoj aŭ uzantspecifaj agordoj en sudoers. Por bloki la problemon, vi devas certigi, ke ne ekzistas "pwfeedback" agordo en /etc/sudoers kaj, se necese, malŝaltu ĝin ("Defaŭltoj !pwfeedback"). Por kontroli ĉu estas problemo, vi povas ruli la kodon:

$ perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S id
Pasvorto: Segmenta misfunkciado

fonto: opennet.ru

Aldoni komenton