CVE-2023-53419

Source
https://cve.org/CVERecord?id=CVE-2023-53419
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2023-53419.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2023-53419
Downstream
Published
2025-09-18T16:04:02.955Z
Modified
2026-03-09T23:55:52.758779Z
Severity
  • 5.5 (Medium) CVSS_V3 - CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H CVSS Calculator
Summary
rcu: Protect rcu_print_task_exp_stall() ->exp_tasks access
Details

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

rcu: Protect rcuprinttaskexpstall() ->exp_tasks access

For kernels built with CONFIGPREEMPTRCU=y, the following scenario can result in a NULL-pointer dereference:

       CPU1                                           CPU2

rcupreemptdeferredqsirqrestore rcuprinttaskexpstall if (special.b.blocked) READONCE(rnp->exptasks) != NULL rawspinlockrcunode np = rcunextnodeentry(t, rnp) if (&t->rcunodeentry == rnp->exptasks) WRITEONCE(rnp->exptasks, np) .... rawspinunlockirqrestorercunode rawspinlockirqsavercunode t = listentry(rnp->exptasks->prev, struct taskstruct, rcunodeentry) (if rnp->exptasks is NULL, this will dereference a NULL pointer)

The problem is that CPU2 accesses the rcunode structure's->exptasks field without holding the rcunode structure's ->lock and CPU2 did not observe CPU1's change to rcunode structure's ->exptasks in time. Therefore, if CPU1 sets rcunode structure's->exp_tasks pointer to NULL, then CPU2 might dereference that NULL pointer.

This commit therefore holds the rcunode structure's ->lock while accessing that structure's->exptasks field.

[ paulmck: Apply Frederic Weisbecker feedback. ]

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/53xxx/CVE-2023-53419.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
314eeb43e5f22856b281c91c966e51e5782a3498
Fixed
a7d21b8585894e6fff973f6ddae42f02b13f600f
Fixed
e30a55e98ae6c44253d8b129efefd5da5bc6e3bc
Fixed
d0a8c0e31a09ec1efd53079083e2a677956b4d91
Fixed
2bc0ae94ef1f9ed322d8ee439de3239ea3632ab2
Fixed
3c1566bca3f8349f12b75d0a2d5e4a20ad6262ec

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2023-53419.json"