[방어] 분석 — CVE-2024-57977
A soft lockup vulnerability in the Linux kernel's memcg OOM process can lead to a Denial of Service (DoS), requiring immediate restriction of cgroup task counts or kernel updates.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.0019 · 악용난이도 hard
🔍 공격 기법
(1) 트리거 조건: memcg(Memory Control Group) 내에 매우 많은 수의 태스크(약 56,000개 이상 추정)가 존재할 때, OOM(Out-Of-Memory) 프로세스가 해당 태스크들을 순회(traversing)하는 과정에서 CPU가 특정 작업에 고립되어 soft lockup이 발생합니다.
(2) 공격 단계:
- 정찰: 로컬 시스템의 커널 버전 및
cgroup설정 확인 (권한 필요). - 초기접근: 낮은 권한(
PR:L)을 가진 사용자로 시스템에 로그인. - 실행: 단시간 내에 대량의 프로세스/스레드를 생성하여 특정
memcg그룹에 할당하고 메모리 압박을 유도하여 OOM 킬러를 트리거함. - 영향: 커널 스레드가 CPU를 점유한 채 반환하지 않아 시스템 전체 혹은 해당 CPU 코어가 응답 불능 상태(DoS)가 됨.
(3) 공격 표면: Linux Kernelmemcg및 OOM 처리 로직 (로컬 인터페이스).
(4) CVSS 벡터 연결:AV:L(로컬 접근 필요),AC:L(공격 복잡도 낮음),PR:L(일반 사용자 권한으로 가능),UI:N(사용자 상호작용 불필요),A:H(가용성에 심각한 영향).
악용 가능성: 본 취약점의 공격 난이도는 Hard로 판정되며, 이는 단순한 외부 요청만으로는 트리거가 불가능하기 때문입니다. CVSS 벡터상 AV:L 및 PR:L 조건에 따라, 공격자는 이미 시스템 내부에 계정을 보유하고 로컬 쉘 접근 권한을 가진 상태여야 합니다. 구체적인 공격 표면은 Linux Kernel의 memcg(Memory Control Group)와 OOM(Out of Memory) 처리 프로세스로, 특히 다량의 태스크가 특정 cgroup에 할당된 환경에서 발생합니다. 약 56,000개 이상의 방대한 태스크를 생성하여 OOM 프로세스의 리스트 순회 과정에서 CPU 점유를 유발하는 트리거 조건이 필요하므로, 일반적인 환경보다 매우 특수한 리소스 과부하 상태를 정밀하게 설계해야 합니다. EPSS 수치가 0.0019로 매우 낮고 KEV에 등재되지 않은 점은 실제 야생(In-the-wild)에서 이 취약점을 이용한 공격 사례가 희박하며, 이론적 심각도보다 실질적인 악용 가능성이 현저히 낮음을 시사합니다. 결과적으로 본 취약점은 원격 코드 실행보다는 특정 조건 하의 서비스 거부(DoS/Soft Lockup)를 유발하는 로컬 특성 취약점으로 분석됩니다.
💥 영향 분석
(1) 기술적 위험: 시스템 가용성 상실. 커널의 soft lockup으로 인해 CPU가 정지되며, 이는 시스템 프리징 또는 커널 패닉으로 이어져 서비스 중단(DoS)을 야기합니다.
(2) 비즈니스 영향: 서버 다운타임 발생으로 인한 서비스 중단 및 인프라 가용성 저하. 특히 다수의 컨테이너나 태스크를 운영하는 클라우드/가상화 환경에서 치명적일 수 있습니다.
🔗 관련 취약점·체이닝
- 추정: 본 취약점은 단독으로 시스템 전체를 중단시키는 DoS 유형입니다. 다만, 권한 상승(LPE) 취약점과 체이닝될 경우, 특정 보안 모니터링 프로세스를 DoS 상태로 만들어 탐지를 우회한 뒤 다른 공격을 수행하는 시나리오가 가능할 것으로 추정됩니다.
🔎 탐지
(1) 로그 지표: 커널 로그(dmesg, /var/log/syslog, kern.log)에서 watchdog: BUG: soft lockup 메시지와 함께 memcg 또는 OOM process 관련 Call Trace가 발생하는지 확인합니다.
(2) 탐지 규칙 예시:
- SIEM 쿼리 (의사코드):
SELECT timestamp, hostname, message FROM kernel_logs WHERE message LIKE '%soft lockup%' AND message LIKE '%VM Thread%' AND message LIKE '%memcg%' - 정규식 패턴:
watchdog: BUG: soft lockup - CPU#\d+ stuck for \d+s! .* \[.*\]
(3) 오탐 시나리오 및 튜닝: 정상적인 고부하 작업이나 드라이버 이슈로 인한soft lockup이 발생할 수 있습니다. 따라서 단순soft lockup로그가 아닌, Call Trace 내에memcg,oom_reaper또는console_unlock등의 함수 호출 패턴이 동반되는지 확인하여 정밀도를 높입니다.
🛡️ 완화 방안
- 즉시(긴급 차단):
pids.max설정을 통해 단일 cgroup 내 생성 가능한 프로세스 최대 수를 제한하여, 취약점 트리거 조건인 '대량의 태스크 순회'를 물리적으로 차단합니다. (난이도: 하 / 영향: 일부 고부하 애플리케이션 실행 제한 가능 / 검증:cat /sys/fs/cgroup/pids.max확인) - 단기(완화): 시스템 리소스 모니터링 임계값을 낮추어, 비정상적으로 급증하는 프로세스 수나 메모리 사용량을 보이는 사용자 계정을 즉시 격리/차단합니다. (난이도: 중 / 영향: 운영 오버헤드 증가 / 검증: 모니터링 알람 테스트)
- 근본(해결): 영향받는 커널 버전(
3.6 - 6.12.13,6.13 - 6.13.2)을 수정된 최신 커널 버전으로 업데이트합니다. (난이도: 중 / 영향: 재부팅 필요로 인한 일시적 서비스 중단 / 검증:uname -r버전 확인)
[파이프라인 근거]
본 분석은 다중 소스 교차검증을 통해 데이터 일관성이 확인되었으며, 실측 EPSS 값(0.0019, 백분위 0.08934)을 근거로 실제 야생에서의 악용 가능성이 매우 낮음(hard)을 확인하였습니다. 이에 따라 CVSS 점수(5.5)와 KEV 미등재 상태를 종합하여 우선순위를 monitor로 결정하였습니다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.0019 · exploit=hard · in_scope=None