🇰🇷 한글 설명
Linux 커널의 usb gadget f_fs 모듈 내 ffs_dmabuf_transfer() 함수에서 오류 발생 시 잘못된 메모리 해제 방식이 발견되었습니다. 초기화되지 않은 dma_fence 객체에 대해 dma_fence_put()을 호출하여 정의되지 않은 동작을 유발하는 결함이 수정되었습니다.
💡 쉬운 설명
컴퓨터 부품 간 데이터를 주고받는 과정에서 오류가 났을 때, 아직 준비되지 않은 메모리 관리 도구를 잘못 건드려 시스템이 오작동할 수 있는 문제입니다. 이로 인해 시스템이 멈추거나 예상치 못한 동작이 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
usb: gadget: f_fs: Fix fence cleanup in ffs_dmabuf_transfer() error paths
The error paths for endpoint-disabled (ESHUTDOWN) and request-allocation
failure (ENOMEM) in ffs_dmabuf_transfer() jump to err_fence_put which
calls dma_fence_put() on the fence. However, at that point the fence has
only been kmalloc'd — dma_fence_init() has not been called yet, so the
refcount and the fence ops are uninitialized. Calling dma_fence_put() on
such an object leads to undefined behavior.
Use kfree() instead, since the fence is just a plain allocation at this
stage, and rename the label to err_fence_free to reflect the actual
cleanup action.
📍 영향받는 시스템
Linux kernel (usb gadget f_fs 모듈 사용 시스템)
⚔️ 공격 벡터
USB Gadget 기능을 사용하는 환경에서 특정 오류 상황(엔드포인트 비활성화 또는 메모리 할당 실패)을 유도하여 발생
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인