Lawaziya kernelê Linux, ku dihêle hûn pelên tenê-xwendinê xera bikin

Di navikê de Linux Lawaziyek (CVE-2022-0847) hatiye destnîşankirin ku dihêle naveroka keşeya rûpelê ji bo her pelê, tevî yên di moda tenê-xwendinê de, yên ku bi ala O_RDONLY hatine vekirin, an jî li ser pergalên pelan ên ku di moda tenê-xwendinê de hatine saz kirin, were nivîsandin. Di warê pratîkî de, ev lawazî dikare were bikar anîn da ku kodê têxe nav pêvajoyên kêfî an daneyên di pelên vekirî de xera bike. Mînakî, naveroka pelê authorized_keys ji bo pêvajoya sshd dikare were guhertin. Bikaranîna prototîpek ji bo ceribandinê heye.

Pirsgirêka bi kodnavê Dirty Pipe, dişibihe qelsiya krîtîk Dirty COW ku di sala 2016-an de hatî nas kirin. Tê destnîşan kirin ku di warê asta xetereyê de, Dirty Pipe di heman astê de ye wekî Dirty COW, lê xebitandin pir hêsantir e. Zelalbûn di dema analîzkirina giliyên li ser gendeliya demkî ya pelên ku li ser torê hatine daxistin di pergalek dakêşana arşîvên pêçandî ji serverek têketinê de hate nas kirin (37 xirabî di 3 mehan de li ser pergalek barkirî), ku di amadekirina wan de operasyona splice() bikar anî. û lûleyên bênav.

Lawazî xwe ji kernelê dest pê dike nîşan dide. Linux 5.8, di Tebaxa 2020an de hate berdan, ango ew di Debian 11, lê bandorê li ser bingeha bingehîn nake Ubuntu 20.04 LTS. Kernelên RHEL 8.x û openSUSE/SUSE 15 di destpêkê de li ser şaxên kevintir hatine damezrandin, lê mimkun e ku pirsgirêk li wir hatibe veguhastin (hîn hûrguliyên rast tune ne). Hûn dikarin berdana nûvekirinên pakêtan ji bo van belavkirinan li ser van rûpelan bişopînin: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch LinuxÇareseriyek ji bo vê lawaziyê di guhertoyên 5.16.11, 5.15.25, û 5.10.102 de tê pêşkêş kirin. Ev çareserî di nav kernela ku di platformê de tê bikar anîn de jî heye. Android.

Zelalbûn ji ber nebûna destpêkirina nirxa "buf-> ala" di koda fonksiyonên copy_page_to_iter_pipe() û push_pipe() de çêdibe, tevî vê yekê ku dema veqetandina avahiyek û di dema hin manîpulasyonên bi wan de bîranîn nayê paqij kirin. lûleyên bênav, nirxek ji operasyonek din. Bi karanîna vê taybetmendiyê, bikarhênerek herêmî ya bêdestûr dikare bigihîje xuyangiya PIPE_BUF_FLAG_CAN_MERGE nirxa di alê de, ku dihêle hûn bi tenê nivîsandina daneya nû li boriyek nenavkirî ya ku bi taybetî hatî amade kirin, birêkûpêkkirina daneyan di cacheya rûpelê de organîze bikin.

Ji bo êrîşek, pelê armanc divê were xwendin, û ji ber ku mafên gihîştinê dema nivîsandina borûyê nayên kontrol kirin, veguheztina di cache rûpelê de jî dikare ji bo pelên ku di dabeşên ku tenê-xwendewarî de hatine danîn (mînak, ji bo pelên c CD- ROM). Piştî veguheztina agahdariya di kaşa rûpelê de, dema ku daneya ji pelek dixwîne, pêvajo dê ne daneyên rastîn, lê daneyên guhezbar werbigire.

Operasyon bi afirandina kanalek bênav û dagirtina wê bi daneyên keyfî ve tê da ku pê ewle bibe ku ala PIPE_BUF_FLAG_CAN_MERGE di hemî strukturên zengilê yên ku pê re têkildar in de hatî danîn. Dûv re, dane ji kanalê tê xwendin, lê ala di hemî nimûneyên avahiya pipe_buffer de di strukturên zengila pipe_inode_info de sazkirî dimîne. Dûv re bangek ji splice() re tê kirin da ku daneya ji pelê mebest di boriyek nenavkirî de were xwendin, ji guheztina xwestinê dest pê dike. Dema ku daneyan li ser vê boriya bênav dinivîsin, ji ber ku ala PIPE_BUF_FLAG_CAN_MERGE hatî danîn, dê daneya di cacheya rûpelê de were nivîsandin li şûna ku mînakek nû ya avahiya pipe_buffer were afirandin.

Source: opennet.ru

Ji bo malperên bi parastina DDoS, serverên VPS VDS mêvandariya pêbawer bikirin 🔥 Hostinga malperê ya pêbawer bi parastina DDoS, serverên VPS VDS bikirin | ProHoster