7.5
HIGH
CVE-2024-27405
Linux Cisco gadget NCM Datagram Dropping Vulnerability
Description

In the Linux kernel, the following vulnerability has been resolved: usb: gadget: ncm: Avoid dropping datagrams of properly parsed NTBs It is observed sometimes when tethering is used over NCM with Windows 11 as host, at some instances, the gadget_giveback has one byte appended at the end of a proper NTB. When the NTB is parsed, unwrap call looks for any leftover bytes in SKB provided by u_ether and if there are any pending bytes, it treats them as a separate NTB and parses it. But in case the second NTB (as per unwrap call) is faulty/corrupt, all the datagrams that were parsed properly in the first NTB and saved in rx_list are dropped. Adding a few custom traces showed the following: [002] d..1 7828.532866: dwc3_gadget_giveback: ep1out: req 000000003868811a length 1025/16384 zsI ==> 0 [002] d..1 7828.532867: ncm_unwrap_ntb: K: ncm_unwrap_ntb toprocess: 1025 [002] d..1 7828.532867: ncm_unwrap_ntb: K: ncm_unwrap_ntb nth: 1751999342 [002] d..1 7828.532868: ncm_unwrap_ntb: K: ncm_unwrap_ntb seq: 0xce67 [002] d..1 7828.532868: ncm_unwrap_ntb: K: ncm_unwrap_ntb blk_len: 0x400 [002] d..1 7828.532868: ncm_unwrap_ntb: K: ncm_unwrap_ntb ndp_len: 0x10 [002] d..1 7828.532869: ncm_unwrap_ntb: K: Parsed NTB with 1 frames In this case, the giveback is of 1025 bytes and block length is 1024. The rest 1 byte (which is 0x00) won't be parsed resulting in drop of all datagrams in rx_list. Same is case with packets of size 2048: [002] d..1 7828.557948: dwc3_gadget_giveback: ep1out: req 0000000011dfd96e length 2049/16384 zsI ==> 0 [002] d..1 7828.557949: ncm_unwrap_ntb: K: ncm_unwrap_ntb nth: 1751999342 [002] d..1 7828.557950: ncm_unwrap_ntb: K: ncm_unwrap_ntb blk_len: 0x800 Lecroy shows one byte coming in extra confirming that the byte is coming in from PC: Transfer 2959 - Bytes Transferred(1025) Timestamp((18.524 843 590) - Transaction 8391 - Data(1025 bytes) Timestamp(18.524 843 590) --- Packet 4063861 Data(1024 bytes) Duration(2.117us) Idle(14.700ns) Timestamp(18.524 843 590) --- Packet 4063863 Data(1 byte) Duration(66.160ns) Time(282.000ns) Timestamp(18.524 845 722) According to Windows driver, no ZLP is needed if wBlockLength is non-zero, because the non-zero wBlockLength has already told the function side the size of transfer to be expected. However, there are in-market NCM devices that rely on ZLP as long as the wBlockLength is multiple of wMaxPacketSize. To deal with such devices, it pads an extra 0 at end so the transfer is no longer multiple of wMaxPacketSize.

INFO

Published Date :

May 17, 2024, 12:15 p.m.

Last Modified :

April 8, 2025, 3:53 p.m.

Source :

416baaa9-dc9f-4396-8d5f-8c081fb06d67

Remotely Exploitable :

Yes !

Impact Score :

3.6

Exploitability Score :

3.9
Affected Products

The following products are affected by CVE-2024-27405 vulnerability. Even if cvefeed.io is aware of the exact versions of the products that are affected, the information is not represented in the table below.

ID Vendor Product Action
1 Linux linux_kernel
1 Debian debian_linux
References to Advisories, Solutions, and Tools

Here, you will find a curated list of external links that provide in-depth information, practical solutions, and valuable tools related to CVE-2024-27405.

