본문 바로가기

리눅스 리뷰

리눅스 커널 로컬 권한 상승 취약점(CVE-2026-46333, 일명 ssh-keysign-pwn) 분석 및 대응 가이드

728x90

최근 리눅스 커널에서 시스템 최고 권한(root)을 탈취할 수 있는 심각한 로컬 권한 상승(LPE) 및 정보 유출 취약점인 CVE-2026-46333이 공개되었습니다. 이 취약점은 일명 'ssh-keysign-pwn'으로도 불리며, 보안 연구소인 Qualys에 의해 발견되었습니다. 리눅스 서버 및 컨테이너 환경을 운영 중인 관리자분들은 내용을 확인하시고 즉시 패치를 진행하시기 바랍니다.


1. 취약점 개요

  • CVE 번호: CVE-2026-46333
  • 취약점 명칭: ssh-keysign-pwn
  • 취약점 유형: 프로세스 종료 시 발생하는 레이스 컨디션 및 논리적 오류 (Logic Flaw / Race Condition)
  • 취약점 심각도: 중요 (Important) / 배포판에 따라 고위험군으로 분류
  • 영향 범위: 2016년 11월(메인라인 커널 v4.10-rc1) 이후 출시된 대부분의 리눅스 커널 버전

2. 발생 원인 및 취약점 메커니즘

이 취약점은 리눅스 커널의 프로세스 추적 및 권한 검사 함수인 __ptrace_may_access() 내부의 논리적 오류에서 비롯됩니다.

리눅스 시스템에서 권한이 있는 프로세스가 종료(Teardown)될 때, 커널은 프로세스가 열어둔 파일(File Descriptor)을 완전히 닫기 전에 메모리를 먼저 해제합니다. 이 메모리가 해제되는 시점에 __ptrace_may_access()의 특정 권한 체크 로직이 우회되는 아주 짧은 시간의 취약한 창(Window)이 발생합니다.

공격자는 pidfd_getfd() 시스템 호출을 이용하여 이 타이밍을 가로채고, 권한이 높은 상위 프로세스의 파일 디스크립터를 복사해 올 수 있게 됩니다. 이는 메모리 오염(Memory Corruption)이나 복잡한 원격 익스플로잇이 아닌, 커널의 구조적 프로세스 종료 로직을 악용한 신뢰성 높은 논리 취약점입니다.


3. 발생 가능한 위협 (Impact)

로컬 시스템에 일반 사용자 권한으로 접근할 수 있는 공격자는 이 취약점을 이용해 다음과 같은 치명적인 행위를 수행할 수 있습니다.

  • 민감한 파일 유출: chage 프로그램을 악용하여 시스템 비밀번호 해시가 담긴 /etc/shadow 파일을 탈취할 수 있습니다.
  • SSH 호스트 키 탈취: ssh-keysign 도구를 악용하여 서버의 SSH 호스트 비밀키를 유출할 수 있습니다.
  • Root 권한 획득 및 임의 명령 실행: pkexecaccounts-daemon 등 systemd 및 DBus와 통신하는 권한 있는 데몬을 활용하여 루트 권한으로 임의의 명령을 실행할 수 있습니다.

4. 영향받는 대상 및 리눅스 배포판

메인라인 커널 소스코드를 공유하는 주요 엔터프라이즈 및 개인용 리눅스 배포판 대부분이 취약점에 노출되어 있습니다.

  • Red Hat 계열: RHEL (Red Hat Enterprise Linux) 8, 9, 10 및 호환 배포판 (Rocky Linux, AlmaLinux 등)
  • Debian / Ubuntu 계열: Ubuntu 24.04 LTS, Ubuntu 26.04 LTS, Debian 13 등 최신 버전 포함
  • Fedora 계열: Fedora 43, 44 등
  • 클라우드 및 컨테이너 환경: Kubernetes 환경에서 Seccomp 프로필이 unset 상태이거나 Unconfined로 설정된 파드(Pod)의 경우, 컨테이너 내부에서 호스트 노드의 권한을 장악하는 용도로 악용될 수 있습니다.

5. 대응 및 조치 방법

방법 A: 커널 보안 업데이트 적용 (가장 권장됨)

리눅스 커널 보안 팀과 각 배포판 벤더사는 해당 문제를 해결한 패치 커널을 즉시 배포했습니다. 사용하는 배포판에 맞춰 패키지 매니저를 통해 업데이트를 진행하고 시스템을 반드시 재부팅해야 합니다.

RHEL, Rocky Linux, AlmaLinux 등 (RPM 계열):

sudo dnf clean metadata
sudo dnf update "kernel*"
sudo reboot

Ubuntu, Debian 등 (APT 계열):

sudo apt update
sudo apt --only-upgrade install linux-image-generic
sudo reboot

방법 B: 임시 완화 조치 (Immediate Mitigation)

즉각적인 재부팅이 어려운 운영 서버의 경우, ptrace_scope 설정을 강화하여 취약점 익스플로잇의 핵심인 pidfd_getfd 호출을 임시로 차단할 수 있습니다. 단, 이 조치는 디버깅 툴이나 일부 모니터링 시스템의 작동을 방해할 수 있으므로 테스트 후 적용해야 합니다.

# 임시 적용 (재부팅 시 초기화)
sudo sysctl -w kernel.yama.ptrace_scope=2

# 영구 적용 (설정 파일 저장)
echo "kernel.yama.ptrace_scope = 2" | sudo tee -a /etc/sysctl.d/10-ptrace-hardening.conf

방법 C: 컨테이너(Kubernetes) 환경 보안 강화

  • 파드 배포 시 Seccomp 프로필을 기본값인 RuntimeDefault로 명시하여 허용되지 않은 시스템 호출을 차단합니다.
  • 보안 컨텍스트 설정에서 allowPrivilegeEscalation: false 옵션을 추가하여 권한 상승 시도를 원천 차단합니다.

6. 결론

이번 CVE-2026-46333 취약점은 로컬 전용 취약점이지만, 이미 대중에 신뢰도 높은 개념증명(PoC) 코드가 공개되어 내부 위협이나 1차 침투를 허용한 시스템에서 2차 피해(루트 권한 장악)로 이어질 가능성이 매우 큽니다. 인프라 관리자분들께서는 가급적 빠른 시일 내에 정기 점검 또는 긴급 점검을 통해 커널 버전을 최신으로 업데이트하시기를 권장합니다.

반응형