🔍 CVE-2026-31420

5.5
CVSS Score
MEDIUM
2026-04-13
2026-09-14 12:17
✅ 완료

🇰🇷 한글 설명

Linux 커널 bridge mrp 모듈에서 사용자 입력 interval 값의 검증 부재로 인한 취약점입니다. interval을 0으로 설정하면 지연된 작업이 0 지연으로 계속 재스케줄되어 MRP 테스트 프레임을 최대 속도로 생성하는 tight loop이 발생합니다. 이로 인해 시스템 메모리가 고갈되어 OOM 데드락 및 커널 panic이 발생합니다.

💡 쉬운 설명

Linux 시스템의 네트워크 설정 중 특정 옵션에 0을 입력하면 시스템이 무한 루프에 빠져 메모리를 모두 소비해서 다운됩니다. 일반 사용자나 공격자가 이 옵션을 0으로 설정하면 서버를 마비시킬 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: bridge: mrp: reject zero test interval to avoid OOM panic br_mrp_start_test() and br_mrp_start_in_test() accept the user-supplied interval value from netlink without validation. When interval is 0, usecs_to_jiffies(0) yields 0, causing the delayed work (br_mrp_test_work_expired / br_mrp_in_test_work_expired) to reschedule itself with zero delay. This creates a tight loop on system_percpu_wq that allocates and transmits MRP test frames at maximum rate, exhausting all system memory and causing a kernel panic via OOM deadlock. The same zero-interval issue applies to br_mrp_start_in_test_parse() for interconnect test frames. Use NLA_POLICY_MIN(NLA_U32, 1) in the nla_policy tables for both IFLA_BRIDGE_MRP_START_TEST_INTERVAL and IFLA_BRIDGE_MRP_START_IN_TEST_INTERVAL, so zero is rejected at the netlink attribute parsing layer before the value ever reaches the workqueue scheduling code. This is consistent with how other bridge subsystems (br_fdb, br_mst) enforce range constraints on netlink attributes.

📍 영향받는 시스템

Linux kernel (bridge MRP 기능이 활성화된 커널, 특정 버전 범위)

⚔️ 공격 벡터

netlink 인터페이스를 통해 IFLA_BRIDGE_MRP_START_TEST_INTERVAL 또는 IFLA_BRIDGE_MRP_START_IN_TEST_INTERVAL에 0 값을 전송

🛡️ 대응 방법

Linux 커널을 패치된 최신 버전으로 업그레이드하여 netlink 속성 레이어에서 0 값 거부 로직 적용

🔧 검증 코드

출력된 커널 버전이 패치된 버전보다 크거나 같으면 취약점이 해결된 상태입니다.

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Linux Kernel