🇰🇷 한글 설명
Linux 커널의 rust_binder 드라이버에서, 스레드가 BINDER_THREAD_EXIT로 종료될 때 대기 중인 노드 refcount 갱신이 유실되는 문제가 수정되었습니다. 이로 인해 노드 상태가 불일치하고 사용자 공간에 알림이 전달되지 않아 노드가 해제되지 않을 수 있었습니다. 수정은 종료 시 해당 작업을 프로세스 작업 큐로 옮겨 다른 스레드가 전달하도록 합니다.
💡 쉬운 설명
Android 등에서 프로그램 간 통신을 담당하는 커널 모듈이 스레드 종료 시 중요한 참조 카운트 알림을 잃어버리던 버그입니다. 이 결함으로 메모리 정리가 제대로 되지 않을 수 있어 수정되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
rust_binder: reschedule node refcount update on thread exit
When a thread exits via BINDER_THREAD_EXIT, its pending work items are
cancelled. If a thread exits while holding a pending node refcount
increment (e.g. pushed as deferred work to that thread), the refcount
increment was previously dropped because Node::cancel() and
NodeWrapper::cancel() were no-ops.
Dropping the refcount update leaves the node's delivery state and count
state desynchronized, and userspace will not receive the notification,
which can cause the node to never be freed from the process's nodes tree
when all external references are dropped.
Fix this by implementing DeliverToRead::cancel() for Node and NodeWrapper
to move the pending refcount update to the process's work queue on thread
exit so another thread can deliver it to userspace.
📍 영향받는 시스템
rust_binder 드라이버를 포함한 Linux 커널 (수정 커밋 이전 버전, 세부 버전 정보 미상)
⚔️ 공격 벡터
공개된 정보에 따르면 명확한 공격 경로는 확인되지 않았으며, 주로 안정성(리소스 미해제) 문제로 보임
🛡️ 대응 방법
배포판에서 제공하는 최신 Linux 커널 보안/업데이트 패키지를 설치하고 재부팅
🔧 검증 코드
출력된 커널 버전을 배포판 보안 공지 또는 해당 커널 패치 목록과 대조하여, 수정이 포함된 버전 이상인지 확인합니다 (CVSS 미지정, 정확한 수정 버전은 벤더 공지 참조).