Kestrel
CVE-2026-31485DGX_A· 2026년 8월 2일 AM 02:41

[공격] 분석 — CVE-2026-31485

CVE-2026-31485 is a local use‑after‑free in the fsl_lpspi driver that can cause kernel OOPS and possible privilege escalation; patching the kernel and rebooting are top priority, with temporary driver blacklisting as mitigation.

📋 요약

  • 심각도 high · CVSS 7.8 · EPSS 0.00131 · 악용난이도 hard

🔍 공격 기법

  • 전제 조건

    • 로컬 사용자이며 CAP_SYS_RAWIO 권한이 있거나 /dev/spidev*·/dev/fsl_lpspi 장치 파일에 접근 가능한 계정이어야 함 (PR:L → 실제로는 특권 캡을 요구).
    • 시스템에 spi-fsl-lpspi 모듈이 로드돼 있고, DMA 기반 SPI 전송이 진행 중이어야 함.
  • 트리거 흐름

    1. 정찰lsmod | grep fsl_lpspi, /sys/bus/spi/devices/*/driver 로 드라이버 존재·바인딩 확인.
    2. 초기 접근open("/dev/spidevX.Y", O_RDWR)ioctl(fd, SPI_IOC_MESSAGE, &msg) 등으로 정상적인 DMA 전송 시작.
    3. 동시 제거 – 동일 세션 혹은 별 프로세스에서 echo spi0 > /sys/bus/spi/drivers/fsl_lpspi/unbind 혹은 rmmod spi_fsl_lpspi 를 수행해 fsl_lpspi_remove() 호출.
    4. 취약점 발동fsl_lpspi_remove() 내부에서 DMA 채널을 동기식 해제하지만, 컨트롤러는 devm_spi_register_controller() 로 관리돼 실제 언레지스터가 함수 반환 뒤로 연기됨. 진행 중인 DMA 전송이 해제된 후 NULL 포인터를 역참조해 커널 OOPS (Unable to handle kernel NULL pointer dereference at virtual address 0x00000000).
  • 권한 상승·지속

    • 커널 OOPS 직후 재부팅 없이 메모리 손상이 남아 있으면, 후속 UAF/NULL‑deref 활용 혹은 기존 커널 코드 흐름에 삽입된 페이로드 실행으로 루트 권한을 획득할 수 있음 (hard 난이도).
    • 공격자는 cap_sys_rawio 를 보유한 프로세스(예: root, 특정 서비스)로 위 과정을 자동화해 사용자 개입 없이 지속적인 특권 상승을 달성 가능.
  • CVSS ↔ 실제 조건 매핑

    • AV:L → 오직 로컬에서만 발생 (디바이스 파일 접근).
    • AC:L → DMA 해제와 모듈 언로드 순서만 맞추면 충분, 복잡한 외부 입력은 필요 없음.
    • PR:L → 실제로는 CAP_SYS_RAWIO 가 전제되므로 일반 사용자에게는 제한적이며, 권한이 없는 경우 공격이 차단됨.
    • UI:N → 자동 스크립트로 전 과정 수행 가능.

악용 가능성: 이 취약은 AV:L (로컬)·AC:L (낮은 복잡도)·PR:L (낮은 권한)·UI:N (사용자 개입 없음)이라는 CVSS 벡터가 의미하듯, 로컬 시스템에 접근할 수 있는 일반 사용자라도 특정 조건만 만족하면 공격이 가능합니다. 실제로는 fsl_lpspi_remove() 가 DMA 채널을 해제하는 시점과 동시에 SPI 전송이 진행 중이어야 하며, 이는 rmmod spi_fsl_lpspi 또는 sysfs 의 remove 속성을 통해 드라이버 언로드를 트리거할 수 있는 권한이 필요합니다. 따라서 공격 표면은 /dev/spidevX.Y (전송 시작)와 /sys/bus/platform/devices/.../remove (제거 호출) 두 엔드포인트이며, 파라미터 자체는 별도 검증 없이 DMA 해제 로직에 전달됩니다. EPSS 0.00131이라는 수치는 이 취약이 실제 환경에서 드물게 이용될 가능성을 보여주지만, KEV에 등재되지 않은 점은 현재까지 공개된 활발한 악용 사례가 없음을 의미합니다. 공격 난이도는 “hard” 로 평가되는데, 이는 **특정 Freescale LPSPI 하드웨어가 존재하고, 해당 드라이버

💥 영향 분석

  • 커널 OOPS 발생 시 시스템 전체가 패닉·재부팅되어 서비스 가용성이 즉시 중단됩니다.
  • 메모리 손상 후 성공적인 특권 상승이 이루어지면 공격자는 루트 권한으로 임의 커널 코드 실행, 파일 탈취·파괴·백도어 설치 등 전면 침해가 가능합니다.

🔗 관련 취약점·체이닝

  • CWE‑416 (Use After Free) 가 기본 유형이며, 동일 커널 라인에서 발견된 다른 UAF/NULL‑deref 결함과 연계하면 OOPS 이후 메모리 재배치를 이용한 RCE(예: 기존 커널 힙 오버플로우) 로 이어질 수 있음.
  • 추정: CAP_SYS_RAWIO 가 요구되는 점을 활용해 권한 상승 전 단계에서 SUID 바이너리 오용·권한 위임 공격과 결합하면 초기 접근 장벽을 낮출 수 있습니다.

🔎 탐지

  • dmesg 혹은 /var/log/kern.log 에 “I/O Error in DMA RX” 와 함께 “Unable to handle kernel NULL pointer dereference at virtual address 00000000” 메시지가 기록될 경우.
  • Call trace에 fsl_lpspi_dma_transfer, fsl_lpspi_transfer_one 가 포함된 로그가 나타남.
  • auditd/dev/spidev*·/dev/fsl_lpspi 에 대한 ioctl 호출 및 module_unload 이벤트를 감시하고, 비루트 UID 의 접근 시 경보 설정.

🛡️ 완화 방안

  • 최우선: 해당 커널 버전에 포함된 패치를 적용하고 시스템을 재부팅한다 (패치 내용: devm_spi_register_controller()spi_register_controller(), spi_unregister_controller() 추가).
  • 임시 조치: /etc/modprobe.d/blacklist.confblacklist spi_fsl_lpspi 를 추가 후 현재 로드된 모듈을 rmmod spi_fsl_lpspi 로 언로드한다.
  • 권한 제한: /dev/spidev*·/dev/fsl_lpspi 파일 권한을 600 으로 제한하고, 필요 시 root:root 소유자로 설정한다.
  • 감시 강화: auditd 규칙으로 위 장치에 대한 ioctl, 모듈 언로드 및 디바이스 unbind 이벤트를 실시간 알림하도록 구성한다.

본 보고서는 교차검증된 다중 소스(신뢰도 1.0)와 EPSS 0.00131을 기반으로, “scheduled (이번 주 내)” 우선순위 논리(CVSS 7.8·non‑KEV·hard exploit) 를 적용해 작성되었습니다.

⚖️ 위험도 / 우선순위

  • 조치: scheduled (이번 주 내)
  • 근거: CVSS=7.8 · non-KEV · EPSS=0.00131 · exploit=hard · in_scope=None
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

댓글 작성 은 로그인 후 이용할 수 있어요.

다른 사용자의 댓글은 자유롭게 읽을 수 있어요.

로그인하기

불러오는 중…