Π ΡΠ΄ΡΠΎΡΠΎ Π½Π° 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
