[방어] 분석 — CVE-2026-31391
CVE-2026-31391 is a local memory‑leak bug in the atmel‑sha204a kernel driver that can cause OOM‑induced denial of service and, under heavy load, may enable privilege escalation; immediate mitigation is to restrict access to /dev/atmel_sha204a.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00117 · 악용난이도 hard
🔍 공격 기법
atmel‑sha204a 드라이버에서 메모리 할당이 실패하면 ->tfm_count 감소가 누락되어 이후 읽기 요청이 차단되는 OOM 상태가 지속됩니다. 악용자는 의도적으로 대량의 SHA‑204A 연산을 호출해 메모리 부족 상황을 유발하고, 카운트 누수로 인해 시스템 서비스(특히 암호화 작업) 가 응답하지 않게 만들 수 있습니다.
악용 가능성: CVSS 벡터 AV:L/AC:L/PR:L/UI:N은 공격자가 로컬 시스템에 직접 접근하고, 낮은 복잡도로 권한이 있는 상태에서 사용자 개입 없이 실행할 수 있음을 의미합니다. EPSS = 0.00117이라는 실측값은 현재까지 관찰된 악용 사례가 거의 없지만, 완전히 배제되지 않는 이론적 위험을 보여줍니다. KEV에 등재되지 않은 점은 아직 공개적으로 활용되는 익스플로잇이 존재하지 않음을 나타냅니다. 해당 취약점은 메모리 할당 실패 시 →tfm_count를 감소시키지 않아 OOM 상황에서 커널이 블록되는 현상을 방지하도록 설계된 것으로, 이를 트리거하려면 로컬 프로세스가 의도적으로 메모리 압박을 가해야 합니다. 공격 표면은 이 드라이버가 포함된 Linux kernel(특히 Atmel SHA‑204A 하드웨어를 사용하는 임베디드 디바이스)에서 crypto API를 호출하는 ioctl·sysfs 경로에 국한됩니다. 공격자는 메모리 할당 실패를 유도한 뒤 tfm_count 누수 상태를 이용해 서비스 거부(DoS)나 추가적인 권한 상승을 시도할 수 있지만, 커널 레벨의 메모리 관리 로직을 정확히 조작해야 하므로 난이도가 높습니다. 따라서 실제 악용 가능성은 낮지만, 로컬 권한
💥 영향 분석
->tfm_count가 감소되지 않아 동일 드라이버를 재사용하는 이후 읽기 요청이 무한정 대기 → 서비스 지연·정지- 메모리 누수로 인해 커널 OOM 상황이 빈번해질 경우, 전체 시스템 가용성 저하(프로세스 강제 종료)
🔗 관련 취약점·체이닝
추정: 동일한 카운트 관리 오류가 존재하는 다른 crypto‑driver (예: crypto‑dev 계열)에서 메모리 누수와 서비스 차단을 일으키는 CWE‑401(메모리 릭) 패턴과 연계될 수 있습니다. 또한, OOM 발생 후 커널이 비정상적인 스케줄링을 수행하는 경우 CWE‑667(경쟁 상태)와 결합해 추가적인 시스템 불안정을 초래할 가능성이 있습니다.
🔎 탐지
-
로그 위치:
kernel로그 (dmesg, /var/log/kern.log, journaldSYSLOG_IDENTIFIER=kernel) -
관찰 필드:
MESSAGE에 포함되는 문자열 패턴 -
탐지 규칙 예시 1 – SIEM 쿼리 (Splunk)
text1index=linux sourcetype=kernel2("atmel_sha204a" AND ("allocation failed" OR "OOM"))3| stats count by host, _time, message4| where count > 3 -
탐지 규칙 예시 2 – Elastic (KQL)
text1event.category:"kernel"2and (message:*atmel_sha204a* and (message:*failed to allocate* or message:*out of memory*)) -
탐지 규칙 예시 3 – 정규식
(?i)atmel[_-]sha204a.*(allocation|oom).*failed -
오탐 튜닝: 일반적인 OOM 로그는 다수 존재하므로
module=atmel_sha204a필터를 반드시 포함한다. 비활성화된 모듈이 로드되지 않은 시스템에서는 해당 규칙을 무시하도록 whitelist 적용.
🛡️ 완화 방안
-
즉시(긴급 차단)
- 조치:
atmel_sha204a모듈 블랙리스트 등록 →/etc/modprobe.d/blacklist-atmel.conf에blacklist atmel_sha204a추가 후 재부팅. - 난이도: ★★ (파일 편집·재부팅)
- 운영 영향: 해당 하드웨어(예: Atmel SHA‑204A 기반 보안 토큰) 사용 불가 → 기능 제한 가능성 있음.
- 검증:
lsmod | grep atmel_sha204a결과 없어야 함.
- 조치:
-
단기(완화)
- 조치: 메모리 압박 상황을 완화하기 위해
vm.overcommit_memory=1로 설정하고, OOM 알림 스크립트를 배포해atmel_sha204a할당 실패 시 자동 재로드 방지. - 난이도: ★★ (sysctl 적용·스크립트 배포)
- 운영 영향: 메모리 오버커밋 정책 변경으로 다른 프로세스에 영향을 줄 수 있으나, 위험 수준은 중간 정도.
- 검증:
sysctl vm.overcommit_memory값 확인 및 OOM 로그 발생 빈도 감소 여부 모니터링.
- 조치: 메모리 압박 상황을 완화하기 위해
-
근본(해결)
- 조치: 커널 패치를 적용하거나 취약점이 수정된 버전으로 업그레이드 (5.10.254+, 6.1.168+, 6.2.x 최신 등). 배포 전 테스트 환경에서
atmel_sha204a동작 확인 후 프로덕션에 롤아웃. - 난이도: ★★★★ (커널 빌드·배포)
- 운영 영향: 재부팅 필요, 커널 ABI 변화에 따른 호환성 검증 요구.
- 검증: 패치 적용 후
dmesg에 더 이상 “allocation failed” 메시지가 나타나지 않는지 확인.
- 조치: 커널 패치를 적용하거나 취약점이 수정된 버전으로 업그레이드 (5.10.254+, 6.1.168+, 6.2.x 최신 등). 배포 전 테스트 환경에서
-
잔여 리스크: 패치를 적용해도 동일한 카운트 관리 로직을 가진 다른 드라이버가 존재할 경우 유사한 OOM 누수 위험이 남아 있을 수 있음. 따라서 위 탐지 규칙을 지속 운영하고, 정기적인 커널 보안 업데이트를 권장합니다.
-
인시던트 대응 플레이북
dmesg·journald에서atmel_sha204a할당 실패 로그 확인 → 발생 시간 기록.- 해당 호스트에 블랙리스트 적용 여부 점검, 미적용 시 즉시 적용.
- 메모리 압박 상태라면
vm.overcommit_memory조정 후 OOM 알림 스크립트 배포. - 패치 일정 수립·업그레이드 진행, 완료 후 로그 재점검.
우선순위 근거: 다중 소스에서 일관적으로 확인된 (교차검증) 취약점이며 EPSS 0.00117(실측값)과 CVSS 5.5를 고려해 “monitor”‑우선 순위가 지정되었습니다. KEV 등재되지 않았지만, 영향 제품이 다수이고 공급망 차원에서 광범위하게 배포되는 커널 컴포넌트이므로 즉시 차단·모니터링을 권고합니다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00117 · exploit=hard · in_scope=None