🔍 CVE-2026-23460

5.5
CVSS Score
MEDIUM
2026-04-03
2026-07-24 22:10
✅ 완료

🇰🇷 한글 설명

Linux 커널의 ROSE 소켓 모듈에서 이미 연결 중인 상태(TCP_SYN_SENT)를 확인하지 않아 두 번째 연결 시도 시 NULL 포인터 역참조가 발생하는 취약점입니다. rose_connect() 함수가 rose->neighbour를 덮어쓸 때 NULL이 반환되면 일관성 없는 상태가 남아 소켓 종료 시 커널 패닉을 유발합니다. 수정 사항은 TCP_SYN_SENT 상태에서 -EALREADY 에러를 반환하도록 상태 검증을 추가하는 것입니다.

💡 쉬운 설명

Linux 무선 통신 모듈에서 연결을 두 번 빠르게 시도할 때 메모리 오류가 발생하는 문제입니다. 이를 악용하면 로컬 공격자가 시스템 중단(DoS)을 일으킬 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: net/rose: fix NULL pointer dereference in rose_transmit_link on reconnect syzkaller reported a bug [1], and the reproducer is available at [2]. ROSE sockets use four sk->sk_state values: TCP_CLOSE, TCP_LISTEN, TCP_SYN_SENT, and TCP_ESTABLISHED. rose_connect() already rejects calls for TCP_ESTABLISHED (-EISCONN) and TCP_CLOSE with SS_CONNECTING (-ECONNREFUSED), but lacks a check for TCP_SYN_SENT. When rose_connect() is called a second time while the first connection attempt is still in progress (TCP_SYN_SENT), it overwrites rose->neighbour via rose_get_neigh(). If that returns NULL, the socket is left with rose->state == ROSE_STATE_1 but rose->neighbour == NULL. When the socket is subsequently closed, rose_release() sees ROSE_STATE_1 and calls rose_write_internal() -> rose_transmit_link(skb, NULL), causing a NULL pointer dereference. Per connect(2), a second connect() while a connection is already in progress should return -EALREADY. Add this missing check for TCP_SYN_SENT to complete the state validation in rose_connect(). [1] https://syzkaller.appspot.com/bug?extid=d00f90e0af54102fb271 [2] https://gist.github.com/mrpre/9e6779e0d13e2c66779b1653fef80516

📍 영향받는 시스템

Linux kernel with ROSE (packet radio) networking module enabled; affects kernels before the patch

⚔️ 공격 벡터

Local attacker with socket creation privileges; trigger via rapid successive connect() calls on ROSE socket in TCP_SYN_SENT state

🛡️ 대응 방법

Update Linux kernel to patched version; apply fix adding TCP_SYN_SENT validation in rose_connect() returning -EALREADY

🔧 검증 코드

CONFIG_NETROM=y 또는 CONFIG_NETROM=m이 나타나면 ROSE 모듈이 활성화되어 있으며, 해당 커널 버전이 취약점의 영향을 받을 가능성이 있습니다.

Shell / Script
grep CONFIG_NETROM /boot/config-$(uname -r) 2>/dev/null | grep -E 'y|m'

📊 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