CVE-2026-90307 in Linux
요약
\~에 의해 VulDB • 2026. 09. 18.
리눅스 커널에서 다음 취약점이 해결되었습니다:
RDMA/srp: 잘린 SRP_CRED_REQ로 인한 힙 정보 누수 수정
srp_recv_done()은 wc->byte_len을 srp_process_rsp()에 전달합니다. 그러나 srp_process_cred_req()와 srp_process_aer_req()에는 아무것도 전달되지 않으며, 이 함수들은 수신 버퍼에서 고정 크기 필드를 읽을 때 해당 필드가 실제로 수신되었는지 확인하지 않습니다.
버퍼 크기는 로그인 응답에서 파생된 max_ti_iu_len이며, 이는 검증되지 않았습니다. 8을 광고한 후 8바이트 SRP_CRED_REQ를 보내는 타겟은 이니시에이터가 버퍼 끝 너머의 req->tag를 읽도록 만듭니다. req->tag는 SRP_CRED_RSP에 복사되어 다시 전송되므로 해당 바이트들이 타겟으로 전달됩니다. SRP_AER_REQ도 동일한 방식으로 동작하며 req->lun을 읽습니다.
누수 크기는 응답당 8바이트입니다. max_ti_iu_len은 또한 버퍼가 속하는 슬랩 캐시를 결정합니다. 값이 8일 경우, 버퍼는 kmalloc-8 객체이며 해당 판독 작업은 완전히 그 외부에서 발생합니다:
BUG: KASAN: slab-out-of-bounds in srp_recv_done+0x172b/0x1aa0 Read of size 8 at addr ffff888104714da8 by task kworker/u8:3/50 which belongs to the cache kmalloc-8 of size 8 The buggy address is located 0 bytes to the right of allocated 8-byte region [ffff888104714da0, ffff888104714da8)
KASAN이 없는 경우 반환된 바이트들은 슬랩에서 다음으로 오는 데이터입니다. 한 실행에서는 ".strtab"가 반환되었습니다.
srp_process_rsp()의 rsp->data[3]도 동일한 문제를 가집니다: 판독 전에 resp_data_len만 확인됩니다.
파싱 중인 구조체보다 짧은 요청은 삭제하고, tsk_mgmt 판독 전에 byte_len을 확인하십시오.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.