Lucene search

K
cvelistLinuxCVELIST:CVE-2024-26600
HistoryFeb 24, 2024 - 2:56 p.m.

CVE-2024-26600 phy: ti: phy-omap-usb2: Fix NULL pointer dereference for SRP

2024-02-2414:56:55
Linux
www.cve.org
linux kernel
vulnerability
fix
null pointer dereference
phy-omap-usb2
send_srp()
set_vbus()
usb peripheral

6.3 Medium

AI Score

Confidence

High

0.0004 Low

EPSS

Percentile

5.1%

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

phy: ti: phy-omap-usb2: Fix NULL pointer dereference for SRP

If the external phy working together with phy-omap-usb2 does not implement
send_srp(), we may still attempt to call it. This can happen on an idle
Ethernet gadget triggering a wakeup for example:

configfs-gadget.g1 gadget.0: ECM Suspend
configfs-gadget.g1 gadget.0: Port suspended. Triggering wakeup

Unable to handle kernel NULL pointer dereference at virtual address
00000000 when execute

PC is at 0x0
LR is at musb_gadget_wakeup+0x1d4/0x254 [musb_hdrc]

musb_gadget_wakeup [musb_hdrc] from usb_gadget_wakeup+0x1c/0x3c [udc_core]
usb_gadget_wakeup [udc_core] from eth_start_xmit+0x3b0/0x3d4 [u_ether]
eth_start_xmit [u_ether] from dev_hard_start_xmit+0x94/0x24c
dev_hard_start_xmit from sch_direct_xmit+0x104/0x2e4
sch_direct_xmit from __dev_queue_xmit+0x334/0xd88
__dev_queue_xmit from arp_solicit+0xf0/0x268
arp_solicit from neigh_probe+0x54/0x7c
neigh_probe from __neigh_event_send+0x22c/0x47c
__neigh_event_send from neigh_resolve_output+0x14c/0x1c0
neigh_resolve_output from ip_finish_output2+0x1c8/0x628
ip_finish_output2 from ip_send_skb+0x40/0xd8
ip_send_skb from udp_send_skb+0x124/0x340
udp_send_skb from udp_sendmsg+0x780/0x984
udp_sendmsg from __sys_sendto+0xd8/0x158
__sys_sendto from ret_fast_syscall+0x0/0x58

Let’s fix the issue by checking for send_srp() and set_vbus() before
calling them. For USB peripheral only cases these both could be NULL.

CNA Affected

[
  {
    "product": "Linux",
    "vendor": "Linux",
    "defaultStatus": "unaffected",
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "programFiles": [
      "drivers/phy/ti/phy-omap-usb2.c"
    ],
    "versions": [
      {
        "version": "657b306a7bdf",
        "lessThan": "486218c11e8d",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "657b306a7bdf",
        "lessThan": "8398d8d735ee",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "657b306a7bdf",
        "lessThan": "be3b82e4871b",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "657b306a7bdf",
        "lessThan": "8cc889b9dea0",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "657b306a7bdf",
        "lessThan": "0430bfcd4665",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "657b306a7bdf",
        "lessThan": "14ef61594a5a",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "657b306a7bdf",
        "lessThan": "396e17af6761",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "657b306a7bdf",
        "lessThan": "7104ba0f1958",
        "status": "affected",
        "versionType": "git"
      }
    ]
  },
  {
    "product": "Linux",
    "vendor": "Linux",
    "defaultStatus": "affected",
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "programFiles": [
      "drivers/phy/ti/phy-omap-usb2.c"
    ],
    "versions": [
      {
        "version": "3.7",
        "status": "affected"
      },
      {
        "version": "0",
        "lessThan": "3.7",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "4.19.307",
        "lessThanOrEqual": "4.19.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "5.4.269",
        "lessThanOrEqual": "5.4.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "5.10.210",
        "lessThanOrEqual": "5.10.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "5.15.149",
        "lessThanOrEqual": "5.15.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.1.78",
        "lessThanOrEqual": "6.1.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.6.17",
        "lessThanOrEqual": "6.6.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.7.5",
        "lessThanOrEqual": "6.7.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.8",
        "lessThanOrEqual": "*",
        "status": "unaffected",
        "versionType": "original_commit_for_fix"
      }
    ]
  }
]

6.3 Medium

AI Score

Confidence

High

0.0004 Low

EPSS

Percentile

5.1%