CVE-2024-36489

Source
https://cve.org/CVERecord?id=CVE-2024-36489
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2024-36489.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2024-36489
Downstream
Related
Published
2024-06-21T10:18:10.327Z
Modified
2026-03-13T07:55:35.144229Z
Summary
tls: fix missing memory barrier in tls_init
Details

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

tls: fix missing memory barrier in tls_init

In tlsinit(), a write memory barrier is missing, and store-store reordering may cause NULL dereference in tls{setsockopt,getsockopt}.

CPU0 CPU1 ----- ----- // In tlsinit() // In tlsctxcreate() ctx = kzalloc() ctx->skproto = READONCE(sk->skprot) -(1)

// In updateskprot() WRITEONCE(sk->skprot, tls_prots) -(2)

                               // In sock_common_setsockopt()
                               READ_ONCE(sk->sk_prot)->setsockopt()

                               // In tls_{setsockopt,getsockopt}()
                               ctx->sk_proto->setsockopt()    -(3)

In the above scenario, when (1) and (2) are reordered, (3) can observe the NULL value of ctx->sk_proto, causing NULL dereference.

To fix it, we rely on rcuassignpointer() which implies the release barrier semantic. By moving rcuassignpointer() after ctx->skproto is initialized, we can ensure that ctx->skproto are visible when changing sk->sk_prot.

Database specific
{
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/36xxx/CVE-2024-36489.json",
    "cna_assigner": "Linux"
}
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
d5bee7374b68de3c44586d46e9e61ffc97a1e886
Fixed
d72e126e9a36d3d33889829df8fc90100bb0e071
Fixed
2c260a24cf1c4d30ea3646124f766ee46169280b
Fixed
335c8f1566d8e44c384d16b450a18554896d4e8b
Fixed
ab67c2fd3d070a21914d0c31319d3858ab4e199c
Fixed
ef21007a7b581c7fe64d5a10c320880a033c837b
Fixed
91e61dd7a0af660408e87372d8330ceb218be302

Database specific

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