🇰🇷 한글 설명
Linux 커널의 atlantic 네트워크 드라이버에서 서스펜드 시 이미 호출된 aq_nic_deinit()를 재개(resume) 시 다시 호출하여, S3 절전 복귀 시 시스템이 멈추는 문제가 해결되었습니다. 이 수정은 중복 호출을 제거하는 방식입니다.
💡 쉬운 설명
절전 모드에서 깨어날 때 일부 Aquantia 이더넷 드라이버가 같은 정리 작업을 두 번 수행해 장치가 응답하지 않게 됩니다. 이 패치는 중복 작업을 제거해 복귀 실패를 막습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: atlantic: remove aq_nic_deinit() when resume
aq_nic_deinit() has been called while suspending, so we don't have to call
it again on resume.
Actually, call it again leads to another hang issue when resuming from
S3.
Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992345] Call Trace:
Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992346] <TASK>
Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992348] aq_nic_deinit+0xb4/0xd0 [atlantic]
Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992356] aq_pm_thaw+0x7f/0x100 [atlantic]
Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992362] pci_pm_resume+0x5c/0x90
Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992366] ? pci_pm_thaw+0x80/0x80
Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992368] dpm_run_callback+0x4e/0x120
Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992371] device_resume+0xad/0x200
Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992373] async_resume+0x1e/0x40
Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992374] async_run_entry_fn+0x33/0x120
Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992377] process_one_work+0x220/0x3c0
Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992380] worker_thread+0x4d/0x3f0
Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992382] ? process_one_work+0x3c0/0x3c0
Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992384] kthread+0x12a/0x150
Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992386] ? set_kthread_struct+0x40/0x40
Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992387] ret_from_fork+0x22/0x30
Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992391] </TASK>
Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992392] ---[ end trace 1ec8c79604ed5e0d ]---
Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992394] PM: dpm_run_callback(): pci_pm_resume+0x0/0x90 returns -110
Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992397] atlantic 0000:02:00.0: PM: failed to resume async: error -110
📍 영향받는 시스템
atlantic(Aquantia AQtion) 네트워크 드라이버를 사용하는 수정 이전 Linux 커널 버전
⚔️ 공격 벡터
로컬 사용자가 직접 공격할 수 있는 vector는 없으며, 절전 복귀 시 장치 응답 중단(서비스 거부 성격)으로만 나타납니다.
🛡️ 대응 방법
배포판 제공 최신 Linux 커널 패키지로 업데이트 후 재부팅하세요.
🔧 검증 코드
출력된 커널 버전을 해당 배포판의 수정된 커널 버전과 비교하고, 배포판 보안 공지에서 CVE-2022-49624 수정 포함 여부를 확인하세요.
uname -r && (modinfo atlantic 2>/dev/null | grep -E '^(version|srcversion|filename)')