ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Qualys ΡΠ°ΡΠΊΡΡΠ»ΠΈ Π΄Π΅ΡΠ°Π»ΠΈ Π΄Π²ΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ, Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°ΡΡΠΈΡ ΡΠ΄ΡΠΎ Linux ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ systemd. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡ Π² ΡΠ΄ΡΠ΅ (CVE-2021-33909) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ root ΡΠ΅ΡΠ΅Π· ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°ΠΌΠΈ Π±ΠΎΠ»ΡΡΠΎΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΠΈ.
ΠΠΏΠ°ΡΠ½ΠΎΡΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΡΡΡΠ³ΡΠ±Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΡΠ΄Π°Π»ΠΎΡΡ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ ΡΠ°Π±ΠΎΡΠΈΠ΅ ΡΠΊΡΠΏΠ»ΠΎΠΈΡΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Π² Ubuntu 20.04/20.10/21.04, Debian 11 ΠΈ Fedora 34 Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ, ΡΡΠΎ Π΄ΡΡΠ³ΠΈΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Ρ Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ»ΠΈΡΡ, Π½ΠΎ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠΆΠ΅ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π°ΡΠ°ΠΊΠΎΠ²Π°Π½Ρ. ΠΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΠΊΡΠΏΠ»ΠΎΠΈΡΠΎΠ² ΠΎΠ±Π΅ΡΠ°ΡΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ²ΡΠ΅ΠΌΠ΅ΡΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π° ΠΏΠΎΠΊΠ° Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π»ΠΈΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΉ Π² ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΡΠΎΡΠΈΠΏ, Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΠΊΡΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Ρ ΠΈΡΠ»Ρ 2014 Π³ΠΎΠ΄Π° ΠΈ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π΅Ρ Π²ΡΠΏΡΡΠΊΠΈ ΡΠ΄ΡΠ° Π½Π°ΡΠΈΠ½Π°Ρ Ρ 3.16. ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π±ΡΠ»ΠΎ ΡΠΊΠΎΠΎΡΠ΄ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½ΠΎ Ρ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΈ ΠΏΡΠΈΠ½ΡΡΠΎ Π² ΡΠΎΡΡΠ°Π² ΡΠ΄ΡΠ° 19 ΠΈΡΠ»Ρ. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Ρ ΡΠΆΠ΅ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Ρ ΡΠ΄ΡΠΎΠΌ (Debian, Ubuntu, Fedora, RHEL, SUSE, Arch).
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡ Π²ΡΠ·Π²Π°Π½Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΠ° size_t Π² int ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π² ΠΊΠΎΠ΄Π΅ seq_file, ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ. ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π·Π°ΠΏΠΈΡΠΈ Π² ΠΎΠ±Π»Π°ΡΡΡ Π²Π½Π΅ Π³ΡΠ°Π½ΠΈΡ Π±ΡΡΠ΅ΡΠ° ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ, ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΡΡΡΡΠΊΡΡΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Ρ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΡΡΠΎΠ²Π½Π΅ΠΌ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΠΈ (ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΡΡΠΈ Π±ΠΎΠ»Π΅Π΅ 1 ΠΠ). Π ΠΈΡΠΎΠ³Π΅, Π°ΡΠ°ΠΊΡΡΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ Π·Π°ΠΏΠΈΡΠΈ 10-Π±Π°ΠΉΡΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ «//deleted» ΡΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ «- 2 ΠΠ — 10 Π±Π°ΠΉΡ», ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΌ Π½Π° ΠΎΠ±Π»Π°ΡΡΡ, Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΡΡΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ Π±ΡΡΠ΅ΡΡ.
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΡΠΊΡΠΏΠ»ΠΎΠΈΡ ΡΡΠ΅Π±ΡΠ΅Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ 5 ΠΠ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ 1 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΡ inode. Π Π°Π±ΠΎΡΠ° ΡΠΊΡΠΏΠ»ΠΎΠΈΡΠ° ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· Π²ΡΠ·ΠΎΠ² mkdir() ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΈΠ· ΠΎΠΊΠΎΠ»ΠΎ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΡΠΈ, ΠΏΡΠ΅Π²ΡΡΠ°ΡΡΠ΅Π³ΠΎ 1 ΠΠ. ΠΠ°Π½Π½ΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΌΠΎΠ½ΡΠΈΡΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· bind-mount Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΡΠ½ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ (user namespace), ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ rmdir() Π΄Π»Ρ Π΅Π³ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ. ΠΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΏΠΎΡΠΎΠΊ, Π·Π°Π³ΡΡΠΆΠ°ΡΡΠΈΠΉ Π½Π΅Π±ΠΎΠ»ΡΡΡΡ eBPF-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ Π½Π° ΡΡΠ°Π΄ΠΈΠΈ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄Π° eBPF, Π½ΠΎ Π΄ΠΎ Π΅Π³ΠΎ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
Π Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΡΠ½ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΡΠ°ΠΉΠ» /proc/self/mountinfo ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΡΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, ΠΏΡΠΈΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ bind-mount, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π·Π°ΠΏΠΈΡΠΈ ΡΡΡΠΎΠΊΠΈ «//deleted» Π² ΠΎΠ±Π»Π°ΡΡΡ Π΄ΠΎ Π½Π°ΡΠ°Π»Π° Π±ΡΡΠ΅ΡΠ°. ΠΠΎΠ·ΠΈΡΠΈΡ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ ΡΡΡΠΎΠΊΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ ΠΎΠ½Π° ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π² ΡΠΆΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΠΎΠΉ, Π½ΠΎ Π΅ΡΡ Π½Π΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ eBPF.
ΠΠ°Π»Π΅Π΅ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ eBPF Π½Π΅ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΠ°Ρ Π·Π°ΠΏΠΈΡΡ Π²Π½Π΅ Π±ΡΡΠ΅ΡΠ° ΡΡΠ°Π½ΡΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ Π² ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ Π² Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΡΠ΄ΡΠ° ΡΠ΅ΡΠ΅Π· ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΡ ΡΠΎ ΡΡΡΡΠΊΡΡΡΠ°ΠΌΠΈ btf ΠΈ map_push_elem. Π ΠΈΡΠΎΠ³Π΅, ΡΠΊΡΠΏΠ»ΠΎΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΡΠ΅ΡΠ° modprobe_path[] Π² ΠΏΠ°ΠΌΡΡΠΈ ΡΠ΄ΡΠ° ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π² Π½ΡΠΌ ΠΏΡΡΡ «/sbin/modprobe», ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΠΏΡΡΠΊ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ root Π² ΡΠ»ΡΡΠ°Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠ·ΠΎΠ²Π° request_module(), ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠΎΠΊΠ΅ΡΠ° netlink.
ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ±Ρ ΠΎΠ΄Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π·Π°ΡΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΊΡΠΏΠ»ΠΎΠΈΡΠ°, Π½ΠΎ Π½Π΅ ΡΡΡΡΠ°Π½ΡΡΡ ΡΠ°ΠΌΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ «/proc/sys/kernel/unprivileged_userns_clone» Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0 Π΄Π»Ρ Π·Π°ΠΏΡΠ΅ΡΠ° ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΡΠ½ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ «/proc/sys/kernel/unprivileged_bpf_disabled» Π² 1 Π΄Π»Ρ Π·Π°ΠΏΡΠ΅ΡΠ° Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ eBPF Π² ΡΠ΄ΡΠΎ.
ΠΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Ρ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π°ΡΠ°ΠΊΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° FUSE Π²ΠΌΠ΅ΡΡΠΎ bind-mound Π΄Π»Ρ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π½Π°ΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ Π½Π° Π΅ΡΡ ΠΎΠ΄Π½Ρ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ (CVE-2021-33910), Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°ΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ systemd. ΠΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΡΡΠΎ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· FUSE ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° c ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΏΡΡΠΈ, ΠΏΡΠ΅Π²ΡΡΠ°ΡΡΠΈΠΌ 8 ΠΠ, Π² ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ (PID1) Π½Π°ΡΡΡΠΏΠ°Π΅Ρ ΠΈΡΡΠ΅ΡΠΏΠ°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΡΡΠ΅ΠΊΠ° ΠΈ ΠΊΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ «panic».
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ²ΡΠ·Π°Π½Π° Ρ ΡΠ΅ΠΌ, ΡΡΠΎ systemd ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ ΠΈ ΡΠ°Π·Π±ΠΈΡΠ°Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ /proc/self/mountinfo, ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΠΎΡΠΊΠΈ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ unit_name_path_escape(), Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ strdupa(), ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΠ°Ρ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΡΠ΅ΠΊΠ΅, Π° Π½Π΅ Π² Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΄Π΅Π»ΡΠ΅ΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠ΅ΠΊΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ ΡΠ΅ΡΠ΅Π· RLIMIT_STACK ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΏΡΡΠΈ ΠΊ ΡΠΎΡΠΊΠ΅ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΊΡΠ°Ρ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ° PID1 ΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΡΠ°Π±ΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ»Ρ Π°ΡΠ°ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ FUSE Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΎΡΠΊΠΈ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΡΡΠΎΠ²Π½Π΅ΠΌ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΠΈ, ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΡΡΠΈ Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ 8 ΠΠ.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΡΠΈΠ½Π°Ρ Ρ systemd 220 (Π°ΠΏΡΠ΅Π»Ρ 2015), ΡΠΆΠ΅ ΡΡΡΡΠ°Π½Π΅Π½Π° Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ systemd ΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½Π° Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ
(Debian, Ubuntu, Fedora, RHEL, SUSE, Arch). ΠΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎ Π² Π²ΡΠΏΡΡΠΊΠ΅ systemd 248 ΡΠΊΡΠΏΠ»ΠΎΠΈΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΠ·-Π·Π° ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΠΊΠΎΠ΄Π΅ systemd, ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΠ΅ΠΉ ΠΊ ΡΠ±ΠΎΡ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ /proc/self/mountinfo. Π’Π°ΠΊΠΆΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΡΡΠΎ Π² 2018 Π³ΠΎΠ΄Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΏΠΎΡ
ΠΎΠΆΠ°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ ΠΈ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΊΡΠΏΠ»ΠΎΠΈΡ ΠΊ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ CVE-2018-14634 Π² ΡΠ΄ΡΠ΅ Linux, ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Qualys Π½Π°ΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ Π½Π° ΡΡΠΈ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ·ΠΈΠΌΠΎΡΡΠΈ Π² systemd.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru