Linux 커널에서는 다음 취약점이 해결되었습니다. net/tls: tls_do_encryption의 -EBUSY 오류 경로에서 use-after-free 수정 커밋에 의해 도입된 tls_do_encryption()의 -EBUSY 처리 859054147318("net: tls: 암호화 요청 백로깅 처리") encrypt_pending의 이중 정리로 인한 use-after-free 및 분산 목록 항목. crypto_aead_encrypt()가 -EBUSY를 반환하면 요청이 대기열에 추가됩니다. 암호화된 백로그와 비동기 콜백 tls_encrypt_done()은 다음과 같습니다.
Linux 커널에서는 다음 취약점이 해결되었습니다.
net/tls: tls_do_encryption의 -EBUSY 오류 경로에서 use-after-free 수정
커밋에 의해 도입된 tls_do_encryption()의 -EBUSY 처리 859054147318("net: tls: 암호화 요청 백로깅 처리") encrypt_pending의 이중 정리로 인한 use-after-free 및 분산 목록 항목.
crypto_aead_encrypt()가 -EBUSY를 반환하면 요청이 대기열에 추가됩니다. 암호화된 백로그와 비동기 콜백 tls_encrypt_done()은 다음과 같습니다. 완료 시 호출됩니다. 해당 콜백은 무조건 복원합니다. 분산 목록 항목(sge->offset, sge->length) 및 감소 ctx->encrypt_pending. 그러나 tls_encrypt_async_wait()가 오류가 발생하면 tls_do_encryption()의 동기 오류 경로가 다음을 수행합니다. 다시 동일한 정리를 수행하고 encrypt_pending을 두 배로 줄입니다. 분산 목록을 이중 복원합니다.
이중 감소는 encrypt_pending 센티널(초기화됨)을 손상시킵니다. 1)로 tls_encrypt_async_wait()가 영구적으로 대기를 건너뛰도록 합니다. 보류 중인 비동기 콜백. 후속 sendmsg는 다음을 해제할 수 있습니다. 암호화된 콜백이 아직 진행 중인 동안 bpf_exec_tx_verdict()를 통한 tls_rec 보류 중이며 콜백이 실행될 때 use-after-free가 발생합니다. 해방된 기록.
-EBUSY async가 실행될 때 동기 정리를 건너뛰어 이 문제를 해결하세요. 콜백이 이미 처리되었으므로 wait는 오류를 반환합니다. encrypt_pending 및 sge 복원.
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도 | 98.00 |
| 악용 신호(추가 악용신호 없음) | ×1.00 |
| VPI | 98.00 |
VPI 공식 vpi-v1 기준