CVE-2026-80784 in Linux정보

요약

\~에 의해 VulDB • 2026. 09. 04.

Linux 커널에서 다음 취약점이 해결되었습니다:

mptcp: pm - teardown 중 할당-경쟁(race)으로 인한 메모리 누수 수정

mptcp_pm_destroy()는 소켓 종료(teardown) 동안 msk->pm.lock 하에서 msk->pm.anno_list 및 msk->pm.userspace_pm_local_addr_list를 비우며, 두 작업 간에 잠금을 해제합니다.

동일한 msk에서 동시에 발생하는 사용자 공간 PM의 genl ANNOUNCE는 mptcp_token_get_sock()을 통해 sock 참조를 유지하며, mptcp_pm_nl_announce_doit() 내에서 mptcp_userspace_pm_append_new_local_addr() 및 mptcp_pm_announced_alloc()를 호출합니다. 이 두 함수는 각각 해당 목록에 추가하기 위해 msk->pm.lock을 잠시 획득합니다. genl 핸들러가 sock 참조를 유지하고 있으므로, 핸들러가 완료되기 전에 mptcp_disconnect()를 통해 mptcp_destroy_common()이 sock refcount를 해제하지 않은 채 동일한 msk에서 mptcp_pm_destroy()를 실행할 수 있습니다.

잠금 획득 순서가 중첩되어 mptcp_pm_destroy()가 먼저 목록을 비우는 경우, 이후의 할당 작업은 해당 msk에 대해 아무도 반복(iterate)하지 않는 목록 헤드에 항목을 추가하게 되며, 이로 인해 항목이 누수됩니다. kmemleak는 사용자 공간 PM 대상 지속적 동시 ANNOUNCE 및 close 부하 하에서 mptcp_pm_add_addr 객체(mptcp_pm_announced_alloc() 발생)와 mptcp_pm_addr_entry 객체(mptcp_userspace_pm_append_new_local_addr() 발생) 모두를 보고합니다.

mptcp_pm_destroy()가 pm.lock 하에서 목록을 비우기 전에 설정하고, 할당 경로(pm paths)에서 pm.lock 하에서 확인하는 msk->pm.status에 MPTCP_PM_DESTROYING 비트를 추가합니다. 할당이 먼저 pm.lock을 획득하면 해당 항목은 mptcp_pm_destroy()가 해제할 때 이미 목록에 있게 됩니다. 또는 mptcp_pm_destroy()가 먼저 pm.lock을 획득하면, 이후의 할당 작업이 이 비트를 감지하여 작업을 거부합니다.

BRF(arXiv:2305.08782)를 확장한 MPTCP 프로토콜 흐름 하네스를 통해 발견되었습니다.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

책임이 있는

Linux

예약하다

2026. 08. 26.

모더레이션

수락

항목

VDB-398977

EPSS

0.00173

출처

Want to stay up to date on a daily basis?

Enable the mail alert feature now!