In the Linux kernel, the following vulnerability has been resolved:
tls: fix missing memory barrier in tls_init
In tls_init(), a write memory barrier is missing, and store-store
reordering may cause NULL dereference in tls_{setsockopt,getsockopt}.
CPU0 CPU1
----- -----
// In tls_init()
// In tls_ctx_create()
ctx = kzalloc()
ctx->sk_proto = READ_ONCE(sk->sk_prot) -(1)
// In update_sk_prot()
WRITE_ONCE(sk->sk_prot, 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 rcu_assign_pointer() which implies the release
barrier semantic. By moving rcu_assign_pointer() after ctx->sk_proto is
initialized, we can ensure that ctx->sk_proto are visible when
changing sk->sk_prot.
CVSS
5.5 MEDIUM (v3.1, NVD)CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
from d5bee7374b68de3c44586d46e9e61ffc97a1e886 before d72e126e9a36d3d33889829df8fc90100bb0e071; from d5bee7374b68de3c44586d46e9e61ffc97a1e886 before 2c260a24cf1c4d30ea3646124f766ee46169280b; from d5bee7374b68de3c44586d46e9e61ffc97a1e886 before 335c8f1566d8e44c384d16b450a18554896d4e8b; from d5bee7374b68de3c44586d46e9e61ffc97a1e886 before ab67c2fd3d070a21914d0c31319d3858ab4e199c; from d5bee7374b68de3c44586d46e9e61ffc97a1e886 before ef21007a7b581c7fe64d5a10c320880a033c837b; from d5bee7374b68de3c44586d46e9e61ffc97a1e886 before 91e61dd7a0af660408e87372d8330ceb218be302
The CVE record is authoritative. Products marked “from the name” were identified from the CNA's free-text names, not a CPE, and are matched less certainly. This product uses the NVD API but is not endorsed or certified by the NVD.
Printed from infosecsignals.com. Every record links back to the agency that published it.
Your cookie choices
We use essential cookies to run this site, and, only with your consent, an advertising cookie from Google to measure whether our ads lead to sign-ups and subscriptions. See our for details.