🔍 CVE-2021-47242

7.5
CVSS Score
HIGH
2024-05-21
2026-08-04 10:16
✅ 완료

🇰🇷 한글 설명

Linux 커널의 MPTCP(MultiPath TCP) 구성 요소 내 subflow_error_report() 함수에서 소프트 락업(soft lockup)이 발생하는 취약점입니다. 특정 상황에서 함수가 중복된 잠금(lock)을 시도하여 CPU가 응답하지 않는 상태에 빠질 수 있습니다.

💡 쉬운 설명

컴퓨터의 핵심 엔진인 커널이 데이터를 처리하는 과정에서 서로 자물쇠를 잠그려다 충돌이 발생하여 시스템이 멈추는 현상입니다. 이로 인해 시스템이 매우 느려지거나 완전히 먹통이 될 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: mptcp: fix soft lookup in subflow_error_report() Maxim reported a soft lookup in subflow_error_report(): watchdog: BUG: soft lockup - CPU#0 stuck for 22s! [swapper/0:0] RIP: 0010:native_queued_spin_lock_slowpath RSP: 0018:ffffa859c0003bc0 EFLAGS: 00000202 RAX: 0000000000000101 RBX: 0000000000000001 RCX: 0000000000000000 RDX: ffff9195c2772d88 RSI: 0000000000000000 RDI: ffff9195c2772d88 RBP: ffff9195c2772d00 R08: 00000000000067b0 R09: c6e31da9eb1e44f4 R10: ffff9195ef379700 R11: ffff9195edb50710 R12: ffff9195c2772d88 R13: ffff9195f500e3d0 R14: ffff9195ef379700 R15: ffff9195ef379700 FS: 0000000000000000(0000) GS:ffff91961f400000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000000c000407000 CR3: 0000000002988000 CR4: 00000000000006f0 Call Trace: <IRQ> _raw_spin_lock_bh subflow_error_report mptcp_subflow_data_available __mptcp_move_skbs_from_subflow mptcp_data_ready tcp_data_queue tcp_rcv_established tcp_v4_do_rcv tcp_v4_rcv ip_protocol_deliver_rcu ip_local_deliver_finish __netif_receive_skb_one_core netif_receive_skb rtl8139_poll 8139too __napi_poll net_rx_action __do_softirq __irq_exit_rcu common_interrupt </IRQ> The calling function - mptcp_subflow_data_available() - can be invoked from different contexts: - plain ssk socket lock - ssk socket lock + mptcp_data_lock - ssk socket lock + mptcp_data_lock + msk socket lock. Since subflow_error_report() tries to acquire the mptcp_data_lock, the latter two call chains will cause soft lookup. This change addresses the issue moving the error reporting call to outer functions, where the held locks list is known and the we can acquire only the needed one.

📍 영향받는 시스템

MPTCP 기능이 활성화된 Linux 커널 버전

⚔️ 공격 벡터

네트워크 패킷을 조작하여 MPTCP 서브플로우 오류를 유도함으로써 시스템 가용성을 침해하는 DoS(서비스 거부) 공격

🛡️ 대응 방법

해당 취약점이 수정된 최신 Linux 커널 버전으로 업데이트

🔧 검증 코드

출력된 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 보안 공지(Security Advisory)와 대조합니다.

Shell / Script
uname -r

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel