CVE-2024-26831 Information

Description

In the Linux kernel the following vulnerability has been resolved:

net/handshake: Fix handshake_req_destroy_test1

Recently handshake_req_destroy_test1 started failing:

Expected handshake_req_destroy_test == req but handshake_req_destroy_test == 0000000000000000 req == 0000000060f99b40 not ok 11 req_destroy works

This is because \sock_release(sock)\ was replaced with put(filp)\nto address a memory leak. Note that sock_release() is synchronous but fput() usually delays the final close and clean-up.

The delay is not consequential in the other cases that were changed but handshake_req_destroy_test1 is testing that handshake_req_cancel() followed by closing the file actually does call the ->hp_destroy method. Thus the PTR_EQ test at the end has to be sure that the final close is complete before it checks the pointer.

We cannot use a completion here because if ->hp_destroy is never called (ie there is an API bug) then the test will hang.

Reported by: Guenter Roeck linux@roeck-us.net

Reference

https://git.kernel.org/stable/c/d74226e03df1bf19848f18344401f254345af912 https://git.kernel.org/stable/c/7f97805b8df6e33850e225e6bd3ebd9e246920af https://git.kernel.org/stable/c/4e1d71cabb19ec2586827adfc60d68689c68c194

Share on: