🇰🇷 한글 설명
Linux 커널의 cxgb4/ch_ktls 드라이버에서 tid_list 항목을 삭제할 때 softirq를 비활성화하지 않아 발생하는 잠금 교착 문제입니다. chcr_ktls_dev_del() 및 chcr_ktls_dev_add() 오류 경로에서 xa_erase()를 사용하던 것을 xa_erase_bh()로 변경하여 삽입 경로와 동일하게 맞췄습니다. CVSS 점수는 아직 부여되지 않았습니다.
💡 쉬운 설명
정리 작업 중에 다른 네트워크 연결의 처리가 끼어들면 같은 잠금을 기다리며 시스템이 멈출 수 있는 문제입니다. 잠금 처리 방식을 맞춰 이 충돌을 막도록 수정되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
cxgb4/ch_ktls: disable softirqs around tid_list erases
chcr_ktls_cpl_act_open_rpl() inserts into tid_list from the receive path
using xa_insert_bh(). The array is shared by the adapter's connections
and initialized with XA_FLAGS_LOCK_BH. However, chcr_ktls_dev_del() and
the chcr_ktls_dev_add() error path use xa_erase(), which takes the XArray
lock without disabling softirqs.
When cleanup runs with softirqs enabled, a receive softirq for another
connection on the same CPU can interrupt the erase and spin on the lock
held by the interrupted task. Use xa_erase_bh() at both sites to match
the insertion path.
📍 영향받는 시스템
cxgb4 드라이버와 ch_ktls(Chelsio 크립토/TLS 오프로드)를 사용하는 Linux 커널 (수정 커밋 이전 버전, 정확한 버전 범위는 확인 필요)
⚔️ 공격 벡터
공개된 정보상 원격 공격 경로는 명시되지 않았으며, 커널 내부 잠금 경합으로 인한 교착/서비스 중단 가능성이 있습니다.
🛡️ 대응 방법
수정이 포함된 최신 Linux 커널 버전으로 업데이트하거나 배포판의 보안 패치를 적용하십시오.
🔧 검증 코드
커널 버전을 수정 패치가 포함된 버전과 비교하고, cxgb4/chcr 모듈이 로드되지 않았다면 이 취약점의 영향을 받지 않습니다.
uname -r && (lsmod | grep -E 'cxgb4|chcr' || echo 'cxgb4/chcr 모듈 미로드')