URL Resource
https://git.kernel.org/stable/c/059285e04ebb273d32323fbad5431c5b94f77e48 Patch
https://git.kernel.org/stable/c/2b7ec68869d50ea998908af43b643bca7e54577e Patch
https://git.kernel.org/stable/c/2cb66b62a5d64ccf09b0591ab86fb085fa491fc5 Patch
https://git.kernel.org/stable/c/35b604a37ec70d68b19dafd10bbacf1db505c9ca Patch
https://git.kernel.org/stable/c/57ca0e16f393bb21d69734e536e383a3a4c665fd Patch
https://git.kernel.org/stable/c/76c51146820c5dac629f21deafab0a7039bc3ccd Patch
https://git.kernel.org/stable/c/a31cf46d108dabce3df80b3e5c07661e24912151 Patch
https://git.kernel.org/stable/c/c7f43900bc723203d7554d299a2ce844054fab8e Patch
https://git.kernel.org/stable/c/059285e04ebb273d32323fbad5431c5b94f77e48 Patch
https://git.kernel.org/stable/c/2b7ec68869d50ea998908af43b643bca7e54577e Patch
https://git.kernel.org/stable/c/2cb66b62a5d64ccf09b0591ab86fb085fa491fc5 Patch
https://git.kernel.org/stable/c/35b604a37ec70d68b19dafd10bbacf1db505c9ca Patch
https://git.kernel.org/stable/c/57ca0e16f393bb21d69734e536e383a3a4c665fd Patch
https://git.kernel.org/stable/c/76c51146820c5dac629f21deafab0a7039bc3ccd Patch
https://git.kernel.org/stable/c/a31cf46d108dabce3df80b3e5c07661e24912151 Patch
https://git.kernel.org/stable/c/c7f43900bc723203d7554d299a2ce844054fab8e Patch
https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html Mailing List Third Party Advisory
https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html Mailing List Third Party Advisory

We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).

Results are limited to the first 15 repositories due to potential performance issues.

The following list is the news that have been mention CVE-2024-27405 vulnerability anywhere in the article.

