🇰🇷 한글 설명
리눅스 커널의 bcache 구성 요소에서 발생한 취약점으로, 특정 상황에서 NULL 포인터 역참조가 발생할 수 있습니다. 이전 커밋에서 불필요한 NULL 체크를 제거하면서 c->root가 NULL인 상태로 함수가 호출될 수 있는 결함이 확인되었습니다.
💡 쉬운 설명
컴퓨터가 데이터를 저장하는 방식 중 하나인 bcache에서, 존재하지 않는 주소를 참조하려다 시스템이 멈추거나 오류가 발생할 수 있는 문제입니다. 이는 프로그램이 '값이 비어있을 수 있다'는 사실을 제대로 확인하지 못해 발생합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
bcache: revert replacing IS_ERR_OR_NULL with IS_ERR again
Commit 028ddcac477b ("bcache: Remove unnecessary NULL point check in
node allocations") leads a NULL pointer deference in cache_set_flush().
1721 if (!IS_ERR_OR_NULL(c->root))
1722 list_add(&c->root->list, &c->btree_cache);
>From the above code in cache_set_flush(), if previous registration code
fails before allocating c->root, it is possible c->root is NULL as what
it is initialized. __bch_btree_node_alloc() never returns NULL but
c->root is possible to be NULL at above line 1721.
This patch replaces IS_ERR() by IS_ERR_OR_NULL() to fix this.
📍 영향받는 시스템
bcache 기능을 사용하는 리눅스 커널 버전 (커밋 028ddcac477b가 적용된 버전)
⚔️ 공격 벡터
로컬 시스템에서 bcache 노드 할당 과정 중 오류를 유도하여 커널 패닉을 일으키는 방식
🛡️ 대응 방법
해당 취약점이 수정된 최신 리눅스 커널로 업데이트하거나 관련 패치를 적용하십시오.
🔧 검증 코드
출력된 커널 버전이 취약점이 수정된 패치 이후의 버전인지 확인하십시오.