🇰🇷 한글 설명
리눅스 커널의 tracing 기능 중 hist_field_name() 함수에서 데이터 절단(truncation) 발생 시 NULL을 반환하는 취약점이 발견되었습니다. 이로 인해 해당 값을 참조하는 함수에서 NULL 포인터 역참조가 발생하여 시스템 충돌이나 커널 패닉을 유발할 수 있습니다.
💡 쉬운 설명
리눅스 시스템의 기록 기능을 사용할 때, 너무 긴 이름을 입력하면 프로그램이 길을 잃고 멈춰버리는 오류가 있습니다. 이는 시스템이 갑자기 꺼지거나 오류를 일으키는 원인이 될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
tracing: Avoid NULL return from hist_field_name() on truncation
hist_field_name() returns "" everywhere except the fully-qualified
VAR_REF/EXPR case, where snprintf() truncation returns NULL early
and bypasses the bottom NULL->"" guard. Callers don't expect NULL:
strcat(expr, hist_field_name(field, 0)) at trace_events_hist.c:1758
and the strcmp() in the sort-key match loop at :4804 both deref it.
system and event_name are bounded by MAX_EVENT_NAME_LEN, but the
field name on a VAR_REF is kstrdup'd from a histogram variable
name parsed out of the trigger string and has no length cap, so
a long enough var name in a fully qualified reference can reach
the truncation path.
Keep the length check but leave field_name as "" on overflow.
📍 영향받는 시스템
Linux Kernel (tracing 기능이 활성화된 버전)
⚔️ 공격 벡터
매우 긴 히스토그램 변수 이름을 포함한 트리거 문자열을 전달하여 커널의 NULL 포인터 역참조 유도
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 최신 패치 버전인지 확인합니다.