🇰🇷 한글 설명
Linux 커널 SCTP 서브시스템의 sysctl rto_min/max 핸들러에서 current->nsproxy를 통해 'net' 구조체에 접근할 때 null pointer dereference 발생 가능. 프로세스 종료 시 current->nsproxy가 NULL이 되어 커널 패닉(Oops)을 유발하며, acct(2) 호출 시 이 버그가 트리거될 수 있음.
💡 쉬운 설명
Linux 커널의 SCTP 네트워크 설정 부분에서 메모리 접근 오류가 발생하여 시스템이 중단될 수 있습니다. 프로세스가 종료되는 특정 상황에서 커널 패닉이 발생합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
sctp: sysctl: rto_min/max: avoid using current->nsproxy
As mentioned in a previous commit of this series, using the 'net'
structure via 'current' is not recommended for different reasons:
- Inconsistency: getting info from the reader's/writer's netns vs only
from the opener's netns.
- current->nsproxy can be NULL in some cases, resulting in an 'Oops'
(null-ptr-deref), e.g. when the current task is exiting, as spotted by
syzbot [1] using acct(2).
The 'net' structure can be obtained from the table->data using
container_of().
Note that table->data could also be used directly, as this is the only
member needed from the 'net' structure, but that would increase the size
of this fix, to use '*data' everywhere 'net->sctp.rto_min/max' is used.
📍 영향받는 시스템
SCTP 지원하는 Linux 커널 (4.20 이후 버전, 정확한 영향 범위는 배포판별로 상이)
⚔️ 공격 벡터
로컬 공격자가 acct(2) 또는 sysctl 조작을 통해 SCTP 설정 접근 중 프로세스 종료를 유발하여 DoS 공격 수행
🛡️ 대응 방법
Linux 커널을 취약점 수정 패치가 적용된 버전으로 업데이트 (일반적으로 최신 stable 커널 버전)
🔧 검증 코드
현재 커널 버전을 확인하고 SCTP 모듈 활성화 여부를 확인하여 취약점 영향 범위 판단 (CONFIG_IP_SCTP=y 또는 m이면 영향받음)
uname -r | grep -oE '[0-9]+\.[0-9]+' && cat /boot/config-$(uname -r) 2>/dev/null | grep CONFIG_IP_SCTP