CVE Catalog

CVE-2026-31427

MediumCVSS 5.5
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.12%

2th percentile - higher than 2% of all known CVEs

Summary

In the Linux kernel, the netfilter nf_conntrack_sip module has a vulnerability due to the use of an uninitialized rtp_addr variable in the process_sdp function. When the SDP body lacks active media descriptions, the variable remains uninitialized, causing SIP session addresses to be overwritten with arbitrary stack data.

Risk Assessment

An attacker could exploit this vulnerability to disrupt SIP sessions, redirecting traffic to incorrect IP addresses (e.g., 0.0.0.0) or potentially to attacker-controlled addresses, leading to data leakage or man-in-the-middle attacks.

Recommendation

Immediately update the Linux kernel to a version containing the fix (commit 0f3a1c2e5b7a). If an update is not possible, temporarily disable the nf_conntrack_sip module or restrict its use to trusted networks.

Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: netfilter: nf_conntrack_sip: fix use of uninitialized rtp_addr in process_sdp process_sdp() declares union nf_inet_addr rtp_addr on the stack and passes it to the nf_nat_sip sdp_session hook after walking the SDP media descriptions. However rtp_addr is only initialized inside the media loop when a recognized media type with a non-zero port is found. If the SDP body contains no m= lines, only inactive media sections (m=audio 0 ...) or only unrecognized media types, rtp_addr is never assigned. Despite that, the function still calls hooks->sdp_session() with &rtp_addr, causing nf_nat_sdp_session() to format the stale stack value as an IP address and rewrite the SDP session owner and connection lines with it. With CONFIG_INIT_STACK_ALL_ZERO (default on most distributions) this results in the session-level o= and c= addresses being rewritten to 0.0.0.0 for inactive SDP sessions. Without stack auto-init the rewritten address is whatever happened to be on the stack. Fix this by pre-initializing rtp_addr from the session-level connection address (caddr) when available, and tracking via a have_rtp_addr flag whether any valid address was established. Skip the sdp_session hook entirely when no valid address exists.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS