ν΅μ¬μμ Linux μ§λ 2μ£Ό λμ λ€μ― λ²μ§Έ(1, 2, 3) μ¬κ°ν μ·¨μ½μ μ΄ λ°κ²¬λμμΌλ©°, μ΄λ‘ μΈν΄ μ¬μ©μκ° μμ€ν μμ κΆνμ μμΉμν¬ μ μμ΅λλ€. λ κ°μ§ μ€ν κ°λ₯ν μ΅μ€νλ‘μμ΄ κ³΅κ°λμμ΅λλ€. sshkeysign_pwnμ κΆνμ΄ μλ μ¬μ©μκ° κ°μΈ νΈμ€νΈ SSH ν€μ λ΄μ©(/etc/ssh/ssh_host_*_key)μ μ½μ μ μλλ‘ νμ©νκ³ , chage_pwnμ κΆνμ΄ μλ μ¬μ©μκ° μ¬μ©μ μνΈ ν΄μκ° ν¬ν¨λ /etc/shadow νμΌμ λ΄μ©μ μ½μ μ μλλ‘ νμ©ν©λλ€.
ν΄λΉ μ·¨μ½μ μ 곡κ°λ₯Ό λͺ©μ μΌλ‘ ν κ²μ μλμμ§λ§, ν 보μ μ°κ΅¬μμ΄ μ»€λ ν¨μΉ μ μμ ν΅ν΄ λ£¨νΈ μ¬μ©μλ§ μ κ·Όν μ μλ νμΌ(μ: /etc/shadow)μ μ½μ μ μλλ‘ νμ©νλ μ·¨μ½μ μ λ°κ²¬νμ΅λλ€. ν΄λΉ 컀λ λ³κ²½ μ¬νμ ptrace_may_access() ν¨μμμ μ κ·Ό μμ€μ νλ¨ν λ ptraceμ get_dumpable() ν¨μλ₯Ό μ¬μ©νλ λ‘μ§μ μμ νλ κ²μ΄μμ΅λλ€.
μ΄ μ·¨μ½μ μ suid λ£¨νΈ νλ‘μΈμ€μμ νμΌμ μ κ·Όν ν, κΆνμ΄ μλ μ¬μ©μκ° pidfd νμΌ λμ€ν¬λ¦½ν°μ μ κ·Όν μ μλλ‘ νμ©νλ κ²½μ 쑰건(race condition) λλ¬Έμ λ°μν©λλ€. suid νλ‘κ·Έλ¨μμ νμΌμ μ΄κ³ κΆνμ μ¬μ€μ νκΈ° μ (μ: setreuid ν¨μλ₯Ό ν΅ν΄)μ, suid λ£¨νΈ νλ‘κ·Έλ¨μ μ€ννλ μ ν리μΌμ΄μ μ΄ νμΌ κΆνμ΄ νμ©λμ§ μλλΌλ suid νλ‘κ·Έλ¨μ΄ μ° νμΌμ pidfd λμ€ν¬λ¦½ν°λ₯Ό ν΅ν΄ μ κ·Όν μ μλ μν©μ΄ λ°μν©λλ€.
μ΄ μ·¨μ½μ μ "__ptrace_may_access()" ν¨μκ° exit_mm() νΈμΆ ν exit_files() νΈμΆ μ μ task->mm νλκ° NULLλ‘ μ€μ λλ©΄ νμΌ μ κ·Ό μ¬λΆ νμΈμ 건λλ°κΈ° λλ¬Έμ λ°μν©λλ€. νμ¬ pidfd_getfd μμ€ν νΈμΆμ νΈμΆ νλ‘μΈμ€μ μ¬μ©μ ID(uid)κ° νμΌμ μ κ·Όν κΆνμ΄ μλ μ¬μ©μ IDμ μΌμΉνλ€κ³ κ°μ ν©λλ€. μ΄ λ¬Έμ λ 2020λ μ μ΄λ―Έ μ κΈ°λμμ§λ§ μ¬μ ν ν΄κ²°λμ§ μμ μνμ λλ€.
/etc/shadow νμΌμ λ΄μ©μ νμ·¨νλ μ΅μ€νλ‘μμμ 곡격μ suid root νλκ·Έλ₯Ό μ¬μ©νμ¬ fork+execl λͺ λ ΉμΌλ‘ /usr/bin/chage μ ν리μΌμ΄μ μ λ°λ³΅μ μΌλ‘ μ€ννμ¬ /etc/shadow νμΌμ λ΄μ©μ μ½λ λ°©μμΌλ‘ μ΄λ£¨μ΄μ§λλ€. νλ‘μΈμ€κ° forkλ νμλ pidfd_open μμ€ν νΈμΆμ΄ μ€νλκ³ , pidfd_getfd μμ€ν νΈμΆμ ν΅ν΄ μ¬μ© κ°λ₯ν pidfd λμ€ν¬λ¦½ν°λ₯Ό μννλ©° /proc/self/fdλ₯Ό ν΅ν΄ κ²μ¦νλ 루νκ° μνλ©λλ€. sshkeysign_pwn μ΅μ€νλ‘μμμλ suid root κΆνμΌλ‘ μ€νλλ ssh-keysign νλ‘κ·Έλ¨μ μ¬μ©νμ¬ μ μ¬ν μ‘°μμ΄ μνλ©λλ€.
ν΄λΉ λ¬Έμ λ μμ§ CVE μλ³μκ° λΆμ¬λμ§ μμμΌλ©°, 컀λ λ° ν¨ν€μ§ μ λ°μ΄νΈλ λ°°ν¬νμ κ²μλμ§ μμμ΅λλ€. μ΄ μ·¨μ½μ μ λͺ μκ° μ μ μΆμλ 컀λ 7.0.7, 6.18.30, 6.12.88μμ μ¬μ ν ν¨μΉλμ§ μμ μνμ λλ€. νμ¬λ‘μλ ν¨μΉλ§ μ¬μ©ν μ μμ΅λλ€. sysctl kernel.yama.ptrace_scope=3 μ€μ μ΄λ μμ€ν μ€ν νμΌ(μ μ΄λ μ΅μ€νλ‘μμ μ¬μ©λλ ssh-keysign λ° chage μ νΈλ¦¬ν°)μμ suid root νλκ·Έλ₯Ό μ κ±°νλ λ±μ ν΄κ²° λ°©λ²μ΄ λ Όμ μ€μ λλ€.
μ
λ°μ΄νΈ: ν΄λΉ μ·¨μ½μ μ CVE-2026-46333μΌλ‘ λͺ
λͺ
λμμ΅λλ€. 컀λ μ
λ°μ΄νΈκ° μμ±λμμ΅λλ€. Linux 7.0.8, 6.18.31, 6.12.89, 6.6.139, 6.1.173, 5.15.207 λ° 5.10.256 λ²μ μλ μ·¨μ½μ μμ μ¬νμ΄ ν¬ν¨λμ΄ μμ΅λλ€. μ΄λ¬ν λ°°ν¬νμ μ·¨μ½μ μμ μνλ λ€μ νμ΄μ§μμ νμΈν μ μμ΅λλ€. Debian, Ubuntu, SUSE/openSUSE, RHEL, Gentoo, Arch, Fedora.
μΆμ² : opennet.ru
