🇰🇷 한글 설명
Linux 커널의 IPA(IP Accelerator) 드라이버에서, 해시 테이블을 지원하지 않는 환경에서도 해시 테이블 메모리를 초기화하려고 시도하여 불필요한 트랜잭션이 생성되고 참조 카운트 언더플로우가 발생하는 문제입니다. 해당 패치는 해시를 지원하지 않을 때 해시 테이블 초기화를 차단하여 이 문제를 해결합니다.
💡 쉬운 설명
모뎀이 종료될 때 사용하지 않는 내부 작업이 잘못 만들어져 시스템 내부 카운터가 음수로 떨어지는 버그입니다. 이로 인해 종료 과정에서 불안정한 동작이 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: ipa: only reset hashed tables when supported
Last year, the code that manages GSI channel transactions switched
from using spinlock-protected linked lists to using indexes into the
ring buffer used for a channel. Recently, Google reported seeing
transaction reference count underflows occasionally during shutdown.
Doug Anderson found a way to reproduce the issue reliably, and
bisected the issue to the commit that eliminated the linked lists
and the lock. The root cause was ultimately determined to be
related to unused transactions being committed as part of the modem
shutdown cleanup activity. Unused transactions are not normally
expected (except in error cases).
The modem uses some ranges of IPA-resident memory, and whenever it
shuts down we zero those ranges. In ipa_filter_reset_table() a
transaction is allocated to zero modem filter table entries. If
hashing is not supported, hashed table memory should not be zeroed.
But currently nothing prevents that, and the result is an unused
transaction. Something similar occurs when we zero routing table
entries for the modem.
By preventing any attempt to clear hashed tables when hashing is not
supported, the reference count underflow is avoided in this case.
Note that there likely remains an issue with properly freeing unused
transactions (if they occur due to errors). This patch addresses
only the underflows that Google originally reported.
📍 영향받는 시스템
Linux 커널 IPA 드라이버를 사용하는 퀄컴 기반 모바일/임베디드 장치 (수정 커밋 이전 커널 버전)
⚔️ 공격 벡터
원격 공격 경로는 명확히 보고되지 않았으며, 모뎀 종료 시점에 발생하는 내부 참조 카운트 오류로 인한 안정성(크래시/비정상 동작) 문제에 가깝습니다.
🛡️ 대응 방법
Linux 커널을 해당 수정 패치가 포함된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전을 배포판 보안 공지 또는 커널 changelog와 대조하여 CVE-2023-54225 수정 패치가 포함되었는지 확인합니다.