The following table lists the changes that have been made to the CVE-2024-27405 vulnerability over time.

Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.

  • Initial Analysis by [email protected]

    Apr. 08, 2025

    Action Type Old Value New Value
    Added CPE Configuration OR *cpe:2.3:o:linux:linux_kernel:6.8:rc1:*:*:*:*:*:* *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 5.16 up to (excluding) 6.1.80 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 5.11 up to (excluding) 5.15.150 *cpe:2.3:o:linux:linux_kernel:6.8:rc3:*:*:*:*:*:* *cpe:2.3:o:linux:linux_kernel:6.8:rc4:*:*:*:*:*:* *cpe:2.3:o:linux:linux_kernel:6.8:rc2:*:*:*:*:*:* *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 2.6.38 up to (excluding) 4.19.308 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 4.20 up to (excluding) 5.4.270 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 5.5 up to (excluding) 5.10.211 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 6.2 up to (excluding) 6.6.19 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 6.7 up to (excluding) 6.7.7 *cpe:2.3:o:linux:linux_kernel:6.8:rc5:*:*:*:*:*:*
    Added CPE Configuration OR *cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:*
    Added Reference Type CVE: https://git.kernel.org/stable/c/059285e04ebb273d32323fbad5431c5b94f77e48 Types: Patch
    Added Reference Type kernel.org: https://git.kernel.org/stable/c/059285e04ebb273d32323fbad5431c5b94f77e48 Types: Patch
    Added Reference Type CVE: https://git.kernel.org/stable/c/2b7ec68869d50ea998908af43b643bca7e54577e Types: Patch
    Added Reference Type kernel.org: https://git.kernel.org/stable/c/2b7ec68869d50ea998908af43b643bca7e54577e Types: Patch
    Added Reference Type CVE: https://git.kernel.org/stable/c/2cb66b62a5d64ccf09b0591ab86fb085fa491fc5 Types: Patch
    Added Reference Type kernel.org: https://git.kernel.org/stable/c/2cb66b62a5d64ccf09b0591ab86fb085fa491fc5 Types: Patch
    Added Reference Type CVE: https://git.kernel.org/stable/c/35b604a37ec70d68b19dafd10bbacf1db505c9ca Types: Patch
    Added Reference Type kernel.org: https://git.kernel.org/stable/c/35b604a37ec70d68b19dafd10bbacf1db505c9ca Types: Patch
    Added Reference Type CVE: https://git.kernel.org/stable/c/57ca0e16f393bb21d69734e536e383a3a4c665fd Types: Patch
    Added Reference Type kernel.org: https://git.kernel.org/stable/c/57ca0e16f393bb21d69734e536e383a3a4c665fd Types: Patch
    Added Reference Type CVE: https://git.kernel.org/stable/c/76c51146820c5dac629f21deafab0a7039bc3ccd Types: Patch
    Added Reference Type kernel.org: https://git.kernel.org/stable/c/76c51146820c5dac629f21deafab0a7039bc3ccd Types: Patch
    Added Reference Type CVE: https://git.kernel.org/stable/c/a31cf46d108dabce3df80b3e5c07661e24912151 Types: Patch
    Added Reference Type kernel.org: https://git.kernel.org/stable/c/a31cf46d108dabce3df80b3e5c07661e24912151 Types: Patch
    Added Reference Type CVE: https://git.kernel.org/stable/c/c7f43900bc723203d7554d299a2ce844054fab8e Types: Patch
    Added Reference Type kernel.org: https://git.kernel.org/stable/c/c7f43900bc723203d7554d299a2ce844054fab8e Types: Patch
    Added Reference Type CVE: https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html Types: Mailing List, Third Party Advisory
    Added Reference Type CVE: https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html Types: Mailing List, Third Party Advisory
  • CVE Modified by af854a3a-2127-422b-91ae-364da2661108

    Nov. 21, 2024

    Action Type Old Value New Value
    Added Reference https://git.kernel.org/stable/c/059285e04ebb273d32323fbad5431c5b94f77e48
    Added Reference https://git.kernel.org/stable/c/2b7ec68869d50ea998908af43b643bca7e54577e
    Added Reference https://git.kernel.org/stable/c/2cb66b62a5d64ccf09b0591ab86fb085fa491fc5
    Added Reference https://git.kernel.org/stable/c/35b604a37ec70d68b19dafd10bbacf1db505c9ca
    Added Reference https://git.kernel.org/stable/c/57ca0e16f393bb21d69734e536e383a3a4c665fd
    Added Reference https://git.kernel.org/stable/c/76c51146820c5dac629f21deafab0a7039bc3ccd
    Added Reference https://git.kernel.org/stable/c/a31cf46d108dabce3df80b3e5c07661e24912151
    Added Reference https://git.kernel.org/stable/c/c7f43900bc723203d7554d299a2ce844054fab8e
    Added Reference https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html
    Added Reference https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html
  • CVE Modified by 416baaa9-dc9f-4396-8d5f-8c081fb06d67

    Nov. 05, 2024

    Action Type Old Value New Value
    Removed Reference kernel.org https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html
    Removed Reference kernel.org https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html
  • CVE Modified by 134c704f-9b21-4f2e-91b3-4a467353bcc0

    Jul. 03, 2024

    Action Type Old Value New Value
    Added CWE CISA-ADP CWE-476
    Added CVSS V3.1 CISA-ADP AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
  • CVE Modified by 416baaa9-dc9f-4396-8d5f-8c081fb06d67

    Jun. 27, 2024

    Action Type Old Value New Value
    Added Reference kernel.org https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html [No types assigned]
  • CVE Modified by 416baaa9-dc9f-4396-8d5f-8c081fb06d67

    Jun. 25, 2024

    Action Type Old Value New Value
    Added Reference kernel.org https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html [No types assigned]
  • CVE Modified by 416baaa9-dc9f-4396-8d5f-8c081fb06d67

    May. 29, 2024

    Action Type Old Value New Value
  • CVE Received by 416baaa9-dc9f-4396-8d5f-8c081fb06d67

    May. 17, 2024

    Action Type Old Value New Value
    Added Description In the Linux kernel, the following vulnerability has been resolved: usb: gadget: ncm: Avoid dropping datagrams of properly parsed NTBs It is observed sometimes when tethering is used over NCM with Windows 11 as host, at some instances, the gadget_giveback has one byte appended at the end of a proper NTB. When the NTB is parsed, unwrap call looks for any leftover bytes in SKB provided by u_ether and if there are any pending bytes, it treats them as a separate NTB and parses it. But in case the second NTB (as per unwrap call) is faulty/corrupt, all the datagrams that were parsed properly in the first NTB and saved in rx_list are dropped. Adding a few custom traces showed the following: [002] d..1 7828.532866: dwc3_gadget_giveback: ep1out: req 000000003868811a length 1025/16384 zsI ==> 0 [002] d..1 7828.532867: ncm_unwrap_ntb: K: ncm_unwrap_ntb toprocess: 1025 [002] d..1 7828.532867: ncm_unwrap_ntb: K: ncm_unwrap_ntb nth: 1751999342 [002] d..1 7828.532868: ncm_unwrap_ntb: K: ncm_unwrap_ntb seq: 0xce67 [002] d..1 7828.532868: ncm_unwrap_ntb: K: ncm_unwrap_ntb blk_len: 0x400 [002] d..1 7828.532868: ncm_unwrap_ntb: K: ncm_unwrap_ntb ndp_len: 0x10 [002] d..1 7828.532869: ncm_unwrap_ntb: K: Parsed NTB with 1 frames In this case, the giveback is of 1025 bytes and block length is 1024. The rest 1 byte (which is 0x00) won't be parsed resulting in drop of all datagrams in rx_list. Same is case with packets of size 2048: [002] d..1 7828.557948: dwc3_gadget_giveback: ep1out: req 0000000011dfd96e length 2049/16384 zsI ==> 0 [002] d..1 7828.557949: ncm_unwrap_ntb: K: ncm_unwrap_ntb nth: 1751999342 [002] d..1 7828.557950: ncm_unwrap_ntb: K: ncm_unwrap_ntb blk_len: 0x800 Lecroy shows one byte coming in extra confirming that the byte is coming in from PC: Transfer 2959 - Bytes Transferred(1025) Timestamp((18.524 843 590) - Transaction 8391 - Data(1025 bytes) Timestamp(18.524 843 590) --- Packet 4063861 Data(1024 bytes) Duration(2.117us) Idle(14.700ns) Timestamp(18.524 843 590) --- Packet 4063863 Data(1 byte) Duration(66.160ns) Time(282.000ns) Timestamp(18.524 845 722) According to Windows driver, no ZLP is needed if wBlockLength is non-zero, because the non-zero wBlockLength has already told the function side the size of transfer to be expected. However, there are in-market NCM devices that rely on ZLP as long as the wBlockLength is multiple of wMaxPacketSize. To deal with such devices, it pads an extra 0 at end so the transfer is no longer multiple of wMaxPacketSize.
    Added Reference kernel.org https://git.kernel.org/stable/c/059285e04ebb273d32323fbad5431c5b94f77e48 [No types assigned]
    Added Reference kernel.org https://git.kernel.org/stable/c/a31cf46d108dabce3df80b3e5c07661e24912151 [No types assigned]
    Added Reference kernel.org https://git.kernel.org/stable/c/57ca0e16f393bb21d69734e536e383a3a4c665fd [No types assigned]
    Added Reference kernel.org https://git.kernel.org/stable/c/2cb66b62a5d64ccf09b0591ab86fb085fa491fc5 [No types assigned]
    Added Reference kernel.org https://git.kernel.org/stable/c/35b604a37ec70d68b19dafd10bbacf1db505c9ca [No types assigned]
    Added Reference kernel.org https://git.kernel.org/stable/c/2b7ec68869d50ea998908af43b643bca7e54577e [No types assigned]
    Added Reference kernel.org https://git.kernel.org/stable/c/c7f43900bc723203d7554d299a2ce844054fab8e [No types assigned]
    Added Reference kernel.org https://git.kernel.org/stable/c/76c51146820c5dac629f21deafab0a7039bc3ccd [No types assigned]
EPSS is a daily estimate of the probability of exploitation activity being observed over the next 30 days. Following chart shows the EPSS score history of the vulnerability.
CWE - Common Weakness Enumeration

While CVE identifies specific instances of vulnerabilities, CWE categorizes the common flaws or weaknesses that can lead to vulnerabilities. CVE-2024-27405 is associated with the following CWEs:

Common Attack Pattern Enumeration and Classification (CAPEC)

Common Attack Pattern Enumeration and Classification (CAPEC) stores attack patterns, which are descriptions of the common attributes and approaches employed by adversaries to exploit the CVE-2024-27405 weaknesses.

CVSS31 - Vulnerability Scoring System
Attack Vector
Attack Complexity
Privileges Required
User Interaction
Scope
Confidentiality
Integrity
Availability
© cvefeed.io
Latest DB Update: May. 16, 2025 9:03