🔍 CVE-2026-72072

7.8
CVSS Score
HIGH
2026-08-15
2026-10-19 22:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 mlx5e 드라이버에서 MACsec RX SC 삭제 시 metadata_dst 객체에 대한 Use-After-Free 취약점이 발견되었습니다. 삭제 과정에서 참조 카운트를 무시하고 메모리를 해제하여, 데이터 경로에서 이미 해제된 메모리에 접근할 수 있는 레이스 컨디션이 발생합니다.

💡 쉬운 설명

네트워크 보안 기능을 삭제하는 과정에서 컴퓨터 메모리를 잘못 관리하여 발생하는 오류입니다. 이로 인해 시스템이 예기치 않게 종료되거나 해커가 메모리에 접근할 수 있는 위험이 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: net/mlx5e: macsec: fix use-after-free of metadata_dst on RX SC delete When an offloaded MACsec RX SC is deleted, macsec_del_rxsc_ctx() freed the per-SC metadata_dst with metadata_dst_free(), which kfree()s the object unconditionally and ignores the dst reference count. The RX datapath in mlx5e_macsec_offload_handle_rx_skb() looks up the SC under rcu_read_lock() via xa_load(), takes a reference with dst_hold() and attaches the dst to the skb with skb_dst_set(). A reader that already obtained the rx_sc pointer can race with the delete path and operate on freed memory. Fix the owner side by dropping the reference with dst_release() instead of freeing unconditionally, and convert the RX datapath to dst_hold_safe() so a reader racing the SC delete cannot attach a dst whose last reference was just dropped; only attach it when a reference was actually taken. mlx5e_macsec_add_rxsc() also published sc_xarray_element via xa_alloc() before rx_sc->md_dst was allocated and initialised, so a datapath reader that looked the SC up by fs_id could observe rx_sc with md_dst still NULL or, on weakly-ordered architectures, a non-NULL md_dst pointer whose contents were not yet visible. NULL-check the xa_load() result and md_dst on the datapath, and reorder add_rxsc() so the xa_alloc() publish happens only after md_dst is fully initialised; the xarray RCU publish then pairs with the rcu_read_lock()/xa_load() in the datapath. Note: macsec_del_rxsc_ctx() also kfree()s rx_sc->sc_xarray_element without an RCU grace period while the same datapath reads it under rcu_read_lock(); that is a separate pre-existing issue left to a follow-up patch. Found by 0sec automated security-research tooling (https://0sec.ai).

📍 영향받는 시스템

Linux kernel (mlx5e driver)

⚔️ 공격 벡터

특정 네트워크 조건에서 MACsec RX SC 삭제와 데이터 수신 작업 간의 레이스 컨디션을 유도하여 발생

🛡️ 대응 방법

커널 패치를 적용하여 dst_release() 사용 및 xa_load() 결과에 대한 NULL 체크 로직을 반영해야 함

🔧 검증 코드

현재 실행 중인 커널 버전을 확인하여 해당 취약점이 수정된 패치 버전인지 확인합니다.

Shell / Script
uname -r

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel