Memory Leak Affecting kernel-default package, versions <5.3.18-150200.24.194.1


Severity

Recommended
0.0
medium
0
10

Based on SUSE Linux Enterprise Server security rating.

Threat Intelligence

EPSS
0.04% (13th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications

Snyk Learn

Learn about Memory Leak vulnerabilities in an interactive lesson.

Start learning
  • Snyk IDSNYK-SLES152-KERNELDEFAULT-7362701
  • published25 Jun 2024
  • disclosed24 Jun 2024

Introduced: 24 Jun 2024

CVE-2021-47231  (opens in a new tab)
CWE-401  (opens in a new tab)

How to fix?

Upgrade SLES:15.2 kernel-default to version 5.3.18-150200.24.194.1 or higher.

NVD Description

Note: Versions mentioned in the description apply only to the upstream kernel-default package and not the kernel-default package as distributed by SLES. See How to fix? for SLES:15.2 relevant fixed versions and status.

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

can: mcba_usb: fix memory leak in mcba_usb

Syzbot reported memory leak in SocketCAN driver for Microchip CAN BUS Analyzer Tool. The problem was in unfreed usb_coherent.

In mcba_usb_start() 20 coherent buffers are allocated and there is nothing, that frees them:

  1. In callback function the urb is resubmitted and that's all
  2. In disconnect function urbs are simply killed, but URB_FREE_BUFFER is not set (see mcba_usb_start) and this flag cannot be used with coherent buffers.

Fail log: | [ 1354.053291][ T8413] mcba_usb 1-1:0.0 can0: device disconnected | [ 1367.059384][ T8420] kmemleak: 20 new suspected memory leaks (see /sys/kernel/debug/kmem)

So, all allocated buffers should be freed with usb_free_coherent() explicitly

NOTE: The same pattern for allocating and freeing coherent buffers is used in drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c

CVSS Base Scores

version 3.1