Ailagbara ninu VFS ti ekuro Linux ti o fun ọ laaye lati mu awọn anfani rẹ pọ si

Ailagbara kan (CVE-2022-0185) ti jẹ idanimọ ninu API Context Filesystem ti a pese nipasẹ ekuro Linux, eyiti o fun laaye olumulo agbegbe lati ni awọn anfani gbongbo lori eto naa. Oluwadi ti o ṣe idanimọ iṣoro naa ṣe atẹjade ifihan ti ilokulo ti o fun ọ laaye lati ṣiṣẹ koodu bi gbongbo lori Ubuntu 20.04 ni iṣeto aiyipada. Awọn koodu ilokulo ti gbero lati firanṣẹ lori GitHub laarin ọsẹ kan lẹhin awọn pinpin ti tu imudojuiwọn kan ti o ṣe atunṣe ailagbara naa.

Ailagbara naa wa ninu iṣẹ legacy_parse_param () ni VFS ati pe o ṣẹlẹ nipasẹ ikuna lati ṣayẹwo daradara iwọn iwọn ti o pọju ti a pese lori awọn eto faili ti ko ṣe atilẹyin API Context Filesystem. Gbigbe paramita kan ti o tobi ju le fa aponsedanu ti oniyipada odidi ti a lo lati ṣe iṣiro iwọn data lati kọ - koodu naa ni ayẹwo aponsedanu ifipamọ “ti o ba jẹ (len> PAGE_SIZE - 2 - iwọn)”, eyiti ko ṣe. ṣiṣẹ ti iye iwọn ba tobi ju 4094. fun odidi aponsedanu nipasẹ isale isalẹ (odidi underflow, nigba ti simẹnti 4096 - 2 - 4095 to unsigned int, awọn esi ni 2147483648).

Aṣiṣe yii ngbanilaaye, nigbati o ba n wọle si aworan eto faili ti a ṣe apẹrẹ pataki, lati fa idamu aponsedanu ati kọ data ekuro ni atẹle agbegbe iranti ti a pin. Lati lo ailagbara naa, o gbọdọ ni awọn ẹtọ CAP_SYS_ADMIN, i.e. awọn agbara alakoso. Iṣoro naa ni pe olumulo ti ko ni anfani le gba iru awọn igbanilaaye ninu apoti ti o ya sọtọ ti eto naa ba ni atilẹyin fun awọn aaye orukọ olumulo ṣiṣẹ. Fun apẹẹrẹ, awọn aaye orukọ olumulo ṣiṣẹ nipasẹ aiyipada lori Ubuntu ati Fedora, ṣugbọn ko ṣiṣẹ lori Debian ati RHEL (ayafi ti awọn iru ẹrọ ipinya apoti ti lo).

Iṣoro naa ti han lati Linux kernel 5.1 ati pe o wa titi ni awọn imudojuiwọn ana 5.16.2, 5.15.16, 5.10.93, 5.4.173. Awọn imudojuiwọn idii ti o ṣatunṣe ailagbara ti ti tu silẹ tẹlẹ fun RHEL, Debian, Fedora, ati Ubuntu. Atunṣe naa ko sibẹsibẹ wa lori Arch Linux, Gentoo, SUSE ati openSUSE. Gẹgẹbi iṣẹ aabo fun awọn ọna ṣiṣe ti ko lo ipinya apoti, o le ṣeto iye sysctl "user.max_user_namespaces" si 0: iwoyi "user.max_user_namespaces=0" > /etc/sysctl.d/userns.conf # sysctl -p /etc/ sysctl.d/users.conf

orisun: opennet.ru

Fi ọrọìwòye kun