CVE-2026-90012 in Linux정보

요약

\~에 의해 VulDB • 2026. 09. 16.

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

spi: 부분적 매핑 실패 시 DMA 매핑 소유권 수정

RX 매핑이 TX 매핑 성공 후에 실패하면, __spi_map_msg()는 TX를 언매핑하지만 tx_sg_mapped 플래그는 설정된 상태로 남습니다. 나중에 다른 전송에서 TX 매핑에 실패할 경우, 이전 전송을 위해 생성된 매appings가 활성화된 상태 그대로 유지됩니다.

두 가지 사례 모두 cur_{tx,rx}_dma_dev 변수가 아직 업데이트되지 않았습니다. 이는 해당 변수들이 모든 전송이 매핑된 후에야 할당되기 때문입니다. 이로 인해 이후 spi_unmap_msg() 호출 시 TX 매핑을 중복으로 언매핑하거나, NULL 또는 stale(구버전/유효하지 않은) 장치를 사용하여 이전 매appings를 해제할 수 있습니다. NULL 장치를 사용하면oops가 발생할 수 있습니다. 빈 SG 테이블은 NULL dereference를 방지하지 않습니다. 왜냐하면 dma_unmap_sg_attrs()는 엔트리 개수를 확인하기 전에 먼저 장치에 접근하기 때문입니다.

매핑 시작 전에 두 가지 매핑 장치를 모두 게시하고, 모든 실패 상황을 __spi_unmap_msg()를 통해 처리합니다. 이렇게 하면 매핑 플래그가 초기화되고 각 매핑이 생성된 장치를 사용하여 한 번만 해제됩니다.

루프 이전에 장치들을 게시하면 전송에 매핑이 필요 없는 경우에도 장치 정보가 갱신됩니다. 이 경우 어떤 매핑 플래지도 설정되지 않으므로, 기존 사용자들은 포인터를 매핑 소유자로 사용하지 않습니다.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

출처

Interested in the pricing of exploits?

See the underground prices here!