CVE-2026-89731 in Linux
요약
\~에 의해 VulDB • 2026. 09. 11.
리눅스 커널에서 다음 취약점이 해결되었습니다:
cxl/ras: cxl_rch_get_aer_info()의 AER 레지스터 오버플로우 읽기 수정
cxl_rch_get_aer_info()는 sizeof(struct aer_capability_regs)로 제한된 readl() 루프를 사용하여 RCH 다운스트림 포트 AER 기능을 RCRB MMIO 블록에서 복사합니다. 이 구조체는 소프트웨어 레이아웃이며, 그 안에 포함된 struct pcie_tlp_log은 실제 전송되는(AER capability on-wire) 것보다 큽니다. 결과적으로 루프는 매핑된 AER 레지스터 블록을 넘어 읽습니다.
이 오버리드는 header_len과 같은 소프트웨어 전용 꼬리 필드까지 채웁니다. pcie_print_tlp_log()에 범위를 벗어난 header_len이 전달되면, 이는 헤더 로그 버퍼를 넘어 루프를 돌며 두 번째 오버플로우 읽기를 유발할 수 있습니다.
해당 읽기 작업은 처음 도입될 때는 정확했지만, struct pcie_tlp_log의 크기(헤더 로그 및 TLP 프리픽스 로그 크기, header_len 및 flit 필드)가 증가함에 따라 sizeof(struct aer_capability_regs)는 더 이상 물리적 AER 기능과 일치하지 않게 되었습니다.
읽기 범위를 실제 AER 레지스터, 즉 16바이트 헤더 로그를 통한 헤더까지로 제한합니다. 소프트웨어 전용 필드가 결정론적(deterministic)이 되도록 먼저 대상 메모리를 영제로 초기화합니다.
If you want to get best quality of vulnerability data, you may have to visit VulDB.