Kestrel
대시보드로 돌아가기
CVE-2026-31466MEDIUM· 4.7MITRENVD대응게시일: 2026. 04. 22.수정일: 2026. 07. 14.CNA: 416baaa9-dc9f-4396-8d5f-8c081fb06d67Modified

In the Linux kernel, the following vulnerability has been resolved: mm/huge_memory: fix folio isn't locked in softleaf_to_folio() On arm64

위협 신호 · CVSS · EPSS · KEV

정기 패치· 높은 악용 신호 없음
CVSS
4.7medium

이론적 심각도 점수

EPSS
0.1%상위 99.3%

30일 내 악용 확률 예측

KEV
미등재

실측 악용 기록 없음

권장 대응 기한차기 업그레이드 시CISA SSVC 기준

별도 긴급 패치 불필요 — 정기 시스템 업그레이드 주기에 맞춰 조치

· KEV 미등재 · 자동화 어려움 · 부분 영향 · 내부 한정

CVSS 벡터 · 메트릭

악용 경로
공격 벡터로컬
공격 복잡도높음
필요 권한낮음
사용자 상호작용불필요
범위불변
영향
기밀성 영향없음
무결성 영향없음
가용성 영향높음
버전별 점수
CVSS 3.14.7MEDIUM· 악용성 1· 영향도 3.6
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H

약점 (CWE)

  • CWE-362

    경쟁 조건(Race Condition) — 동시 실행 타이밍 결함으로 상태가 깨짐.

상세 설명

In the Linux kernel, the following vulnerability has been resolved:

mm/huge_memory: fix folio isn't locked in softleaf_to_folio()

On arm64 server, we found folio that get from migration entry isn't locked
in softleaf_to_folio(). This issue triggers when mTHP splitting and
zap_nonpresent_ptes() races, and the root cause is lack of memory barrier
in softleaf_to_folio(). The race is as follows:

text
1CPU0 CPU1

deferred_split_scan() zap_nonpresent_ptes()
lock folio
split_folio()
unmap_folio()
change ptes to migration entries
__split_folio_to_order() softleaf_to_folio()
set flags(including PG_locked) for tail pages folio = pfn_folio(softleaf_to_pfn(entry))
smp_wmb() VM_WARN_ON_ONCE(!folio_test_locked(folio))
prep_compound_page() for tail pages

In __split_folio_to_order(), smp_wmb() guarantees page flags of tail pages
are visible before the tail page becomes non-compound. smp_wmb() should
be paired with smp_rmb() in softleaf_to_folio(), which is missed. As a
result, if zap_nonpresent_ptes() accesses migration entry that stores tail
pfn, softleaf_to_folio() may see the updated compound_head of tail page
before page->flags.

This issue will trigger VM_WARN_ON_ONCE() in pfn_swap_entry_folio()
because of the race between folio split and zap_nonpresent_ptes()
leading to a folio incorrectly undergoing modification without a folio
lock being held.

This is a BUG_ON() before commit 93976a20345b ("mm: eliminate further
swapops predicates"), which in merged in v6.19-rc1.

To fix it, add missing smp_rmb() if the softleaf entry is migration entry
in softleaf_to_folio() and softleaf_to_page().

[tujinjiang@huawei.com: update function name and comments]

AI 심층 분석

공격 시나리오 · 재현 가능한 PoC 페이로드 · 즉시 적용 가능한 차단 패치를 한 번에 받아 보세요. 보안 운영팀이 그대로 점검·티켓팅에 쓸 수 있는 형태로 정리해 드립니다.

영향받는 제품·버전

  • linux linux_kernel4.5 - 5.10.253
    linux
  • linux linux_kernel5.11 - 5.15.203
    linux
  • linux linux_kernel5.16 - 6.1.168
    linux
  • linux linux_kernel6.2 - 6.6.134
    linux
  • linux linux_kernel6.7 - 6.12.81
    linux
  • linux linux_kernel6.13 - 6.18.21
    linux
  • linux linux_kernel6.19 - 6.19.11
    linux
  • linux linux_kernel
    linux
  • linux linux_kernel
    linux
  • linux linux_kernel
    linux
  • linux linux_kernel
    linux
  • linux linux_kernel
    linux

영향받는 구성 (CPE) 6

  • linux linux_kernel≥ 4.5 < 5.10.253cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
  • linux linux_kernel 7.0cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:*
  • linux linux_kernel 7.0cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:*
  • linux linux_kernel 7.0cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:*
  • linux linux_kernel 7.0cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:*
  • linux linux_kernel 7.0cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:*