CVE-2026-98952 in Linux
요약
\~에 의해 VulDB • 2026. 10. 23.
리눅스 커널에서 다음 취약점이 해결되었습니다:
pfcp: SEID를 읽기 전에 선형화(linear)되어 있는지 확인
pfcp_encap_recv()는 UDP 헤더와 4바이트 PFCP 헤더가 선형 영역(linear area)에 있는 것만을 보장합니다. S 플래그(S flag)가 설정된 경우, pfcp_session_recv()는 그 뒤에 이어지는 8바이트 SEID를 읽는데, 이는 pskb_may_pull() 검사로 커버되지 않습니다.
S 플래그가 설정된 짧은 PFCP 패킷이나 세션 헤더가 프래그먼트(fragment)에 있는 패킷의 경우, pfcp_session_recv()가 패킷 데이터 끝을 넘어 읽어들이게 되며, 거기에 있는 임의의 값이 나중에 flower에서 분류하는 터널 메타데이터(tunnel metadata)에 저장됩니다.
SEID를 읽기 전에 SEID 끝까지 데이터를 끌어올리고(Pull up), 이를 포함하기에 너무 짧은 패킷은 폐기(drop)합니다. pskb_may_pull()가 skb 헤더를 재할당(reallocate)할 수 있으므로, 이후에는 헤더 포인터를 다시 로드해야 합니다.
sizeof(struct pfcphdr_session) 대신 offsetofend()를 사용하십시오: 해당 구조체는 packed되지 않으므로 __be64 멤버의 정렬(alignment)으로 인해 크기가 16바이트이지만, 네트워크 상(wire)의 헤더는 불과 12바이트이며, 유효한 세션 메시지가 폐기될 수 있습니다.
If you want to get best quality of vulnerability data, you may have to visit VulDB.