---
id: CVE-2026-31411
title: |-
  In the Linux kernel, the following vulnerability has been resolved:

  net: atm: fix crash due to unvalidated vcc pointer in sigd_send()

  Reproducer available at [1].

  The ATM send path (sendmsg -> vcc_sendmsg -> sigd_send) reads the vcc
  p…
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  net: atm: fix crash due to unvalidated vcc pointer in sigd_send()

  Reproducer available at [1].

  The ATM send path (sendmsg -> vcc_sendmsg -> sigd_send) reads the vcc
  p…
severity: medium
cvss: 5.5
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'
cwe:
  - CWE-476
  - CWE-822
vendor: linux
product: linux_kernel
affected:
  - 'linux_kernel >= 2.6.12.1, < 5.10.252'
  - 'linux_kernel >= 5.11, < 5.15.202'
  - 'linux_kernel >= 5.16, < 6.1.165'
  - 'linux_kernel >= 6.2, < 6.6.128'
  - 'linux_kernel >= 6.7, < 6.12.75'
  - 'linux_kernel >= 6.13, < 6.18.14'
  - 'linux_kernel >= 6.19, < 6.19.4'
  - linux_kernel = 2.6.12
  - linux_kernel = 7.0
patched:
  - linux_kernel 6.19.4
published: '2026-04-08'
updated: '2026-07-25'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-31411'
references:
  - url: 'https://git.kernel.org/stable/c/1c8bda3df028d5e54134077dcd09f46ca8cfceb5'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/21c303fec138c002f90ed33bce60e807d53072bb'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/3e1a8b00095246a9a2b46b57f6d471c6d3c00ed2'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/440c9a5fc477a8ee259d8bf669531250b8398651'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/69d3f9ee5489e6e8b66defcfa226e91d82393297'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/ae88a5d2f29b69819dc7b04086734439d074a643'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/c96549d07dfdd51aadf0722cfb40711574424840'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/e3f80666c2739296c3b69a127300455c43aa1067'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://cert-portal.siemens.com/productcert/html/ssa-019113.html'
    label: 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
  - url: 'https://cert-portal.siemens.com/productcert/html/ssa-082556.html'
    label: 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
  - url: >-
      https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-31411.json
  - url: 'https://access.redhat.com/security/cve/CVE-2026-31411'
  - url: 'https://bugzilla.redhat.com/show_bug.cgi?id=2456521'
  - url: 'https://www.cve.org/CVERecord?id=CVE-2026-31411'
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-31411'
  - url: >-
      https://lore.kernel.org/linux-cve-announce/2026040820-CVE-2026-31411-7ef9@gregkh/T
  - url: 'https://access.redhat.com/errata/RHSA-2026:59662'
  - url: 'https://access.redhat.com/errata/RHSA-2026:56573'
  - url: 'https://access.redhat.com/errata/RHSA-2026:56574'
  - url: 'https://access.redhat.com/errata/RHSA-2026:33285'
  - url: 'https://access.redhat.com/errata/RHSA-2026:39083'
  - url: 'https://access.redhat.com/errata/RHSA-2026:65710'
  - url: 'https://access.redhat.com/errata/RHSA-2026:59473'
  - url: 'https://access.redhat.com/errata/RHSA-2026:61256'
  - url: 'https://access.redhat.com/errata/RHSA-2026:39082'
  - url: 'https://access.redhat.com/errata/RHSA-2026:59663'
tags:
  - nvd
  - cve.org
  - csaf
  - vex
  - red-hat
epss: 0.00171
epssPercentile: 0.05622
ingestedAt: '2026-07-25T23:05:59.232Z'
scores:
  nvd: 5.5
  vendor: 7.1
---

## Overview

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

net: atm: fix crash due to unvalidated vcc pointer in sigd_send()

Reproducer available at [1].

The ATM send path (sendmsg -> vcc_sendmsg -> sigd_send) reads the vcc
pointer from msg->vcc and uses it directly without any validation. This
pointer comes from userspace via sendmsg() and can be arbitrarily forged:

    int fd = socket(AF_ATMSVC, SOCK_DGRAM, 0);
    ioctl(fd, ATMSIGD_CTRL);  // become ATM signaling daemon
    struct msghdr msg = { .msg_iov = &iov, ... };
    *(unsigned long *)(buf + 4) = 0xdeadbeef;  // fake vcc pointer
    sendmsg(fd, &msg, 0);  // kernel dereferences 0xdeadbeef

In normal operation, the kernel sends the vcc pointer to the signaling
daemon via sigd_enq() when processing operations like connect(), bind(),
or listen(). The daemon is expected to return the same pointer when
responding. However, a malicious daemon can send arbitrary pointer values.

Fix this by introducing find_get_vcc() which validates the pointer by
searching through vcc_hash (similar to how sigd_close() iterates over
all VCCs), and acquires a reference via sock_hold() if found.

Since struct atm_vcc embeds struct sock as its first member, they share
the same lifetime. Therefore using sock_hold/sock_put is sufficient to
keep the vcc alive while it is being used.

