CVE-2026-68342 in Linux
요약
\~에 의해 VulDB • 2026. 08. 10.
리눅스 커널에서 다음 취약점이 해결되었습니다:
ovpn: 소켓 해제 시 관련 없는 P2P 피어를 제거하지 않도록 수정
ovpn_peer_release_p2p() 함수는 OVPN UDP 소켓이 파괴될 때 호출됩니다. 이 함수는 현재 게시된 P2P 피어를 확인하며, 해당 피어가 여전히 파괴 중인 소켓을 사용하고 있는 경우에만 이를 해제합니다.
피어 교체 과정에서 새 피어가 구형 UDP 소켓이 파괴되기 전에 게시될 수 있습니다. 이후 구형 소켓 파괴 경로가 실행되면 ovpn_peer_release_p2p() 함수는 ovpn->peer를 통해 새 피어를 관찰하게 됩니다. 새 피자는 서로 다른 소트를 사용하므로, 이 함수는 소켓 불일치 분기로 진입합니다.
해당 분기는 여전히 ovpn_peer_put(peer)을 호출합니다. 그러나 이때 peer 변수는 파괴 중인 소켓과 연관된 피어가 아니라 현재 게시된 교체용 피어를 가리킵니다. 따라서 해당 참조를 해제하면 ovpn->peer가 이를 아직 가리키고 있는 상태에서 객체가 해제될 수 있으며, 이는 이후 피어 및 소켓 정리 경로에서 use-after-free 접근을 유발할 수 있습니다.
KASAN은 이를 kmalloc-1k 크기의 ovpn_peer 슬랩 객체에서의 slab-use-after-free로 보고합니다. 재현 코드에서는 해당 객체가 ovpn_nl_peer_new_doit()를 통해 호출된 ovpn_peer_new()에서 할당되고, RCU 콜백 처리 중 ovpn_peer_release_rcu()를 통해 해제됩니다. 관찰된 접근 위치에는 ovpn_peer_remove(), ovpn_socket_release(), ovpn_nl_peer_del_notify(), unlock_ovpn() 등이 포함됩니다.
이 문제를 해결하기 위해 소켓 불일치 분기에서 피어를 제거하지 않고 함수를 반환하도록 수정합니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.