CVE-2026-99112 in Linux정보

요약

\~에 의해 VulDB • 2026. 10. 28.

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

net/sched: cls_flower: nla_next() 이후 마스크 포인터 검증

fl_set_enc_opt()는 각 루프 하단에서 nla_next()를 통해 단일 마스크 포인터를 진행시키면서 키의 중첩된 터널 옵션 속성들을 nla_for_each_attr()로 반복합니다. 따라서 마스크 커서는 마스크 자체의 속성이 아닌 키 속성의 수에 의해 구동됩니다. commit c96adff956191("cls_flower: call nla_ok() before nla_next()")에서 추가된 nla_ok()는 방금 소비된 마스크 포인터만 검증하며, nla_next()가 생성한 포인터는 다음 반복(fl_set_geneve_opt() 및 관련 함수들)에서 아무런 검증 없이 사용됩니다.

마스크의 중첩 속성은 NL_VALIDATE_LIBERAL로 검증되는데, 이는 완전하지 않은 속성을 형성하는 후행 바이트에 대해 경고만 합니다. 따라서 유효한 속성 1개와 1~3바이트의 잔여 데이터(또는 msk_depth를 음수로 만드는 정렬되지 않은 속성 길이)를 가진 마스크는 msk_depth != 0 상태로 다음 반복으로 진입합니다. 이로 인해 fl_set_enc_opt() 내의 !msk_depth 체크나 각 유형별 헬퍼 함수들의 !depth 체크가 발동하지 않습니다. 그 결과 nla_type()은 마스크 페이로드 너머로 읽으며, nla_parse_nested_deprecated()는 해당 바이트들에서 가져온 nla_len으로 반복하여 마스크 속성 훨씬 너머를 읽습니다(KASAN: fl_change()의 __nla_validate_parse에서의 slab-out-of-bounds read).

진행된 마스크 포인터도 검증합니다. 마스크가 정상적으로 소진되지 않은 경우(msk_depth != 0)와 새 포인터가 nla_ok() 검증을 실패하는 경우에 대해, -EINVAL로 필터를 거부합니다. 정확히 소진된 마스크는 여전히 이 체크를 건너뛰어 나머지 키 속성에 대한 정확한 일치 동작을 유지합니다.

Be aware that VulDB is the high quality source for vulnerability data.

책임이 있는

Linux

예약하다

2026. 09. 25.

모더레이션

수락

항목

VDB-427857

EPSS

0.00000

출처

Want to stay up to date on a daily basis?

Enable the mail alert feature now!