Linux 커널에서는 다음 취약점이 해결되었습니다. netfs: 스트림->하위 요청에 잠금 없이 액세스할 때 누락된 장벽 수정 스트림->하위 요청에 첨부된 하위 요청 목록은 다음 없이 액세스됩니다. netfs_collect_read_results() 및 netfs_collect_write_results()에 의한 잠금, 그런 다음 그들은 다음을 얻은 후 장벽을 거치지 않고 하위 요청-> 플래그에 액세스합니다. 목록의 subreq 포인터. 이와 관련하여, 목록을 구성할 때 어떤 종류의 쓰기 장벽도 사용하지 마세요.
Linux 커널에서는 다음 취약점이 해결되었습니다.
netfs: 스트림->하위 요청에 잠금 없이 액세스할 때 누락된 장벽 수정
스트림->하위 요청에 첨부된 하위 요청 목록은 다음 없이 액세스됩니다. netfs_collect_read_results() 및 netfs_collect_write_results()에 의한 잠금, 그런 다음 그들은 다음을 얻은 후 장벽을 거치지 않고 하위 요청-> 플래그에 액세스합니다. 목록의 subreq 포인터. 이와 관련하여, 목록을 작성하기 위해 목록을 구성할 때 어떤 종류의 쓰기 장벽도 사용하지 마세요. 다음과 같은 경우 NETFS_SREQ_IN_PROGRESS 플래그가 먼저 설정된 것으로 인식되는지 확인하세요. 잠금이 사용되지 않습니다.
다음 방법으로 이 문제를 해결하세요.
(1) 릴리스 배리어를 사용하는 새로운 list_add_tail_release() 함수를 추가합니다. 포인터를 목록의 새 구성원으로 설정합니다.
(2) 다음을 사용하는 새로운 list_first_entry_or_null_acquire() 함수를 추가합니다. 목록의 첫 번째 멤버에 대한 포인터를 읽기 위해 장벽을 획득합니다(또는 NULL을 반환합니다).
(3) ->하위 요청에 하위 요청을 추가할 때 list_add_tail_release()를 사용합니다.
(4) 처음 접근할 때 list_first_entry_or_null_acquire()를 사용하세요. 목록 앞(항목이 제거되면 새 항목에 대한 포인터 전면 iterm은 동일한 잠금 하에서 얻습니다).
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도 | 98.00 |
| 악용 신호(추가 악용신호 없음) | ×1.00 |
| VPI | 98.00 |
VPI 공식 vpi-v1 기준