Description
In the Linux kernel, the following vulnerability has been resolved:

rds: drop incoming messages that cross network namespace boundaries

rds_find_bound() looks up the destination socket using a global
rhashtable keyed solely on (addr, port, scope_id). Network namespaces
are not part of the key, so a sender in netns A can deliver an incoming
message (inc) to a socket that lives in a different netns B.

When this happens, inc->i_conn points to an rds_connection whose c_net
is netns A, but the receiving rs lives in netns B. Once the child
process that created netns A exits, cleanup_net() calls
rds_loop_exit_net() -> rds_loop_kill_conns() -> rds_conn_destroy(),
freeing that connection. If the survivor socket in netns B still holds
the inc, any subsequent dereference of inc->i_conn is a use-after-free.

There are two dangerous sites in rds_clear_recv_queue():
1. inc->i_conn->c_lcong (offset 88 of freed rds_connection, size 200)
read via rds_recv_rcvbuf_delta() -- confirmed by KASAN.
2. inc->i_conn->c_trans->inc_free(inc) (function pointer at offset 80)
called via rds_inc_put() when the inc refcount reaches zero -- same
race window, potential call-through-freed-object primitive.

The bug is reachable from unprivileged user namespaces
(CLONE_NEWUSER + CLONE_NEWNET), available since Linux 3.8.

Fix this by rejecting the delivery in rds_recv_incoming() when the
socket returned by rds_find_bound() belongs to a different network
namespace than the connection that carried the message. Use the
existing rds_conn_net() / sock_net() helpers and net_eq() for the
comparison.
Published: 2026-08-10
Score: 7.8 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A use‑after‑free flaw exists in the Linux kernel RDS subsystem: when rds_find_bound() looks up a destination socket it ignores the network namespace, enabling a sender in one namespace to deliver a packet to a socket in another. If the sending process exits, the kernel frees the connection object, but the receiver still holds a reference to it. Dereferencing the stale pointer in rds_clear_recv_queue() can read freed data or call a freed function pointer, potentially leading to arbitrary code execution. The flaw is a use‑after‑free, identified as CWE‑825.

Affected Systems

All Linux kernel releases starting with version 3.8 carry the flaw until the repository fix that adds a network‑namespace check to rds_recv_incoming is applied. The affected code resides in the RDS layer, and the issue can be triggered from unprivileged user namespaces that are allowed to create new network namespaces (CLONE_NEWUSER + CLONE_NEWNET).

Risk and Exploitability

The kernel patch corrects the problem by rejecting cross‑namespace RDS messages, eliminating the use‑after‑free race. Because the vulnerability can be reached from user namespaces and the failure mode can lead to arbitrary code execution or denial of service, the risk is high. The KEV status for this flaw is not listed, and the EPSS score of < 1% indicates a low exploitation probability, while the CVSS score of 7.8 denotes a high severity; no current exploitation data is published, but the potential impact remains significant if an attacker can trigger the race.

Generated by OpenCVE AI on August 13, 2026 at 06:19 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the latest Linux kernel version that contains the RDS namespace‑check patch, or apply the upstream patch that drops cross‑namespace message delivery.
  • If the kernel cannot be updated immediately, restrict or disable creation of unprivileged user namespaces that can establish new network namespaces (e.g., block CLONE_NEWNET via sysctl or kernel configuration).
  • Monitor kernel logs for RDS‑related Oops or BUG notices.

Generated by OpenCVE AI on August 13, 2026 at 06:19 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4745-1 linux-6.12 security update
History

Wed, 19 Aug 2026 16:45:00 +0000


Thu, 13 Aug 2026 23:15:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.8, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H'}

cvssV3_1

{'score': 7.8, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}


Thu, 13 Aug 2026 04:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Wed, 12 Aug 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-825
References
Metrics threat_severity

None

cvssV3_1

{'score': 7.8, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H'}

threat_severity

Moderate


Mon, 10 Aug 2026 17:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Mon, 10 Aug 2026 12:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: rds: drop incoming messages that cross network namespace boundaries rds_find_bound() looks up the destination socket using a global rhashtable keyed solely on (addr, port, scope_id). Network namespaces are not part of the key, so a sender in netns A can deliver an incoming message (inc) to a socket that lives in a different netns B. When this happens, inc->i_conn points to an rds_connection whose c_net is netns A, but the receiving rs lives in netns B. Once the child process that created netns A exits, cleanup_net() calls rds_loop_exit_net() -> rds_loop_kill_conns() -> rds_conn_destroy(), freeing that connection. If the survivor socket in netns B still holds the inc, any subsequent dereference of inc->i_conn is a use-after-free. There are two dangerous sites in rds_clear_recv_queue(): 1. inc->i_conn->c_lcong (offset 88 of freed rds_connection, size 200) read via rds_recv_rcvbuf_delta() -- confirmed by KASAN. 2. inc->i_conn->c_trans->inc_free(inc) (function pointer at offset 80) called via rds_inc_put() when the inc refcount reaches zero -- same race window, potential call-through-freed-object primitive. The bug is reachable from unprivileged user namespaces (CLONE_NEWUSER + CLONE_NEWNET), available since Linux 3.8. Fix this by rejecting the delivery in rds_recv_incoming() when the socket returned by rds_find_bound() belongs to a different network namespace than the connection that carried the message. Use the existing rds_conn_net() / sock_net() helpers and net_eq() for the comparison.
Title rds: drop incoming messages that cross network namespace boundaries
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-19T16:33:33.100Z

Reserved: 2026-07-30T09:28:09.383Z

Link: CVE-2026-68335

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-10T13:20:23.863

Modified: 2026-08-19T17:20:43.490

Link: CVE-2026-68335

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-08-10T12:03:11Z

Links: CVE-2026-68335 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-13T06:30:05Z

Weaknesses
  • CWE-825

    Expired Pointer Dereference