CVE-2026-80712 in Linux
요약
\~에 의해 VulDB • 2026. 08. 28.
리눅스 커널에서 다음 취약점이 해결되었습니다:
spi: spi-qpic-snand: SET_FEATURE 실행 전에 기능 값을 기록하십시오
qcom_spi_send_cmdaddr()는 NAND_FLASH_CMD/NAND_EXEC_CMD를 프로그래밍하고 설명자(descriptors)를 제출하여 컨트롤러가 명령을 즉시 실행하도록 합니다. SPINAND_SET_FEATURE의 경우, 작성할 값은 qcom_spi_io_op()에 의해 두 번째 제출에서 나중에 NAND_FLASH_FEATURES에만 배치되므로, 칩에는 이전 작업에서 레지스터가 우연히 보유하고 있던 값으로 프로그래밍되며, 의도된 값은 *다음* SET_FEATURE에서만 적용됩니다.
TP-Link Archer AX55 v1(IPQ5018, ESMT F50L1G41LB)에서 측정한 결과: 구성 레지스터(0xb0)에 0x40을 작성하면 칩이 0x00으로 남아 있고, 후속 0x00 작성은 이를 0x40으로 만듭니다. 모든 작성이 한 작업 늦게 적용됩니다.
이 문제는 ESMT 칩용 OTP 엔트리와 함께 SPI-NAND OTP 지원이 v6.18에 추가될 때까지 발견되지 않았습니다. spinand_otp_rw()는 OTP 모드를 활성화하고, 읽고, 다시 비활성화하며, mtd_otp_nvmem_add()는 MTD 등록 중에 이를 수행합니다. 오프 바이 원(off-by-one) 오류로 인해 "비활성화" 작성이 실제로 이전에 요청된 값을 적용하므로 CFG_OTP_ENABLE이 설정됩니다: 칩은 OTP 모드에 머물며, 후속 배열 읽기마다 OTP 영역을 반환하고(UBI는 빈 장치를 보고함), 모든 작성은 OTP 영역이 쓰기 보호되어 있으므로 -EIO로 실패합니다. 이 보드에서는 플래시가 완전히 사용 불가능해지고 기기가 부팅되지 않게 됩니다.
NAND_EXEC_CMD 전에 동일한 트랜잭션의 일부로 NAND_FLASH_FEATURES에 기능 값을 기록하십시오. 이와 함께 작업에서 실제로 전달하는 바이트만 복사하십시오(이전 코드는 1바이트 버퍼(spinand->scratchbuf) 위에서 4바이트 포인터를 역참조했습니다).
이 패치와 플래시 내용을 읽으면 벤더 펌웨어 하에서 동일한 보드의 알려진 양호한 덤프(md5-검증된 파티션 간)와 비트 단위로 동일하며, 작성이 정상적으로 작동합니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.