🇰🇷 한글 설명
리눅스 커널의 fwctl 구성 요소 중 pds 드라이버에서 RPC 입력 크기를 검증하기 전에 데이터를 먼저 파싱하는 취약점이 발견되었습니다. 입력 버퍼의 크기가 할당된 크기보다 작을 경우, pds_fwctl이 할당된 범위를 벗어나 메모리를 읽는 버퍼 오버리드(Out-of-bounds read)가 발생할 수 있습니다.
💡 쉬운 설명
프로그램이 데이터를 읽기 전에 데이터의 크기가 충분한지 확인하지 않아 발생하는 문제입니다. 이로 인해 시스템이 허용되지 않은 메모리 영역을 읽어 들여 오류가 발생하거나 정보가 유출될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
fwctl: pds: Validate RPC input size before parsing
The fwctl core allocates the device-specific RPC input buffer with
fwctl_rpc.in_len and passes that buffer to the driver callback.
pdsfc_fw_rpc() casts the buffer to struct fwctl_rpc_pds and then calls
pdsfc_validate_rpc(), which reads fields from that structure before
checking that the input buffer is large enough to contain it. A short
in_len can make pds_fwctl read beyond the allocation.
Reject pds RPC buffers that are smaller than struct fwctl_rpc_pds before
parsing any pds-specific fields.
📍 영향받는 시스템
pds 드라이버를 사용하는 리눅스 커널 버전
⚔️ 공격 벡터
조작된 크기의 RPC 입력 데이터를 fwctl을 통해 전달하여 메모리 경계를 초과하여 읽도록 유도
🛡️ 대응 방법
pds 전용 RPC 버퍼를 파싱하기 전에 입력 크기가 구조체 크기보다 작은지 검증하도록 커널 패치 적용
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 수정된 최신 보안 패치 버전인지 확인합니다.