Уязвимост Π² ядрото Π½Π° Linux VFS, която позволява повишаванС Π½Π° ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡ‚Π΅

Π’ API Filesystem Context, прСдоставяно ΠΎΡ‚ ядрото Π½Π° Linux, Π΅ ΠΎΡ‚ΠΊΡ€ΠΈΡ‚Π° уязвимост (CVE-2022-0185), която позволява Π½Π° Π»ΠΎΠΊΠ°Π»Π΅Π½ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈ root ΠΏΡ€Π°Π²Π° Π² систСмата. Π˜Π·ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΠΎΡ‚ΠΊΡ€ΠΈΠ» ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π° дСмонстрация Π½Π° Сксплойт, ΠΊΠΎΠΉΡ‚ΠΎ позволява изпълнСниС Π½Π° ΠΊΠΎΠ΄ с root ΠΏΡ€Π°Π²Π° Π² Ubuntu 20.04 с конфигурация ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° Сксплойта Ρ‰Π΅ бъдС ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ Π² GitHub Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π΅Π΄Π½Π° сСдмица слСд ΠΊΠ°Ρ‚ΠΎ дистрибуциитС ΠΈΠ·Π΄Π°Π΄ΠΎΡ…Π° актуализация с корСкция Π½Π° уязвимостта.

Уязвимостта Π΅ Π² функцията legacy_parse_param() Π½Π° VFS ΠΈ Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅Π½Π° ΠΎΡ‚ липса Π½Π° Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° максималния Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅, прСдоставяни ΠΎΡ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈΡ‚Π΅ систСми, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ API Filesystem Context. ΠŸΡ€ΠΈ ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Ρ‚Π²ΡŠΡ€Π΄Π΅ голям ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΡΡ‚ΡŠΠΏΠΈ ΠΏΡ€Π΅Π»ΠΈΠ²Π°Π½Π΅ Π½Π° цяло число, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΎ Π·Π° изчисляванС Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° записванитС Π΄Π°Π½Π½ΠΈ β€” Π² ΠΊΠΎΠ΄Π° ΠΈΠΌΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π·Π° ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ извън Π³Ρ€Π°Π½ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° Π±ΡƒΡ„Π΅Ρ€Π° β€žif (len > PAGE_SIZE β€” 2 β€” size)β€œ, която Π½Π΅ сработва, Π°ΠΊΠΎ стойността Π½Π° size Π΅ Π½Π°Π΄ 4094 ΠΏΠΎΡ€Π°Π΄ΠΈ цСлочислСно ΠΏΡ€Π΅Π»ΠΈΠ²Π°Π½Π΅ ΠΎΡ‚ Π΄ΠΎΠ»Π½Π°Ρ‚Π° Π³Ρ€Π°Π½ΠΈΡ†Π° (integer underflow, ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π° 4096 β€” 2 β€” 4095 към unsigned int, ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° сС 2147483648).

ΠŸΠΎΡΠΎΡ‡Π΅Π½Π°Ρ‚Π° Π³Ρ€Π΅ΡˆΠΊΠ° позволява ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ към спСциално ΠΎΡ„ΠΎΡ€ΠΌΠ΅Π½ ΠΎΠ±Ρ€Π°Π· Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° систСма Π΄Π° сС ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ° ΠΏΡ€Π΅Π»ΠΈΠ²Π°Π½Π΅ Π½Π° Π±ΡƒΡ„Π΅Ρ€Π° ΠΈ Π΄Π° сС ΠΏΡ€Π΅Π·Π°ΠΏΠΈΡˆΠ°Ρ‚ Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π½Π° ядрото, ΠΊΠΎΠΈΡ‚ΠΎ слСдват слСддСлСната област Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°. Π—Π° СксплоатиранС Π½Π° уязвимостта Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π° ΠΏΡ€Π°Π²Π°Ρ‚Π° CAP_SYS_ADMIN, Ρ‚.Π΅. ΠΏΡŠΠ»Π½ΠΎΠΌΠΎΡ‰ΠΈΡ Π½Π° администратора. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅, Ρ‡Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΡŠΠ»Π½ΠΎΠΌΠΎΡ‰ΠΈΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» Π² ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Π°ΠΊΠΎ Π² систСмата Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° потрСбитСлскитС пространства (user namespaces). НапримСр, user namespaces ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² Ubuntu ΠΈ Fedora, Π½ΠΎ Π½Π΅ Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ Π² Debian ΠΈ RHEL (освСн Π°ΠΊΠΎ Π½Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ Π·Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Π° изолация).

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ сС проявява ΠΎΡ‚ ядрото Π½Π° Linux 5.1 ΠΈ Π΅ отстранСн Π² послСднитС Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ 5.16.2, 5.15.16, 5.10.93, 5.4.173. Актуализации Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ с корСкция Π½Π° уязвимостта Π²Π΅Ρ‡Π΅ са ΠΈΠ·Π΄Π°Π΄Π΅Π½ΠΈ Π·Π° RHEL, Debian, Fedora, Ubuntu. ΠšΠΎΡ€Π΅ΠΊΡ†ΠΈΡΡ‚Π° всС ΠΎΡ‰Π΅ Π½Π΅ Π΅ Π½Π°Π»ΠΈΡ‡Π½Π° Π² Arch Linux, Gentoo, SUSE ΠΈ openSUSE. ΠšΠ°Ρ‚ΠΎ ΠΎΠ±Ρ…ΠΎΠ΄Π΅Π½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° Π½Π° систСмитС, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Π° изолация, ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π·Π°Π΄Π°Π΄Π΅ стойност 0 Π½Π° sysctl β€žuser.max_user_namespacesβ€œ: echo β€žuser.max_user_namespaces=0β€œ > /etc/sysctl.d/userns.conf # sysctl -p /etc/sysctl.d/userns.conf

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster