Π ΡΠ΄ΡΠ΅ Linux Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ OverlayFS Π²ΡΡΠ²Π»Π΅Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ (CVE-2023-0386), ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ root-Π΄ΠΎΡΡΡΠΏΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , Π² ΠΊΠΎΡΠΎΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° FUSΠ ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² OverlayFS Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ (Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠ΄ΡΠ° Linux 5.11 Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ user namespace). ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΡΡΡΠ°Π½Π΅Π½Π° Π² Π²Π΅ΡΠΊΠ΅ ΡΠ΄ΡΠ° 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».
- ΠΡΠΌΠ΅Π½ΡΡΡΡΡ (unshare) ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΡΠ½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ ΡΠΎΡΠ΅ΠΊ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ (user/mount namespace).
- ΠΠΎΠ½ΡΠΈΡΡΠ΅ΡΡΡ 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