Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π² pam_oath, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²Π° root Π² систСмС

Π’ PAM-ΠΌΠΎΠ΄ΡƒΠ»Π΅ pam_oath, входящСм Π² состав ΠΏΠ°ΠΊΠ΅Ρ‚Π° oath-toolkit ΠΈ примСняСмого ΠΏΡ€ΠΈ Π΄Π²ΡƒΡ…Ρ„Π°ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ с использованиСм ΠΎΠ΄Π½ΠΎΡ€Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ (OTP), выявлСна ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ (CVE-2024-47191), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ root-доступ Π² систСмС.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ pam_oath выполняСтся с ΠΏΡ€Π°Π²Π°ΠΌΠΈ root ΠΈ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π±Ρ‹Π» рассчитан Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ OATH-ΠΊΠ»ΡŽΡ‡Π΅ΠΉ Π² Ρ„Π°ΠΉΠ»Π΅ /etc/users.oath, доступ ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ root. Π’ вСрсии oath-toolkit 2.6.7 Π±Ρ‹Π»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° размСщСния Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ Π² Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΡ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ (~/.config/users.oath). НСпривилСгированныС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ измСнСния Ρ„Π°ΠΉΠ»ΠΎΠ² со своими ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ, Π½ΠΎ pam_oath ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ этим Ρ„Π°ΠΉΠ»Π°ΠΌ Π½Π΅ сбрасывал ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠ» использованиС нСбСзопасных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, рассчитанныС Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ»Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, нСдоступном для измСнСния.

Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π° Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ послС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΡ€Π°Π·ΠΎΠ²ΠΎΠΌΡƒ ΠΏΠ°Ρ€ΠΎΠ»ΡŽ, pam_oath выполнял ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ Ρ„Π°ΠΉΠ»Π° с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ использованиС ΠΎΠ΄Π½ΠΎΠ³ΠΎ пароля нСсколько Ρ€Π°Π·. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ пСрСзаписи сводилась ΠΊ созданию Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ lock-Ρ„Π°ΠΉΠ»Π°, записи Π½ΠΎΠ²ΠΎΠ³ΠΎ содСрТимого Π² Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ «.new» ΠΈ Π·Π°ΠΌΠ΅Π½Π΅ старого Ρ„Π°ΠΉΠ»Π° Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. ΠŸΡ€ΠΈ этом Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ «.new» создавался с Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ ΠΏΡ€Π°Π²Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ„Π°ΠΉΠ», Π½ΠΎ запись Π² Π½Π΅Π³ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»Π°ΡΡŒ процСссом с ΠΏΡ€Π°Π²Π°ΠΌΠΈ root ΠΈ Π±Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ сущСствования Ρ„Π°ΠΉΠ»Π°.

Если Ρ„Π°ΠΉΠ» размСщался Π² систСмном ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»ΠΎ, Π½ΠΎ послС появлСния ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ размСщСния Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ Π² Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΡ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ…, Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π»Π΅Π³ΠΊΠΎ эксплуатируСмая ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ. Для Π°Ρ‚Π°ΠΊΠΈ достаточно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ссылку «~/.config/oath.secrets.new» ΠΈ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΅Ρ‘ Π½Π° любой систСмный Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ пСрСзаписан послС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

Для получСния доступа root ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ссылку Π½Π° Ρ„Π°ΠΉΠ» /etc/shadow. Π’ этом случаС pam_oath Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ Π² /etc/shadow Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ список ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΈ синхронизируСт Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° ΠΈ ΠΏΡ€Π°Π²Π° доступа с Ρ„Π°ΠΉΠ»ΠΎΠΌ users.oath. Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ» users.oath ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, Ρ‚ΠΎ Π² качСствС Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° /etc/shadow Π±ΡƒΠ΄Π΅Ρ‚ выставлСн этот ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, послС Ρ‡Π΅Π³ΠΎ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ смоТСт ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» /etc/shadow ΠΈ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π½Π΅Π³ΠΎ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π²Ρ…ΠΎΠ΄Π° для ΡƒΡ‡Ρ‘Ρ‚Π½ΠΎΠΉ записи root.

Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ проявляСтся начиная с выпуска oath-toolkit 2.6.7 ΠΈ устранСна (1,2,3) Π² вСрсии 2.6.12. ΠžΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ устранСниС уязвимости Π² дистрибутивах ΠΌΠΎΠΆΠ½ΠΎ Π½Π° Π΄Π°Π½Π½Ρ‹Ρ… страницах: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ Π² Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΡ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ использовании Π² настройках PAM строки «auth [user_unknown=ignore success=ok] pam_oath.so usersfile=${HOME}/user.oath».

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ Π²Ρ‹ΡΠ²Π»Π΅Π½Π½ΡƒΡŽ Π½Π° днях ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ (CVE-2024-9313) Π² PAM-ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΈΠ· состава ΠΏΠ°ΠΊΠ΅Ρ‚Π° Authd, Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Ubuntu. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, управляСмому Ρ‡Π΅Ρ€Π΅Π· Π±Ρ€ΠΎΠΊΠ΅Ρ€ Authd, Π²Ρ‹Π΄Π°Ρ‚ΡŒ сСбя Π·Π° любого Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, управляСмого этим ΠΆΠ΅ Π±Ρ€ΠΎΠΊΠ΅Ρ€ΠΎΠΌ, ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Ρ‡Π΅Ρ€Π΅Π· su, sudo ΠΈΠ»ΠΈ ssh ΠΏΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° устранСна Π² вСрсии Authd 0.3.5.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru