Π Π°ΡΠΊΡΡΡΡ Π΄Π΅ΡΠ°Π»ΠΈ ΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ ΡΠΊΡΠΏΠ»ΠΎΠΈΡ Π΄Π»Ρ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ CIFSwitch (CVE ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½) Π² ΠΌΠΎΠ΄ΡΠ»Π΅ ΡΠ΄ΡΠ° CIFS ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ cifs-utils, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΉ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠ°Π²Π° root Π² ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ 16 ΠΌΠ°Ρ ΠΈ 19 ΠΌΠ°Ρ Π±ΡΠ» ΠΏΡΠΈΠ½ΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π²Π΅ΡΠΊΡ ΡΠ΄ΡΠ° Linux (Le versioni di manutenzione del kernel non sono ancora disponibili).
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠ΄, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° cifs.spnego Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ SPNEGO (Simple and Protected GSSAPI Negotiation) ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΊ SMB-ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌ. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ cifs.spnego Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈΠ· Kerberos/SPNEGO ΡΠ΄ΡΠΎ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ cifs.upcall, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ cifs-utils ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ root.
ΠΠ΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ·ΠΎΠ² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΠ΅ΡΠ΅Π· ΠΎΡΠΏΡΠ°Π²ΠΊΡ Π·Π°ΠΏΡΠΎΡΠ°, ΡΡΠ΅Π±ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠ»ΡΡΠ° Β«cifs.spnegoΒ», Ρ ΠΏΠΎΠ΄Π΄Π΅Π»ΡΠ½ΡΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ Β«CIFS SPNEGOΒ». Π ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ cifs.upcall Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΡ
ΡΠ΅ΡΠ΅Π· ΡΠ΄ΡΠΎ, ΡΡΠ΅Π΄ΠΈ ΠΏΡΠΎΡΠ΅Π³ΠΎ ΠΎΠ½ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΌΠΈ Π΄ΠΎΠ²Π΅ΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ pid, uid, creduid ΠΈ
upcall_target. ΠΠΎΡΠ»Π΅ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ cifs.upcall ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΡΠ½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ Π·Π°ΠΏΡΠΎΡ, ΠΈ Π΄ΠΎ ΡΠ±ΡΠΎΡΠ° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΠΈΡΠΊ Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ Π±Π°Π·Π΅ NSS (Name Service Switch).
ΠΡΠ°ΠΊΡΡΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ²ΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΡΠ½ ΡΠΎΡΠ΅ΠΊ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ NSS Π² Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅. ΠΠ»Ρ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²Π½ΡΡΡΠΈ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π°ΡΠ°ΠΊΡΡΡΠΈΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ /etc/nsswitch.conf ΠΈ Π½Π°Π±ΠΎΡ ΠΏΠΎΠ΄ΡΡΠ°Π²Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ libnss_*.so.2. ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ NSS-Π·Π°ΠΏΡΠΎΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ cifs.upcall ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΏΠΎΠ΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π°ΡΠ°ΠΊΡΡΡΠΈΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ root.
ΠΠ»Ρ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² ΠΈΠΌΡΠ½ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ (user namespace) ΠΈΠ»ΠΈ ΡΠΎΡΠ΅ΠΊ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ (mount namespace), Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° cifs-utils. ΠΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Ρ, Π² ΠΊΠΎΡΠΎΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ:
- Linux Mint Cinnamon 21.3/22.3
- CentOS Stream 9 GNOME
- Rocky Linux 9 postazione di lavoro
- Kali Linux
- AlmaLinux 9.7 postazione di lavoro
- SUSE 15 SP7/SAP 15 SP7/SAP 16
ΠΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Ρ, Π² ΠΊΠΎΡΠΎΡΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΊΡΠΏΠ»ΠΎΠΈΡΠ° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΠ°ΠΊΠ΅ΡΠ° cifs-utils:
- Ubuntu 18.04/20.04/22.04 Desktop/Server
- Pop!_OS 22.04 Intel/24.04 Generic
- Ubuntu 24.04 Desktop minimal/full and Server
- Debian 11/12/13 netinst standard and GNOME/KDE/standard/XFCE
- CentOS Stream 9 Cinnamon/KDE/MATE/XFCE
- Rocky Linux 9 KDE/Workstation-Lite
- openSUSE Leap 15.6 GNOME/KDE
- openSUSE Tumbleweed GNOME/KDE
- Rocky Linux 8 GenericCloud
- Oracle Linux 8/9 KVM
- Amazon Linux KVM 2023
ΠΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Ρ, Π² ΠΊΠΎΡΠΎΡΡΡ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠ΅ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΡΠ΅ΡΠ΅Π· SELinux ΠΈΠ»ΠΈ Apparmor, Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° cifs-utils:
- Ubuntu 26.04 Desktop/Server
- Fedora 40/41/42/43/44 Workstation/Server
- CentOS Stream 10 GNOME/KDE
- Rocky Linux 10 postazione di lavoro
- AlmaLinux 10.1 postazione di lavoro
- Oracle Linux KVM 10
- openSUSE Tumbleweed GNOME/KDE
- openSUSE Leap 16.0 OEM GNOME/KDE/Minimal-VM
- SUSE Linux 16
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΡΠΈ Π·Π°ΡΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΄ΡΠ° cifs:
sh -c Β«printf βinstall cifs /bin/false\nβ > /etc/modprobe.d/cifs.conf; rmmod cifs 2>/dev/null; trueΒ»
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ user namespace (Β«sysctl -w kernel.unprivileged_userns_clone=0Β») ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ cifs.spnego Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ cifs-utils:
cat >/etc/request-key.d/cifs.spnego.conf <βEOFβ
create cifs.spnego * * /usr/sbin/keyctl negate %k 30 %S
EOF
Π’Π΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ, Π·Π° 28 ΠΌΠ°Ρ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ 137 ΠΎΡΡΡΡΠΎΠ² ΠΎΠ± ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΡ
Π² ΡΠ΄ΡΠ΅ Linux, Π° Π·Π° 27 ΠΌΠ°Ρ β 277 ΠΎΡΡΡΡΠΎΠ².
Fonte: opennet.ru
