Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

redhat логотип

CVE-2024-53138

Опубликовано: 04 дек. 2024
Источник: redhat
CVSS3: 4.4
EPSS Низкий

Описание

In the Linux kernel, the following vulnerability has been resolved: net/mlx5e: kTLS, Fix incorrect page refcounting The kTLS tx handling code is using a mix of get_page() and page_ref_inc() APIs to increment the page reference. But on the release path (mlx5e_ktls_tx_handle_resync_dump_comp()), only put_page() is used. This is an issue when using pages from large folios: the get_page() references are stored on the folio page while the page_ref_inc() references are stored directly in the given page. On release the folio page will be dereferenced too many times. This was found while doing kTLS testing with sendfile() + ZC when the served file was read from NFS on a kernel with NFS large folios support (commit 49b29a573da8 ("nfs: add support for large folios")).

A flaw was found in the Linux kernel's Mellanox mlx5 network driver. During kernel Transport Layer Security (kTLS) data transmission, an inconsistency in how memory page reference counters are tracked causes large memory structures to be dereferenced excessively when released. A local user could trigger this flaw to cause memory corruption, leading to a system crash and a Denial of Service (DoS).

Меры по смягчению последствий

Disable TLS hardware transmit offload on affected Mellanox network interfaces, or prevent the mlx5_core kernel module from loading if Mellanox hardware is not needed.

  1. To disable TLS hardware transmit offload on an active network interface:
# ethtool -K <interface_name> tls-hw-tx-offload off

Caveat: Disabling hardware TLS offload shifts TLS encryption and framing processing to the CPU in software, which may increase CPU utilization. 2. Alternatively, if Mellanox ConnectX adapters are not required on the system, prevent the driver module from autoloading by configuring modprobe:

# echo "install mlx5_core /bin/true" > /etc/modprobe.d/disable-mlx5_core.conf

Warning: A system reboot or manual unloading of the module is required for module blacklisting to take effect. Blacklisting mlx5_core will disable all Mellanox network interfaces managed by this driver.

Затронутые пакеты

ПлатформаПакетСостояниеРекомендацияРелиз
Red Hat Enterprise Linux 6kernelNot affected
Red Hat Enterprise Linux 7kernelNot affected
Red Hat Enterprise Linux 7kernel-rtNot affected
Red Hat Enterprise Linux 8kernelNot affected
Red Hat Enterprise Linux 8kernel-rtNot affected
Red Hat Enterprise Linux 9kernelAffected

Показывать по

Дополнительная информация

Статус:

Moderate
Дефект:
CWE-99
https://bugzilla.redhat.com/show_bug.cgi?id=2330344kernel: net/mlx5e: kTLS, Fix incorrect page refcounting

EPSS

Процентиль: 46%
0.00546
Низкий

4.4 Medium

CVSS3

Связанные уязвимости

CVSS3: 5.5
ubuntu
почти 2 года назад

In the Linux kernel, the following vulnerability has been resolved: net/mlx5e: kTLS, Fix incorrect page refcounting The kTLS tx handling code is using a mix of get_page() and page_ref_inc() APIs to increment the page reference. But on the release path (mlx5e_ktls_tx_handle_resync_dump_comp()), only put_page() is used. This is an issue when using pages from large folios: the get_page() references are stored on the folio page while the page_ref_inc() references are stored directly in the given page. On release the folio page will be dereferenced too many times. This was found while doing kTLS testing with sendfile() + ZC when the served file was read from NFS on a kernel with NFS large folios support (commit 49b29a573da8 ("nfs: add support for large folios")).

CVSS3: 5.5
nvd
почти 2 года назад

In the Linux kernel, the following vulnerability has been resolved: net/mlx5e: kTLS, Fix incorrect page refcounting The kTLS tx handling code is using a mix of get_page() and page_ref_inc() APIs to increment the page reference. But on the release path (mlx5e_ktls_tx_handle_resync_dump_comp()), only put_page() is used. This is an issue when using pages from large folios: the get_page() references are stored on the folio page while the page_ref_inc() references are stored directly in the given page. On release the folio page will be dereferenced too many times. This was found while doing kTLS testing with sendfile() + ZC when the served file was read from NFS on a kernel with NFS large folios support (commit 49b29a573da8 ("nfs: add support for large folios")).

msrc
3 месяца назад

net/mlx5e: kTLS, Fix incorrect page refcounting

CVSS3: 5.5
debian
почти 2 года назад

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

CVSS3: 5.5
github
почти 2 года назад

In the Linux kernel, the following vulnerability has been resolved: net/mlx5e: kTLS, Fix incorrect page refcounting The kTLS tx handling code is using a mix of get_page() and page_ref_inc() APIs to increment the page reference. But on the release path (mlx5e_ktls_tx_handle_resync_dump_comp()), only put_page() is used. This is an issue when using pages from large folios: the get_page() references are stored on the folio page while the page_ref_inc() references are stored directly in the given page. On release the folio page will be dereferenced too many times. This was found while doing kTLS testing with sendfile() + ZC when the served file was read from NFS on a kernel with NFS large folios support (commit 49b29a573da8 ("nfs: add support for large folios")).

EPSS

Процентиль: 46%
0.00546
Низкий

4.4 Medium

CVSS3