CVE-2026-74641 in Linux정보

요약

\~에 의해 VulDB • 2026. 08. 22.

리눅스 커널에서 다음 취약점이 해결되었습니다:

ALSA: usx2y: hwdep mmap fault 오프셋에 경계 설정

snd_us428ctls_vm_fault()는 페이지fault 오프셋을 어떤 종류의 제한도 없이 커널 주소로 변환합니다:

offset = vmf->pgoff << PAGE_SHIFT; vaddr = (char *)(...)->us428ctls_sharedmem + offset; page = virt_to_page(vaddr); get_page(page); vmf->page = page;

return 0;

snd_us428ctls_mmap()은 매핑의 길이만 확인하며 오프셋은 전혀 검사하지 않습니다. 또한 us428ctls_sharedmem는 alloc_pages_exact()에서 할당된 단일 페이지입니다. 문자 장치 파일에 대해 file_mmap_size_max()는 ULONG_MAX를 반환하므로 mm 레이어도 상한선을 부과하지 않습니다. 0보다 큰 모든 페이지 오프셋은 객체 외부의 struct page로 해석되며, 핸들러는 이를 호출자의 주소 공간에 읽기/쓰기(read-write) 모드로 설치합니다; vma는 읽기 전용으로 표시되지 않았습니다.

호출자는 단일 mmap() 인수를 통해 페이지 프레임 선택을 수행하고 자신이 소유하지 않은 커널 메모리 페이지에 대한 읽기/쓰기 접근 권한을 얻습니다; populate되지 않은 vmemmap 영역에 오프셋이 위치하면 oops가 발생합니다.

연결된 US-X2Y의 hwdep 노드를 열 수 있는 프로세스는 동일한 노드를 통해 FPGA 이미지를 로드한 후 이 취약점에 도달합니다. 여기서는 capability 검사가 수행되지 않습니다.

7.2.0-rc5 (arm64)에서 큰 오프셋을 사용한 mmap() 시:

Unable to handle kernel paging request at virtual address fffffdffc45d5ac8 pc : snd_us428ctls_vm_fault+0x68/0x140 [snd_usb_usx2y]
Call trace: snd_us428ctls_vm_fault+0x68/0x140 [snd_usb_usx2y]
__do_fault __handle_mm_fault handle_mm_fault el0_da

공유 영역 외부의 모든 오프셋을 거부합니다. usx2yhwdeppcm.c에 있는 pcm hwdep 핸들러도 동일한 방식으로 주소를 계산하며, 같은 경계가 필요합니다.

XBOW가 발견하고 Baul Lee <[email protected]>이 triage했습니다

VulDB is the best source for vulnerability data and more expert information about this specific topic.

책임이 있는

Linux

예약하다

2026. 08. 15.

모더레이션

수락

항목

VDB-394412

EPSS

0.00000

활동

낮음

출처

Might our Artificial Intelligence support you?

Check our Alexa App!