Bregusrwydd yn yr is-system eBPF sy'n caniatáu gweithredu cod ar lefel cnewyllyn Linux

Mae bregusrwydd (CVE-2021-4204) wedi'i nodi yn yr is-system eBPF, sy'n caniatáu rhedeg trinwyr y tu mewn i'r cnewyllyn Linux mewn peiriant rhithwir arbennig gyda JIT, sy'n caniatáu i ddefnyddiwr difreintiedig lleol gyflawni braint uwchgyfeirio a gweithredu eu cod yn y lefel y cnewyllyn Linux. Mae'r broblem wedi bod yn amlygu ers cnewyllyn Linux 5.8 ac mae'n parhau i fod yn ansefydlog (gan gynnwys rhyddhau 5.16). Gellir olrhain statws y genhedlaeth o ddiweddariadau gyda dileu'r broblem mewn dosbarthiadau ar y tudalennau hyn: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. Cyhoeddir creu camfanteisio gweithio, y bwriedir ei gyhoeddi ar Ionawr 18 (mae defnyddwyr a datblygwyr wedi cael wythnos i drwsio'r bregusrwydd).

Achosir y bregusrwydd gan wirio anghywir o raglenni eBPF a gyflwynwyd i'w gweithredu. Mae is-system eBPF yn darparu swyddogaethau ategol, y mae dilysydd arbennig yn gwirio eu cywirdeb. Mae rhai swyddogaethau yn ei gwneud yn ofynnol i werth PTR_TO_MEM gael ei basio fel dadl, ac i atal gorlifiadau byffer posibl, rhaid i'r dilysydd wybod maint y cof sy'n gysylltiedig â'r ddadl. Ar gyfer swyddogaethau bpf_ringbuf_submit a bpf_ringbuf_discard, ni adroddwyd data ar faint y cof a drosglwyddwyd i'r dilysydd, y gellid ei ddefnyddio i drosysgrifo ardaloedd cof y tu allan i'r ffin byffer wrth weithredu cod eBPF a luniwyd yn arbennig.

Er mwyn cynnal ymosodiad, rhaid i'r defnyddiwr allu llwytho ei raglen BPF, ac mae llawer o ddosbarthiadau Linux diweddar yn rhwystro hyn yn ddiofyn (gan gynnwys mynediad di-freintiedig i eBPF bellach wedi'i wahardd yn ddiofyn yn y cnewyllyn ei hun, gan ddechrau gyda rhyddhau 5.16). Er enghraifft, gellir manteisio ar y bregusrwydd yn y cyfluniad diofyn ar Ubuntu 20.04 LTS, ond yn Ubuntu 22.04-dev, Debian 11, openSUSE 15.3, RHEL 8.5, SUSE 15-SP4, a Fedora 33 amgylcheddau, mae'n ymddangos yn unig os oes gan y gweinyddwr amgylcheddau gosod kernel.unprivileged_bpf_disabled i 0. Fel ateb i rwystro'r bregusrwydd, gallwch analluogi gweithredu rhaglenni BPF gan ddefnyddwyr difreintiedig gyda'r gorchymyn "sysctl -w kernel.unprivileged_bpf_disabled=1".

Ffynhonnell: opennet.ru

Ychwanegu sylw