🇰🇷 한글 설명
리눅스 커널의 Binder 드라이버에서 TF_UPDATE_TXN 트랜잭션이 기존 비동기 트랜잭션을 대체할 때, 실패 플래그(is_failure)가 잘못 설정되는 취약점이 발견되었습니다. 이로 인해 전달되지 않은 트랜잭션의 정리 과정에서 잘못된 파일 디스크립터(FD)가 닫힐 수 있는 문제가 있습니다.
💡 쉬운 설명
데이터를 전달하기 전에 취소된 작업이 발생했을 때, 시스템이 이를 '실패'로 인식하지 못해 엉뚱한 파일을 닫아버리는 오류입니다. 이로 인해 시스템의 중요한 파일이나 자원이 예기치 않게 종료될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
binder: fix is_failure flag for superseded transaction cleanup
When a TF_UPDATE_TXN transaction supersedes a pending async transaction,
binder_release_entire_buffer() is called with is_failure=false. Since the
superseded transaction was never delivered, binder_apply_fd_fixups() was
never called and no fds were installed in the target process.
With is_failure=false, the BINDER_TYPE_FDA cleanup handler interprets
stale buffer contents as installed fd numbers and passes them to
binder_deferred_fd_close(), closing unrelated file descriptors.
Pass is_failure=true since the transaction was never delivered to the
target, matching the semantics of all other undelivered-transaction
cleanup paths.
📍 영향받는 시스템
Linux Kernel (Binder driver 사용 시스템)
⚔️ 공격 벡터
특정 Binder 트랜잭션 시퀀스를 조작하여 의도치 않은 파일 디스크립터를 닫도록 유도
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인