CVE-2026-64504 in Linux정보

요약

\~에 의해 VulDB • 2026. 07. 26.

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

iio: accel: bmc150: 장치가 보고하는 FIFO 프레임 수를 제한(clamp)함

__bmc150_accel_fifo_flush() 함수는 하드웨어 FIFO에 대해 장치가 보고한 샘플 개수를 스택 상의 버퍼로 복사합니다.

u16 buffer[BMC150_ACCEL_FIFO_LENGTH * 3];

이 버퍼는 최대 BMC150_ACCEL_FIFO_LENGTH(32)개의 샘플을 수용할 수 있도록 크기가 지정되어 있습니다. 프레임 수는 FIFO_STATUS 레지스터에서 읽히며 유효한 7비트만 마스크됩니다:

count = val & 0x7F;

따라서 값은 0~127이 될 수 있습니다. 여기에 적용되는 유일한 다른 제한은 호출자가 제공한 선택적 샘플 할당량입니다:

if (samples && count > samples) count = samples;

이는 모든 데이터 플러시 경로(samples == 0)에서는 count를 제약하지 않으며, samples가 더 클 경우에도 count는 여전히 32보다 훨씬 큰 상태로 남습니다. 그런 다음 count개의 샘플이 buffer[]로 전송됩니다:

bmc150_accel_fifo_transfer(data, (u8 *)buffer, count);

bmc150_accel_fifo_transfer() 함수는 regmap을 통해 count * 6바이트를 읽으므로, 고장 났거나 악의적이거나 위조된 가속도계(또는 I2C/SPI 버스를 조작하는 공격자)가 최대 127개의 프레임을 보고할 경우, 크기가 192바이트인 버퍼에 최대 762바이트가 쓰여집니다. 이는 스택 캔리(canary), 저장된 레지스터 및 반환 주소를 손상시킬 수 있는 최대 570바이트의 스택 바깥 영역 쓰기(Out-of-bounds write) 취약점입니다.

이동(transferring) 전에 count를 buffer[]가 수용할 수 있도록 설계된 크기인 BMC150_ACCEL_FIFO_LENGTH로 제한합니다. 이는 bmc150_accel_set_watermark() 함수에서 이미 수행되고 있는 워터마크 제한과 동일한 방식입니다. 정상적인 플러시 요청은 최대 BMC150_ACCEL_FIFO_LENGTH개의 프레임만 보고하므로, 정품 장치에는 영향을 미치지 않습니다.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

책임이 있는

Linux

예약하다

2026. 07. 19.

모더레이션

수락

항목

VDB-383299

EPSS

0.00165

활동

낮음

출처

Might our Artificial Intelligence support you?

Check our Alexa App!