🇰🇷 한글 설명
Linux 커널 workqueue의 chained work 검사 과정에서 NULL 포인터 역참조 문제가 해결되었습니다. current_wq_worker()가 kworker를 반환하더라도 작업 함수를 실행 중이 아닐 수 있는데, 이때 current_pwq가 NULL이어서 커널 오류가 발생할 수 있었습니다. 이제 current_pwq를 먼저 확인하여 안전하게 false를 반환합니다.
💡 쉬운 설명
리눅스 커널 내부의 작업 대기열 관리 코드에서 잘못된 메모리 접근으로 시스템이 불안정해질 수 있는 결함이 수정되었습니다. 이 수정으로 드레이닝 또는 파괴 중인 작업 대기열에서도 커널이 안전하게 경고를 출력합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
workqueue: Fix NULL current_pwq deref in chained work check
current_wq_worker() only tells us that %current is a kworker. It does
not guarantee that the worker is currently executing a work item, as
worker->current_pwq is populated only while process_one_work() is running
the work function.
is_chained_work() can be reached while queueing on a draining or
destroying workqueue. If a kworker outside work-item execution reaches
that path, current_wq_worker() returns a worker but worker->current_pwq is
NULL, and the chained-work test can fault before it emits the intended
warning.
Guard the chained-work test with worker->current_pwq. A kworker without
current_pwq is not executing work on the target workqueue, so the helper
should return false and let the draining/destroying warning fire.
📍 영향받는 시스템
CVSS 미지정, 수정이 포함된 Linux 커널 버전 전반 (정확한 영향 범위는 해당 커널 배포판 공지 확인 필요)
⚔️ 공격 벡터
공개된 정보상 원격 공격 경로는 확인되지 않으며, 커널 내부 상태 조건에서 발생하는 NULL 역참조 결함으로 시스템 오류나 서비스 중단을 유발할 수 있음
🛡️ 대응 방법
배포판 제공 최신 커널 패키지로 업데이트 후 재부팅
🔧 검증 코드
출력된 커널 버전이 배포판 보안 공지에서 제시한 수정 버전 이상인지 비교하여 패치 적용 여부를 판단