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

Π’ ядрото Π½Π° Linux Π² рСализация Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° систСма OverlayFS Π΅ ΠΎΡ‚ΠΊΡ€ΠΈΡ‚Π° уязвимост (CVE-2023-0386), която ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° root ΠΏΡ€Π°Π²Π° Π² систСми, Π² ΠΊΠΎΠΈΡ‚ΠΎ Π΅ инсталирана подсистСмата FUSE ΠΈ Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΌΠΎΠ½Ρ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° части OverlayFS ΠΎΡ‚ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» (ΠΎΡ‚ вСрсия Π½Π° ядрото Linux 5.11 с Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π΅ Π½Π° Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ‚Π΅ пространства Π½Π° ΠΈΠΌΠ΅Π½Π° Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ). ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅ отстранСн Π² ΠΊΠ»ΠΎΠ½ Π½Π° ядрото 6.2. ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° обновлСния Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ Π² дистрибутивитС ΠΌΠΎΠΆΠ΅ Π΄Π° сС прослСди Π½Π° страницитС: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

Атака производится Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² с Ρ„Π»Π°Π³Π°ΠΌΠΈ setgid/setuid ΠΈΠ· Ρ€Π°Π·Π΄Π΅Π»Π°, ΠΏΡ€ΠΈΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ nosuid, Π² Ρ€Π°Π·Π΄Π΅Π» OverlayFS, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ слой, связанный с Ρ€Π°Π·Π΄Π΅Π»ΠΎΠΌ, Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ suid-Ρ„Π°ΠΉΠ»ΠΎΠ². Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π±Π»ΠΈΠ·ΠΊΠ° ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ CVE-2021-3847, выявлСнной Π² 2021 Π³ΠΎΠ΄Ρƒ, Π½ΠΎ отличаСтся Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΈΠΌΠΈ трСбованиями ΠΊ эксплуатации β€” Π² старой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΈΡΡŒ манипуляции с xattrs, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ ΠΏΡ€ΠΈ использования пространств ΠΈΠΌΡ‘Π½ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (user namespace), Π° Π² Π½ΠΎΠ²ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π±ΠΈΡ‚Ρ‹ setgid/setuid, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π½Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² user namespace.

ΠΠ»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π·Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° Π°Ρ‚Π°ΠΊΠ°Ρ‚Π°:

  • ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ подсистСмы FUSE монтируСтся Π€Π‘, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ имССтся ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ root исполняСмый Ρ„Π°ΠΉΠ» с Ρ„Π»Π°Π³Π°ΠΌΠΈ setuid/setgid, доступным всСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π½Π° запись. ΠŸΡ€ΠΈ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ FUSE выставляСт Ρ€Π΅ΠΆΠΈΠΌ Β«nosuidΒ».
  • ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π°Ρ‚Π° Π½Π° ΠΈΠΌΠ΅Π½Π° Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈΡ‚Π΅ Π½Π° ΠΌΠΎΠ½Ρ‚ΠΈΡ€Π°Π½Π΅ (user/mount namespace) сС отмСнят (unshare).
  • ΠœΠΎΠ½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ OverlayFS с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ€Π°Π½Π΅Π΅ созданной Π² FUSE Π€Π‘ Π² качСствС Π½ΠΈΠΆΠ½Π΅Π³ΠΎ слоя ΠΈ Π²Π΅Ρ€Ρ…Π½ΠΈΠΌ слоСм Π½Π° Π±Π°Π·Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰Π΅Π³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ записи. ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ слоя Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π² Π€Π‘, ΠΏΡ€ΠΈ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ„Π»Π°Π³ Β«nosuidΒ».
  • Π—Π° suid Ρ„Π°ΠΉΠ» Π² FUSE дяла, с ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° touch, сС промСня Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° модификация, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅ Π² горния слой Π½Π° OverlayFS.
  • ΠŸΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ ядрото Π½Π΅ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π° Ρ„Π»Π°Π³ΠΎΠ²Π΅Ρ‚Π΅ setgid/setuid, ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ„Π°ΠΉΠ»ΡŠΡ‚ сС появява Π² дял, допускащ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° setgid/setuid.
  • Π—Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡ€Π°Π²Π° root Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π΄Π° сС стартира Ρ„Π°ΠΉΠ» с Ρ„Π»Π°Π³ΠΎΠ²Π΅ setgid/setuid ΠΎΡ‚ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ΅Π½ към горния слой Π½Π° OverlayFS.

Π”ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ ΠΎΡ‚ Π΅ΠΊΠΈΠΏΠ° Π½Π° Google Project Zero Ρ€Π°Π·ΠΊΡ€ΠΈΡ…Π° Ρ‚Ρ€ΠΈ уязвимости, ΠΊΠΎΠΈΡ‚ΠΎ бяха ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½ΠΈ Π² основния ΠΊΠ»ΠΎΠ½ Π½Π° ядрото Linux 5.15, Π½ΠΎ Π½Π΅ бяха прСнСсСни Π² ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ с ядро ΠΎΡ‚ RHEL 8.x/9.x ΠΈ CentOS Stream 9.

  • CVE-2023-1252 β€” ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΡƒΠΆΠ΅ освобоТдённой области памяти Π² структурС ovl_aio_req ΠΏΡ€ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² OverlayFS, Ρ€Π°Π·Π²Ρ‘Ρ€Π½ΡƒΡ‚ΠΎΠΉ ΠΏΠΎΠ²Π΅Ρ€Ρ… Π€Π‘ Ext4. ΠŸΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ позволяСт ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ свои ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π² систСмС.
  • CVE-2023-0590 β€” ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΡƒΠΆΠ΅ освобоТдённой области памяти Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ qdisc_graft(). ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ эксплуатация ограничиваСтся Π°Π²Π°Ρ€ΠΈΠΉΠ½Ρ‹ΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ΠΌ.
  • CVE-2023-1249 β€” ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΡƒΠΆΠ΅ освобоТдённой области памяти Π² ΠΊΠΎΠ΄Π΅ записи coredump, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰Π΅Π΅ ΠΈΠ·-Π·Π° ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° mmap_lock Π² file_files_note. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ эксплуатация ограничиваСтся Π°Π²Π°Ρ€ΠΈΠΉΠ½Ρ‹ΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ΠΌ.

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

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