CVE-2023-52564

Source
https://cve.org/CVERecord?id=CVE-2023-52564
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2023-52564.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2023-52564
Downstream
Related
Published
2024-03-02T21:59:36.867Z
Modified
2026-03-13T07:48:04.893643Z
Summary
Revert "tty: n_gsm: fix UAF in gsm_cleanup_mux"
Details

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

Revert "tty: ngsm: fix UAF in gsmcleanup_mux"

This reverts commit 9b9c8195f3f0d74a826077fc1c01b9ee74907239.

The commit above is reverted as it did not solve the original issue.

gsmcleanupmux() tries to free up the virtual ttys by calling gsmdlcirelease() for each available DLCI. There, dlciput() is called to decrease the reference counter for the DLCI via ttyportput() which finally calls gsmdlcifree(). This already clears the pointer which is being checked in gsmcleanupmux() before calling gsmdlcirelease(). Therefore, it is not necessary to clear this pointer in gsmcleanup_mux() as done in the reverted commit. The commit introduces a null pointer dereference: <TASK> ? __die+0x1f/0x70 ? pagefaultoops+0x156/0x420 ? searchexceptiontables+0x37/0x50 ? fixupexception+0x21/0x310 ? excpagefault+0x69/0x150 ? asmexcpagefault+0x26/0x30 ? ttyportput+0x19/0xa0 gsmttycleanup+0x29/0x80 [ngsm] releaseonetty+0x37/0xe0 processonework+0x1e6/0x3e0 worker_thread+0x4c/0x3d0 ? __pfxworkerthread+0x10/0x10 kthread+0xe1/0x110 ? __pfxkthread+0x10/0x10 retfrom_fork+0x2f/0x50 ? __pfxkthread+0x10/0x10 retfromforkasm+0x1b/0x30 </TASK>

The actual issue is that nothing guards dlciput() from being called multiple times while the tty driver was triggered but did not yet finished calling gsmdlci_free().

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/52xxx/CVE-2023-52564.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
8fc0eabaa73bbd9bd705577071564616da5c8c61
Fixed
6d5c8862932d31a810b6545f7d69ecc124402c6e
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
5138c228311a863c3cf937b94a3ab4c87f1f70c4
Fixed
a48d2bcd23f2c98d575bc2f9b7a3fbd16aeea9eb
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
9615ca54bc138e35353a001e8b5d4824dce72188
Fixed
c61d0b87a7028c2c10faffc524d748334c7b9827
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
9b9c8195f3f0d74a826077fc1c01b9ee74907239
Fixed
2bff660e0ff349dee84dc4f6f6d10da4497f5b28
Fixed
29346e217b8ab8a52889b88f00b268278d6b7668
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
0 Unknown introduced commit / All previous commits are affected
Last affected
74a8d6f50cc90ed0061997db51dfa81a62b0f835

Database specific

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