🇰🇷 한글 설명
Linux 커널의 stmmac 네트워크 드라이버에서 PTP(Precision Time Protocol) 잠금 장치인 ptp_lock이 인터페이스가 활성화될 때만 초기화되는 취약점이 발견되었습니다. 이로 인해 인터페이스가 비활성 상태일 때 특정 설정(TAPRIO)을 시도하면 초기화되지 않은 rwlock을 사용하게 되어 정의되지 않은 동작이 발생할 수 있습니다.
💡 쉬운 설명
네트워크 장치가 꺼져 있는 상태에서 특정 시간 설정 기능을 사용하려고 하면, 컴퓨터 내부의 안전 장치가 준비되지 않아 시스템이 오작동할 수 있는 문제입니다. 이를 해결하기 위해 장치가 켜지기 전부터 안전 장치를 미리 준비하도록 수정되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: stmmac: initialize ptp_lock at probe time
priv->ptp_lock is only initialized in stmmac_ptp_register(), which runs
during __stmmac_open(). However, the lock is also used while the
interface is down and has never been opened: tc_taprio_configure()
invokes the PTP gettime64() callback to compute the EST base time when
offloading a TAPRIO schedule, and stmmac_get_time() takes
priv->ptp_lock. Using an uninitialized rwlock is undefined behaviour.
Move the rwlock_init() to __stmmac_dvr_probe(), together with the other
private locks, so that ptp_lock is always valid regardless of the
interface state.
📍 영향받는 시스템
Linux kernel (stmmac driver 사용 시스템)
⚔️ 공격 벡터
로컬 권한을 가진 사용자가 네트워크 인터페이스가 비활성화된 상태에서 TAPRIO 스케줄 오프로딩 설정을 시도하여 시스템 불안정 유도
🛡️ 대응 방법
ptp_lock 초기화 로직이 포함된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 패치가 적용된 최신 버전인지 확인