🇰🇷 한글 설명
Linux 커널의 igc 드라이버에서 PTM(Precision Time Measurement) 사이클 트리거 로직 오류로 인해 발생하는 취약점입니다. PTM 상태 비트가 적절히 초기화되지 않아 PTM 동작의 신뢰성이 떨어지거나, 시스템 충돌 시 kdump 커널 로딩 과정에서 igc_probe() 함수가 중단(hang)되는 문제가 발생할 수 있습니다.
💡 쉬운 설명
네트워크 카드의 정밀 시간 측정 기능이 제대로 작동하지 않거나, 시스템 오류 발생 시 복구 과정에서 컴퓨터가 멈출 수 있는 문제입니다. 시간 동기화가 중요한 환경에서 데이터의 정확성을 떨어뜨릴 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
igc: fix PTM cycle trigger logic
Writing to clear the PTM status 'valid' bit while the PTM cycle is
triggered results in unreliable PTM operation. To fix this, clear the
PTM 'trigger' and status after each PTM transaction.
The issue can be reproduced with the following:
$ sudo phc2sys -R 1000 -O 0 -i tsn0 -m
Note: 1000 Hz (-R 1000) is unrealistically large, but provides a way to
quickly reproduce the issue.
PHC2SYS exits with:
"ioctl PTP_OFFSET_PRECISE: Connection timed out" when the PTM transaction
fails
This patch also fixes a hang in igc_probe() when loading the igc
driver in the kdump kernel on systems supporting PTM.
The igc driver running in the base kernel enables PTM trigger in
igc_probe(). Therefore the driver is always in PTM trigger mode,
except in brief periods when manually triggering a PTM cycle.
When a crash occurs, the NIC is reset while PTM trigger is enabled.
Due to a hardware problem, the NIC is subsequently in a bad busmaster
state and doesn't handle register reads/writes. When running
igc_probe() in the kdump kernel, the first register access to a NIC
register hangs driver probing and ultimately breaks kdump.
With this patch, igc has PTM trigger disabled most of the time,
and the trigger is only enabled for very brief (10 - 100 us) periods
when manually triggering a PTM cycle. Chances that a crash occurs
during a PTM trigger are not 0, but extremely reduced.
📍 영향받는 시스템
PTM(Precision Time Measurement)을 지원하는 igc 드라이버를 사용하는 Linux 커널 시스템
⚔️ 공격 벡터
직접적인 원격 공격보다는 시스템 충돌(Crash) 상황에서 kdump 로딩 시 발생하는 서비스 거부(DoS) 형태의 영향이 큼
🛡️ 대응 방법
PTM 트리거 로직이 수정된 최신 Linux 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 패치가 적용된 최신 보안 업데이트 버전인지 확인