🔍 CVE-2026-23286

5.5
CVSS Score
MEDIUM
2026-03-25
2026-11-05 22:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 ATM LANE 모듈에서 lec_arp_clear_vccs() 함수 호출 시 NULL 포인터 역참조가 발생하는 취약점입니다. 동일한 VCC를 공유하는 여러 ARP 엔트리가 존재할 때, 첫 번째 엔트리에서 VCC 관련 자원이 해제되면 이후 반복문에서 NULL 포인터를 참조하여 시스템 크래시가 발생합니다.

💡 쉬운 설명

컴퓨터의 통신 관리 기능 중 하나에서 이미 삭제된 정보를 다시 지우려고 시도하다가 오류가 발생하는 문제입니다. 이로 인해 시스템이 갑자기 멈추거나 재부팅될 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: atm: lec: fix null-ptr-deref in lec_arp_clear_vccs syzkaller reported a null-ptr-deref in lec_arp_clear_vccs(). This issue can be easily reproduced using the syzkaller reproducer. In the ATM LANE (LAN Emulation) module, the same atm_vcc can be shared by multiple lec_arp_table entries (e.g., via entry->vcc or entry->recv_vcc). When the underlying VCC is closed, lec_vcc_close() iterates over all ARP entries and calls lec_arp_clear_vccs() for each matched entry. For example, when lec_vcc_close() iterates through the hlists in priv->lec_arp_empty_ones or other ARP tables: 1. In the first iteration, for the first matched ARP entry sharing the VCC, lec_arp_clear_vccs() frees the associated vpriv (which is vcc->user_back) and sets vcc->user_back to NULL. 2. In the second iteration, for the next matched ARP entry sharing the same VCC, lec_arp_clear_vccs() is called again. It obtains a NULL vpriv from vcc->user_back (via LEC_VCC_PRIV(vcc)) and then attempts to dereference it via `vcc->pop = vpriv->old_pop`, leading to a null-ptr-deref crash. Fix this by adding a null check for vpriv before dereferencing it. If vpriv is already NULL, it means the VCC has been cleared by a previous call, so we can safely skip the cleanup and just clear the entry's vcc/recv_vcc pointers. The entire cleanup block (including vcc_release_async()) is placed inside the vpriv guard because a NULL vpriv indicates the VCC has already been fully released by a prior iteration — repeating the teardown would redundantly set flags and trigger callbacks on an already-closing socket. The Fixes tag points to the initial commit because the entry->vcc path has been vulnerable since the original code. The entry->recv_vcc path was later added by commit 8d9f73c0ad2f ("atm: fix a memory leak of vcc->user_back") with the same pattern, and both paths are fixed here.

📍 영향받는 시스템

Linux Kernel (ATM LANE module 사용 환경)

⚔️ 공격 벡터

특수하게 조작된 ATM VCC 연결 및 해제 시퀀스를 통한 로컬 시스템 크래시 유도

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 lec_arp_clear_vccs() 내 NULL 체크 로직을 적용해야 합니다.

🔧 검증 코드

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

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