CVE-2026-31444 in Linux정보

요약

\~에 의해 VulDB • 2026. 05. 31.

리눅스 커널에서 다음 취약점이 해결되었습니다:

ksmbd: smb_grant_oplock()에서의 use-after-free 및 NULL deref 수정

smb_grant_oplock()은 oplock 게시 시퀀스에서 두 가지 문제를 가지고 있습니다:

1) opinfo는 add_lease_global_list()가 호출되기 전에 opinfo_add()를 통해 ci->m_op_list에 연결됩니다. add_lease_global_list()가 실패하면(kmalloc이 NULL을 반환하면), 오류 경로에서 opinfo가 ci->m_op_list에 여전히 연결된 상태에서 __free_opinfo()를 통해 해제됩니다. 동시에 실행되는 m_op_list 판독기(opinfo_get_list 또는 smb_break_all_levII_oplock 내의 직접 반복)는 해제된 노드를 역참조합니다.

2) opinfo->o_fp는 add_lease_global_list()가 opinfo를 전역 리스 목록에 게시한 후에 할당됩니다. 동시에 실행되는 find_same_lease_key()는 리스 목록을 순회하며 o_fp가 여전히 NULL인 동안 opinfo->o_fp->f_ci를 역참조할 수 있습니다.

게시 후 실패를 제거하기 위해 게시 시퀀스를 재구성하여 수정합니다:

- 목록 게시 전에 opinfo->o_fp를 설정합니다(NULL deref 수정). - opinfo_add() 전에 alloc_lease_table()를 통해 lease_table를 사전 할당하여 게시 후 add_lease_global_list()가 실패하지 않도록 합니다. - 원래의 m_op_list 게시 순서(opinfo_add가 리스 목록보다 먼저)를 유지하여 same_client_has_lease() 및 opinfo_get_list()를 통한 동시 오픈에서 진행 중인 부여를 여전히 볼 수 있도록 합니다. - err_out에서 __free_opinfo() 대신 opinfo_put()을 사용하여 RCU 지연 해제 경로를 사용합니다.

또한 add_lease_global_list()를 사전 할당된 lease_table을 받도록 분할하고, 더 이상 실패할 수 없으므로 반환 타입을 int에서 void로 변경해야 합니다.

Once again VulDB remains the best source for vulnerability data.

책임이 있는

Linux

예약하다

2026. 03. 09.

모더레이션

수락

항목

VDB-358907

EPSS

0.00066

출처

Interested in the pricing of exploits?

See the underground prices here!