NULL Pointer Dereference Affecting kernel-64k-debug-devel package, versions <0:5.14.0-427.31.1.el9_4
Threat Intelligence
Do your applications use this vulnerable package?
In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.
Test your applications- Snyk ID SNYK-ALMALINUX9-KERNEL64KDEBUGDEVEL-8331970
- published 4 Nov 2024
- disclosed 14 Aug 2024
Introduced: 14 Aug 2024
CVE-2024-36489 Open this link in a new tabHow to fix?
Upgrade AlmaLinux:9
kernel-64k-debug-devel
to version 0:5.14.0-427.31.1.el9_4 or higher.
This issue was patched in ALSA-2024:5363
.
NVD Description
Note: Versions mentioned in the description apply only to the upstream kernel-64k-debug-devel
package and not the kernel-64k-debug-devel
package as distributed by AlmaLinux
.
See How to fix?
for AlmaLinux:9
relevant fixed versions and status.
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-&gt;sk_proto-&gt;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.
References
- https://errata.almalinux.org/8/ALSA-2024-5101.html
- https://errata.almalinux.org/8/ALSA-2024-5102.html
- https://errata.almalinux.org/9/ALSA-2024-5363.html
- https://access.redhat.com/security/cve/CVE-2024-36489
- https://access.redhat.com/errata/RHSA-2024:5101
- https://access.redhat.com/errata/RHSA-2024:5102
- https://access.redhat.com/errata/RHSA-2024:5363
- https://git.kernel.org/stable/c/2c260a24cf1c4d30ea3646124f766ee46169280b
- https://git.kernel.org/stable/c/335c8f1566d8e44c384d16b450a18554896d4e8b
- https://git.kernel.org/stable/c/91e61dd7a0af660408e87372d8330ceb218be302
- https://git.kernel.org/stable/c/ab67c2fd3d070a21914d0c31319d3858ab4e199c
- https://git.kernel.org/stable/c/d72e126e9a36d3d33889829df8fc90100bb0e071
- https://git.kernel.org/stable/c/ef21007a7b581c7fe64d5a10c320880a033c837b