CVE-2026-74689 in Linux
요약
\~에 의해 VulDB • 2026. 08. 23.
리눅스 커널에서 다음 취약점이 해결되었습니다:
net/atm: vcc_setsockopt()의 slab-out-of-bounds 읽기 오류 수정
vcc_setsockopt()에는 비효율적인 optlen 검사가 포함되어 있었습니다: if (__SO_LEVEL_MATCH(optname, level) && optlen != __SO_SIZE(optname)) return -EINVAL;
__SO_LEVEL_MATCH(optname, level)가 false로 평가되는 경우(예: 호출자가 일치하지 않는 level을 전달한 경우), 길이 검사인 optlen != __SO_SIZE(optname)는 단락(short-circuit)되어 우회되었습니다. 이후 실행은 switch(optname)로 이어져 copy_from_sockptr()를 호출했는데, 이는 optval에 충분한 공간이 있다고 가정하는 것이었습니다.
또한 level이 일치하더라도 cgroup BPF의 setsockopt 필터가 진입 후 optlen을 축소시킬 수 있습니다. 커널 포인터에 대한 copy_from_sockptr()는 memcpy()를 사용하므로, optlen이 예상되는 구조체 크기보다 작으면 KASAN slab-out-of-bounds 읽기 오류가 발생합니다.
이를 해결하기 위해 copy_safe_from_sockptr()를 사용하여 복사 전에 optlen이 최소한 예상 크기와 일치하는지 무조건적으로 검증합니다. 또한 64비트 시스템에서 SO_SETCLP가 sizeof(int) ABI 인코딩과 일치하도록 로컬 'value' 변수의 타입을 'unsigned long'에서 'int'로 변경했습니다.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.