5.5
MEDIUM
CVE-2024-46676
NFC Pn533 Linux Kernel Division By Zero Vulnerability
Description

In the Linux kernel, the following vulnerability has been resolved: nfc: pn533: Add poll mod list filling check In case of im_protocols value is 1 and tm_protocols value is 0 this combination successfully passes the check 'if (!im_protocols && !tm_protocols)' in the nfc_start_poll(). But then after pn533_poll_create_mod_list() call in pn533_start_poll() poll mod list will remain empty and dev->poll_mod_count will remain 0 which lead to division by zero. Normally no im protocol has value 1 in the mask, so this combination is not expected by driver. But these protocol values actually come from userspace via Netlink interface (NFC_CMD_START_POLL operation). So a broken or malicious program may pass a message containing a "bad" combination of protocol parameter values so that dev->poll_mod_count is not incremented inside pn533_poll_create_mod_list(), thus leading to division by zero. Call trace looks like: nfc_genl_start_poll() nfc_start_poll() ->start_poll() pn533_start_poll() Add poll mod list filling check. Found by Linux Verification Center (linuxtesting.org) with SVACE.

INFO

Published Date :

Sept. 13, 2024, 6:15 a.m.

Last Modified :

Sept. 23, 2024, 2:42 p.m.

Source :

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

Remotely Exploitable :

No

Impact Score :

3.6

Exploitability Score :

1.8
Affected Products

The following products are affected by CVE-2024-46676 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

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-46676 vulnerability anywhere in the article.

The following table lists the changes that have been made to the CVE-2024-46676 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]

    Sep. 23, 2024

    Action Type Old Value New Value
    Added CVSS V3.1 NIST AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
    Changed Reference Type https://git.kernel.org/stable/c/56ad559cf6d87f250a8d203b555dfc3716afa946 No Types Assigned https://git.kernel.org/stable/c/56ad559cf6d87f250a8d203b555dfc3716afa946 Patch
    Changed Reference Type https://git.kernel.org/stable/c/64513d0e546a1f19e390f7e5eba3872bfcbdacf5 No Types Assigned https://git.kernel.org/stable/c/64513d0e546a1f19e390f7e5eba3872bfcbdacf5 Patch
    Changed Reference Type https://git.kernel.org/stable/c/7535db0624a2dede374c42040808ad9a9101d723 No Types Assigned https://git.kernel.org/stable/c/7535db0624a2dede374c42040808ad9a9101d723 Patch
    Changed Reference Type https://git.kernel.org/stable/c/7ecd3dd4f8eecd3309432156ccfe24768e009ec4 No Types Assigned https://git.kernel.org/stable/c/7ecd3dd4f8eecd3309432156ccfe24768e009ec4 Patch
    Changed Reference Type https://git.kernel.org/stable/c/8ddaea033de051ed61b39f6b69ad54a411172b33 No Types Assigned https://git.kernel.org/stable/c/8ddaea033de051ed61b39f6b69ad54a411172b33 Patch
    Changed Reference Type https://git.kernel.org/stable/c/c5e05237444f32f6cfe5d907603a232c77a08b31 No Types Assigned https://git.kernel.org/stable/c/c5e05237444f32f6cfe5d907603a232c77a08b31 Patch
    Changed Reference Type https://git.kernel.org/stable/c/febccb39255f9df35527b88c953b2e0deae50e53 No Types Assigned https://git.kernel.org/stable/c/febccb39255f9df35527b88c953b2e0deae50e53 Patch
    Added CWE NIST CWE-369
    Added CPE Configuration OR *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 3.12 up to (excluding) 5.4.283 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 5.5 up to (excluding) 5.10.225 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 5.11 up to (excluding) 5.15.166 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 5.16 up to (excluding) 6.1.108 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 6.2 up to (excluding) 6.6.49 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 6.7 up to (excluding) 6.10.8 *cpe:2.3:o:linux:linux_kernel:6.11:rc1:*:*:*:*:*:* *cpe:2.3:o:linux:linux_kernel:6.11:rc2:*:*:*:*:*:* *cpe:2.3:o:linux:linux_kernel:6.11:rc3:*:*:*:*:*:* *cpe:2.3:o:linux:linux_kernel:6.11:rc4:*:*:*:*:*:* *cpe:2.3:o:linux:linux_kernel:6.11:rc5:*:*:*:*:*:*
  • CVE Received by 416baaa9-dc9f-4396-8d5f-8c081fb06d67

    Sep. 13, 2024

    Action Type Old Value New Value
    Added Description In the Linux kernel, the following vulnerability has been resolved: nfc: pn533: Add poll mod list filling check In case of im_protocols value is 1 and tm_protocols value is 0 this combination successfully passes the check 'if (!im_protocols && !tm_protocols)' in the nfc_start_poll(). But then after pn533_poll_create_mod_list() call in pn533_start_poll() poll mod list will remain empty and dev->poll_mod_count will remain 0 which lead to division by zero. Normally no im protocol has value 1 in the mask, so this combination is not expected by driver. But these protocol values actually come from userspace via Netlink interface (NFC_CMD_START_POLL operation). So a broken or malicious program may pass a message containing a "bad" combination of protocol parameter values so that dev->poll_mod_count is not incremented inside pn533_poll_create_mod_list(), thus leading to division by zero. Call trace looks like: nfc_genl_start_poll() nfc_start_poll() ->start_poll() pn533_start_poll() Add poll mod list filling check. Found by Linux Verification Center (linuxtesting.org) with SVACE.
    Added Reference kernel.org https://git.kernel.org/stable/c/c5e05237444f32f6cfe5d907603a232c77a08b31 [No types assigned]
    Added Reference kernel.org https://git.kernel.org/stable/c/8ddaea033de051ed61b39f6b69ad54a411172b33 [No types assigned]
    Added Reference kernel.org https://git.kernel.org/stable/c/7535db0624a2dede374c42040808ad9a9101d723 [No types assigned]
    Added Reference kernel.org https://git.kernel.org/stable/c/7ecd3dd4f8eecd3309432156ccfe24768e009ec4 [No types assigned]
    Added Reference kernel.org https://git.kernel.org/stable/c/56ad559cf6d87f250a8d203b555dfc3716afa946 [No types assigned]
    Added Reference kernel.org https://git.kernel.org/stable/c/64513d0e546a1f19e390f7e5eba3872bfcbdacf5 [No types assigned]
    Added Reference kernel.org https://git.kernel.org/stable/c/febccb39255f9df35527b88c953b2e0deae50e53 [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-46676 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-46676 weaknesses.

CVSS31 - Vulnerability Scoring System
Attack Vector
Attack Complexity
Privileges Required
User Interaction
Scope
Confidentiality
Integrity
Availability