---
id: CVE-2025-68342
title: >-
  can: gs_usb: gs_usb_receive_bulk_callback(): check actual_length before
  accessing data
summary: >-
  In the Linux kernel, the following vulnerability has been resolved:


  can: gs_usb: gs_usb_receive_bulk_callback(): check actual_length before
  accessing data


  The URB received in gs_usb_receive_bulk_callback() contains a struct

  gs_host_fra…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= d08e973a77d128b25e01a08c34d89593fdf222da <
    8376208db9283fbdfaa06c8d80735ac9954fa64a
  - >-
    Linux >= d08e973a77d128b25e01a08c34d89593fdf222da <
    4ffac725154cf6a253f5e6aa0c8946232b6a0af5
  - >-
    Linux >= d08e973a77d128b25e01a08c34d89593fdf222da <
    ad55004a3cb5b41ef78aa6c09e7bc5a489ba652b
  - >-
    Linux >= d08e973a77d128b25e01a08c34d89593fdf222da <
    fb0c7c77a7ae3a2c3404b7d0173b8739a754b513
  - >-
    Linux >= d08e973a77d128b25e01a08c34d89593fdf222da <
    395d988f93861101ec89d0dd9e3b876ae9392a5b
  - Linux 3.16
published: '2025-12-23'
updated: '2026-10-30'
sourceUpdated: '2026-10-30T12:23:14.781Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2025-68342'
references:
  - url: 'https://git.kernel.org/stable/c/8376208db9283fbdfaa06c8d80735ac9954fa64a'
  - url: 'https://git.kernel.org/stable/c/4ffac725154cf6a253f5e6aa0c8946232b6a0af5'
  - url: 'https://git.kernel.org/stable/c/ad55004a3cb5b41ef78aa6c09e7bc5a489ba652b'
  - url: 'https://git.kernel.org/stable/c/fb0c7c77a7ae3a2c3404b7d0173b8739a754b513'
  - url: 'https://git.kernel.org/stable/c/395d988f93861101ec89d0dd9e3b876ae9392a5b'
tags:
  - cve.org
epss: 0.00186
epssPercentile: 0.08225
ingestedAt: '2026-11-05T15:02:32.158Z'
---

## Overview

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

can: gs_usb: gs_usb_receive_bulk_callback(): check actual_length before accessing data

The URB received in gs_usb_receive_bulk_callback() contains a struct
gs_host_frame. The length of the data after the header depends on the
gs_host_frame hf::flags and the active device features (e.g. time
stamping).

Introduce a new function gs_usb_get_minimum_length() and check that we have
at least received the required amount of data before accessing it. Only
copy the data to that skb that has actually been received.

[mkl: rename gs_usb_get_minimum_length() -> +gs_usb_get_minimum_rx_length()]

## Affected

- `Linux >= d08e973a77d128b25e01a08c34d89593fdf222da < 8376208db9283fbdfaa06c8d80735ac9954fa64a`
- `Linux >= d08e973a77d128b25e01a08c34d89593fdf222da < 4ffac725154cf6a253f5e6aa0c8946232b6a0af5`
- `Linux >= d08e973a77d128b25e01a08c34d89593fdf222da < ad55004a3cb5b41ef78aa6c09e7bc5a489ba652b`
- `Linux >= d08e973a77d128b25e01a08c34d89593fdf222da < fb0c7c77a7ae3a2c3404b7d0173b8739a754b513`
- `Linux >= d08e973a77d128b25e01a08c34d89593fdf222da < 395d988f93861101ec89d0dd9e3b876ae9392a5b`
- `Linux 3.16`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
