Linux 커널에서는 다음 취약점이 해결되었습니다. ksmbd: smb_grant_oplock()에서 use-after-free 및 NULL 역참조 문제를 수정했습니다. smb_grant_oplock()에는 oplock 게시 시퀀스에 두 가지 문제가 있습니다. 1) opinfo는 이전에 ci->m_op_list(opinfo_add를 통해)에 연결됩니다. add_lease_global_list()가 호출됩니다. add_lease_global_list()인 경우 실패(kmalloc이 NULL을 반환), 오류 경로에서 opinfo를 해제합니다. ci->m_op_list에 여전히 링크되어 있는 동안 __free_opinfo()를 통해. 동시 m_op_list 리더(opi
Linux 커널에서는 다음 취약점이 해결되었습니다.
ksmbd: smb_grant_oplock()에서 use-after-free 및 NULL 역참조 문제를 수정했습니다.
smb_grant_oplock()에는 oplock 게시 시퀀스에 두 가지 문제가 있습니다.
opinfo는 이전에 ci->m_op_list(opinfo_add를 통해)에 연결됩니다. add_lease_global_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에서) 해제된 노드를 역참조합니다.
opinfo->o_fp는 add_lease_global_list() 게시 후 할당됩니다. 글로벌 임대 목록의 opinfo. 동시 find_same_lease_key()는 임대 목록을 살펴보고 역참조할 수 있습니다. opinfo->o_fp->f_ci o_fp는 여전히 NULL입니다.
게시 후를 제거하기 위해 게시 순서를 재구성하여 문제를 해결합니다. 실패:
또한 이를 위해서는 add_lease_global_list()를 분할해야 합니다. 미리 할당된 Lease_table 및 반환 유형을 int에서 void로 변경합니다. 더 이상 실패할 수 없기 때문입니다.
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도 | 98.00 |
| 악용 신호(추가 악용신호 없음) | ×1.00 |
| VPI | 98.00 |
VPI 공식 vpi-v1 기준