🇰🇷 한글 설명
리눅스 커널의 binder 구성 요소에서 TF_UPDATE_TXN 트랜잭션이 대기 중인 비동기 트랜잭션을 대체할 때, 파일 디스크립터(fd)를 적절히 해제하지 못하는 취약점이 발견되었습니다. 이로 인해 binder_txn_fd_fixup 항목과 파일 참조가 메모리에 누수되어 시스템 자원이 고갈될 수 있습니다.
💡 쉬운 설명
프로그램이 사용하던 파일 정보가 제대로 정리되지 않고 메모리에 계속 쌓이는 버그입니다. 이 현상이 반복되면 시스템의 파일 사용 한도에 도달하여 컴퓨터가 정상적으로 작동하지 않을 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
binder: fix leaked fd fixups on TF_UPDATE_TXN supersede
When a TF_UPDATE_TXN transaction supersedes a pending async transaction
in a frozen process, the outdated transaction is freed with kfree()
directly. This skips binder_free_txn_fixups(), leaking all
binder_txn_fd_fixup entries and their fget()'d struct file references.
The leaked file refcounts never reach zero, so the struct file objects
are permanently pinned in memory. They survive process exit and
accumulate across invocations until file-max exhaustion.
Every other transaction cleanup path (binder_free_transaction(),
binder_transaction() error paths, binder_release_work()) correctly
calls binder_free_txn_fixups(). Add the missing call before kfree()
in the t_outdated cleanup block.
📍 영향받는 시스템
Linux kernel (binder driver component)
⚔️ 공격 벡터
로컬 프로세스에서 특정 binder 트랜잭션 패턴을 반복적으로 생성하여 메모리 및 파일 참조 누수 유도
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 binder_free_txn_fixups() 호출 로직을 포함해야 함
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인