CVE-2024-42246 net, sunrpc: Remap EPERM in case of connection failure in xs_tcp_setup_socket

Medium 5.5 Published Updated

A Linux kernel bug causes an infinite loop and system freeze when a BPF program returns EPERM during TCP connection setup, requiring a patch.

Exploited in the wild
Not known
Login needed
Any signed-in user
Attackable
Local or same network only
Victim action needed
Not needed
Fix
Available

What is CVE-2024-42246?

CVE-2024-42246 is a medium-severity denial of service vulnerability in Linux kernel, published on 7 Aug 2024. It can only be exploited from the same machine or local network, with no action from the victim.

Official description

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

net, sunrpc: Remap EPERM in case of connection failure in xs_tcp_setup_socket

When using a BPF program on kernel_connect(), the call can return -EPERM. This causes xs_tcp_setup_socket() to loop forever, filling up the syslog and causing the kernel to potentially freeze up.

Neil suggested:

This will propagate -EPERM up into other layers which might not be ready to handle it. It might be safer to map EPERM to an error we would be more likely to expect from the network system - such as ECONNREFUSED or ENETDOWN.

ECONNREFUSED as error seems reasonable. For programs setting a different error can be out of reach (see handling in 4fbac77d2d09) in particular on kernels which do not have f10d05966196 ("bpf: Make BPF_PROG_RUN_ARRAY return -err instead of allow boolean"), thus given that it is better to simply remap for consistent behavior. UDP does handle EPERM in xs_udp_send_request().

Weakness: CWE-835

Which versions are affected by CVE-2024-42246?

It affects 1 product.

Products include Linux kernel.

How do I fix CVE-2024-42246?

Apply the vendor's patch.

Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.

Is CVE-2024-42246 being exploited?

There is no known exploitation of CVE-2024-42246 in the wild and no public exploit code.

All Linux kernel vulnerabilities

Sources

Also known as AZL-47492, AZL-47626, BELL-CVE-2024-42246, DEBIAN-CVE-2024-42246, GHSA-899c-qvc8-9hpp, UBUNTU-CVE-2024-42246.

Is CVE-2024-42246 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free