μ·¨μ•½μ„± Linux- μ‚¬μš©μžκ°€ μ ‘κ·Όν•  수 μ—†λŠ” νŒŒμΌμ„ 읽을 수 μžˆλ„λ‘ ν•˜λŠ” pidfd μ„œλΈŒμ‹œμŠ€ν…œ

ν•΅μ‹¬μ—μ„œ 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

DDoS 보호, VPS VDS μ„œλ²„κ°€ μžˆλŠ” μ‚¬μ΄νŠΈλ₯Ό μœ„ν•œ μ•ˆμ •μ μΈ ν˜ΈμŠ€νŒ… κ΅¬μž… πŸ”₯ DDoS 곡격 λ°©μ§€ κΈ°λŠ₯이 νƒ‘μž¬λœ μ•ˆμ •μ μΈ μ›Ήμ‚¬μ΄νŠΈ ν˜ΈμŠ€νŒ…, VPS 및 VDS μ„œλ²„λ₯Ό κ΅¬λ§€ν•˜μ„Έμš” | ProHoster