CVE-2024-26827 in Linux정보

요약

\~에 의해 VulDB • 2026. 06. 05.

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

i2c: qcom-geni: I2C TRE 시퀀스 수정

GSI 모드에서의 i2c 읽기 작업 중, gpi(drivers/dma/qcom/gpi.c) 드라이버의 잘못된 TRE 시퀀스로 인해 기본적으로 비정상적인(TRE가 잘못됨) 경우 타임아웃이 발생합니다.

I2C 드라이버는 GO TRE를 생성하는 geni_i2c_gpi(I2C_WRITE) 함수와 DMA TRE를 생성하는 geni_i2c_gpi(I2C_READ) 함수를 가지고 있습니다. 따라서 DMA TRE 전에 GO TRE를 생성하려면, I2C GSI 모드 전송 함수인 geni_i2c_gpi_xfer() 내부에서 geni_i2c_gpi(I2C_WRITE) 호출을 geni_i2c_gpi(I2C_READ) 호출 앞에 배치해야 합니다.

TRE는 Transfer Ring Element의 약자로, 기본적으로 4개의 단어로 구성된 요소입니다. 여기에는 슬레이브 주소, 클럭 분주비(Divider), DMA 주소 값, 데이터 크기 등 모든 정보가 포함됩니다.

주로 3가지 유형의 TRE가 있습니다(CONFIG, GO 및 DMA tre): - CONFIG TRE: 전송 시작 전에 필요한 내부 레지스터 구성으로 구성됩니다. - DMA TRE: DDR/메모리 주소를 포함하며, DMA 디스크립터라고도 합니다. - GO TRE: 전송 방향, 슬레이브 ID, 지연 플래그(Delay flags), 전송 길이 등을 포함합니다.

I2C 드라이버는 프로토콜에 따라 각 TRE를 구성하기 위해 GPI 드라이버 API를 호출합니다.

읽기 작업의 경우 TRE 시퀀스는 다음과 같으며, 이는 하드웨어 프로그래밍 가이드와 일치하지 않습니다: - CONFIG tre - DMA tre - GO tre

Qualcomm 내부 하드웨어 프로그래밍 가이드에 따르면, RX 전용 전송의 경우 아래 순서로 TRE를 구성해야 합니다. - CONFIG tre - GO tre - DMA tre

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

출처

Do you know our Splunk app?

Download it now for free!