Note that there may be a race with sigd_close() which could mark the vcc
with various flags (e.g., ATM_VF_RELEASED) after find_get_vcc() returns.
However, sock_hold() guarantees the memory remains valid, so this race
only affects the logical state, not memory safety.

[1]: https://gist.github.com/mrpre/1ba5949c45529c511152e2f4c755b0f3

## Affected

- `linux_kernel >= 2.6.12.1, < 5.10.252`
- `linux_kernel >= 5.11, < 5.15.202`
- `linux_kernel >= 5.16, < 6.1.165`
- `linux_kernel >= 6.2, < 6.6.128`
- `linux_kernel >= 6.7, < 6.12.75`
- `linux_kernel >= 6.13, < 6.18.14`
- `linux_kernel >= 6.19, < 6.19.4`
- `linux_kernel = 2.6.12`
- `linux_kernel = 7.0`

## Remediation

Upgrade past the affected range:

- `linux_kernel 6.19.4`

## Vendor advisories

- **RHSA-2026:59662** · Red Hat · fixed in: Red Hat Enterprise Linux AppStream E4S (v.9.2), Red Hat Enterprise Linux BaseOS E4S (v.9.2) · released 2026-08-26 · [advisory](https://access.redhat.com/errata/RHSA-2026:59662)
- **RHSA-2026:56573** · Red Hat · fixed in: Red Hat Enterprise Linux AppStream E4S (v.9.4), Red Hat Enterprise Linux BaseOS E4S (v.9.4), Red Hat Enterprise Linux Real Time for NFV E4S (v.9.4), Red Hat Enterprise Linux Real Time E4S (v.9.4) · released 2026-08-19 · [advisory](https://access.redhat.com/errata/RHSA-2026:56573)
- **RHSA-2026:56574** · Red Hat · fixed in: Red Hat Enterprise Linux AppStream EUS (v.9.6), Red Hat Enterprise Linux BaseOS EUS (v.9.6), Red Hat CodeReady Linux Builder EUS (v.9.6), Red Hat Enterprise Linux Real Time for NFV EUS (v.9.6), Red Hat Enterprise Linux Real Time EUS (v.9.6) · released 2026-08-19 · [advisory](https://access.redhat.com/errata/RHSA-2026:56574)
- **RHSA-2026:33285** · Red Hat · fixed in: Red Hat Enterprise Linux AppStream (v. 9), Red Hat Enterprise Linux BaseOS (v. 9), Red Hat Enterprise Linux CodeReady Linux Builder (v. 9), Red Hat Enterprise Linux Real Time for NFV (v. 9), Red Hat Enterprise Linux Real Time (v. 9) · released 2026-06-30 · [advisory](https://access.redhat.com/errata/RHSA-2026:33285)
- **RHSA-2026:39083** · Red Hat · fixed in: Red Hat Enterprise Linux BaseOS (v. 8), Red Hat Enterprise Linux CRB (v. 8) · released 2026-07-14 · [advisory](https://access.redhat.com/errata/RHSA-2026:39083)
- **RHSA-2026:65710** · Red Hat · fixed in: Red Hat Enterprise Linux BaseOS AUS (v.8.4), Red Hat Enterprise Linux BaseOS EUS EXTENSION (v.8.4) · released 2026-09-09 · [advisory](https://access.redhat.com/errata/RHSA-2026:65710)
- **RHSA-2026:59473** · Red Hat · fixed in: Red Hat Enterprise Linux BaseOS AUS (v.8.6), Red Hat Enterprise Linux BaseOS EUS EXTENSION (v.8.6) · released 2026-08-25 · [advisory](https://access.redhat.com/errata/RHSA-2026:59473)
- **RHSA-2026:61256** · Red Hat · fixed in: Red Hat Enterprise Linux BaseOS E4S (v.8.8), Red Hat Enterprise Linux BaseOS TUS (v.8.8) · released 2026-08-31 · [advisory](https://access.redhat.com/errata/RHSA-2026:61256)
- **RHSA-2026:39082** · Red Hat · fixed in: Red Hat Enterprise Linux NFV (v. 8), Red Hat Enterprise Linux RT (v. 8) · released 2026-07-14 · [advisory](https://access.redhat.com/errata/RHSA-2026:39082)
- **RHSA-2026:59663** · Red Hat · fixed in: Red Hat Enterprise Linux Real Time for NFV E4S (v.9.2), Red Hat Enterprise Linux Real Time E4S (v.9.2) · released 2026-08-26 · [advisory](https://access.redhat.com/errata/RHSA-2026:59663)
- **Red Hat VEX** · Moderate · affected: Red Hat Enterprise Linux 6, Red Hat Enterprise Linux 7, Red Hat Enterprise Linux 9 · no fix planned: Red Hat Enterprise Linux 6, Red Hat Enterprise Linux 7, Red Hat Enterprise Linux 9 · updated 2026-09-09 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-31411.json)
