In the Linux kernel, the following vulnerability has been resolved: nfc: st-nci: Fix use after free bug in ndlc_remove due to race condition This bug influences both st_nci_i2c_remove and st_nci_spi_remove. Take st_nci_i2c_remove as an example. In st_nci_i2c_probe, it called ndlc_probe and bound &ndlc->sm_work with llt_ndlc_sm_work. When it calls ndlc_recv or timeout handler, it will finally call schedule_work to start the work. When we call st_nci_i2c_remove to remove the driver, there may be a sequence as follows: Fix it by finishing the work before cleanup in ndlc_remove CPU0 CPU1 |llt_ndlc_sm_work st_nci_i2c_remove | ndlc_remove | st_nci_remove | nci_free_device| kfree(ndev) | //free ndlc->ndev | |llt_ndlc_rcv_queue |nci_recv_frame |//use ndlc->ndev
2025-05-02T16:15:29.520
2025-11-10T17:54:42.723
Analyzed
416baaa9-dc9f-4396-8d5f-8c081fb06d67
CVSSv3.1: 7.8 (HIGH)
| Type | Vendor | Product | Version/Range | Vulnerable? |
|---|---|---|---|---|
| Operating System | linux | linux_kernel | < 4.14.311 | Yes |
| Operating System | linux | linux_kernel | < 4.19.279 | Yes |
| Operating System | linux | linux_kernel | < 5.4.238 | Yes |
| Operating System | linux | linux_kernel | < 5.10.176 | Yes |
| Operating System | linux | linux_kernel | < 5.15.104 | Yes |
| Operating System | linux | linux_kernel | < 6.1.21 | Yes |
| Operating System | linux | linux_kernel | < 6.2.8 | Yes |
| Operating System | linux | linux_kernel | 6.3 | Yes |
| Operating System | linux | linux_kernel | 6.3 | Yes |