[분석가] 분석 — CVE-2026-31649
CVE-2026-31649 enables remote kernel memory disclosure and potential corruption via crafted jumbo‑frame packets in the stmmac driver; apply the upstream kernel patches without delay.
📋 요약
- 심각도 critical · CVSS 9.8 · EPSS 0.00459 · 악용난이도 moderate
🔍 공격 기법
- 공격자는 skb의 선형 부분(
skb_headlen)이BUF_SIZE_8KiB(또는2KiB) 이하인 상태에서, 페이지 조각을 포함한 전체 길이가 그보다 큰 패킷을 전송합니다. jumbo_frm()함수가len = nopaged_len - bmax;를 무조건 수행하면서 unsigned 정수 언더플로우가 발생하고,len값이 매우 커집니다.- 이후
while (len != 0)루프가 수백 천 번 반복되며,dma_map_single()에 전달되는 포인터가 skb 버퍼를 넘어 임의의 커널 메모리를 DMA 엔진에 매핑하게 됩니다. - IOMMU 가 없는 SoC(대부분의 stmmac 기반 임베디드 시스템)에서는 이 매핑이 실제 물리 메모리 접근을 허용하므로, 공격자는 커널 메모리 유출 및 메모리 손상을 일으킬 수 있습니다.
악용 가능성: AV:N/AC:L/PR:N/UI:N 벡터는 공격자가 네트워크를 통해 별도의 사전 권한 없이 복잡도 낮은 패킷만 전송하면 된다는 의미이며, 실제로 이 취약점은 stmmac 드라이버가 수신하는 Ethernet 프레임의 길이 검증 로직에서 발생합니다. 공격자는 선형 데이터 영역이 BUF_SIZE_2KiB 또는 BUF_SIZE_8KiB 보다 작지만 페이지 조각을 포함해 전체 길이가 큰 패킷(즉, jumbo 프레임)을 전송하면, len = nopaged_len - bmax 연산에서 unsigned 정수 언더플로우가 발생해 루프가 비정상적으로 오래 실행됩니다. 이 조건은 네트워크 인터페이스가 노출된 모든 Linux 커널(취약 버전 포함)에서 재현 가능하므로, 공격 표면은 해당 드라이버를 사용하는 시스템 전체와 그에 연결된 물리·가상 NIC가 됩니다. EPSS 0.00459라는 실측 확률과 KEV 미등재는 현재까지 활발한 악용 사례가 보고되지 않았지만, 네트워크 전송만으로 실행될 수 있는 특성 때문에 이론적 심각도와 별개로 실제 위협이 존재함을 시사합니다. 따라서 공격 난이도는 “낮음”에 가깝고, 성공적인 악용은 비교적 간단한 패킷 조작만으로 가능하므로 방어자는 해당 인터페이스를 외부에 노출하지 않거나 최신 커널로 업데이트하는 것이 우선 고려되어야 합니다.
💥 영향 분석
- 기술적 위험
- 커널 주소 공간의 임의 영역이 DMA를 통해 외부에 노출되어, 민감 데이터(키, 인증 토큰 등) 유출 가능.
- 메모리 손상이 발생하면 커널 패닉이나 원격 코드 실행(RCE)으로 이어질 수 있음.
- 공격 성공 시
C,I,A모두High수준(CVSS 9.8)이며, 시스템 전체 가용성·무결성을 위협함.
- 비즈니스 영향
- 서비스 중단(시스템 재부팅·커널 패닉) → 운영 가용성 손실.
- 데이터 유출 시 규제·컴플라이언스 위반 위험(예: 개인정보보호법, 산업별 보안 기준).
- 다수의 Linux 커널 버전(3.2.1‑5.10.253, 5.11‑5.15.203, 5.16‑6.1.169, 6.2‑6.6.135, 6.7‑6.12.82, 6.13‑6.18.23, 6.19‑6.19.13 등)에서 영향을 받으므로, 임베디드·엣지 디바이스를 포함한 광범위한 자산이 노출될 가능성이 높음.
- 노출 규모
- 다중 소스 교차검증 결과 일관적으로 확인됐으며(신뢰도 1.0), 영향을 받는 제품 라인이 넓어 공급망 전반에 걸친 위험이 존재함.
🔗 관련 취약점·체이닝
- 동일한 DMA 매핑 오류를 이용하는 기존 커널 취약점(CVE‑2022‑XXXX 등)과 연계될 경우, 메모리 오염을 통한 권한 상승이나 추가적인 원격 코드 실행 경로가 형성될 수 있음.
- 현재 확인된 직접적인 체이닝 CVE는 없으며, 공격자는 필요에 따라 다른 네트워크 스택 취약점과 조합해 활용 가능함(추정).
🔎 탐지
- 커널 로그:
jumbo_frm루프에서 비정상적으로 높은 반복 횟수나dma_map_single오류가 기록되는 경우. - 성능 지표: 특정 NIC에 대한 CPU 사용량 급증·DMA 매핑 호출 빈도 폭증.
- 패킷 특성:
skb_headlen <= bmax이면서 전체 패킷 길이(skb->len)가bmax를 초과하는 jumbo‑frame 트래픽이 감지될 경우 경보 생성. - 탐지 시그니처 예시(간략):
text1kernel:stmmac.*jumbo_frm.*loop count > 1000002netfilter:* skb_headlen <= (8192|2048) && total_len > (8192|2048)
🛡️ 완화 방안
- 즉시 조치
- 가능한 경우 해당 NIC의 jumbo‑frame 기능을 비활성화하고, 패킷 MTU를
bmax이하로 제한한다(서비스 중단 위험을 사전 검토 후 적용). - IOMMU가 지원되는 플랫폼에서는 IOMMU를 활성화하여 DMA 매핑 범위를 강제 제한한다.
- 가능한 경우 해당 NIC의 jumbo‑frame 기능을 비활성화하고, 패킷 MTU를
- 근본 해결
- upstream에서 제공하는 커널 패치를 적용한다(
stmmac: fix integer underflow in chain mode). - 영향을 받는 모든 시스템을 최신 패치가 포함된 커널(예: 6.19.14 이상)으로 업데이트하고, 배포 일정에 맞춰 티켓을 발행한다.
- upstream에서 제공하는 커널 패치를 적용한다(
- 운영 차원
- 자산 관리 DB에서
stmmac드라이버 사용 여부를 식별해 우선순위적으로 패치를 진행한다(동료 의견과 일치). - 패치 적용 전후에 정상적인 DMA 매핑 로그와 CPU/메모리 프로파일을 비교하여 회귀 테스트를 수행한다.
- 자산 관리 DB에서
우선순위 판단 근거: CVSS 9.8(critical)·다중 소스 교차검증 일관성·EPSS 0.00459(moderate)·비KEV·광범위한 제품 영향 → 규칙 기반으로 “이번 주 내 scheduled” 로 지정되었음. 따라서 패치 적용을 최우선 과제로 진행하시기 바랍니다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=9.8 · non-KEV · EPSS=0.00459 · exploit=moderate · in_scope=None