In the Linux kernel, the following vulnerability has been resolved:
rxrpc: Fix a race between socket set up and I/O thread creation
In rxrpcopensocket(), it sets up the socket and then sets up the I/O thread that will handle it. This is a problem, however, as there's a gap between the two phases in which a packet may come into rxrpcencaprcv() from the UDP packet but we oops when trying to wake the not-yet created I/O thread.
As a quick fix, just make rxrpcencaprcv() discard the packet if there's no I/O thread yet.
A better, but more intrusive fix would perhaps be to rearrange things such that the socket creation is done by the I/O thread.
[
{
"digest": {
"function_hash": "238941814683315622187625124040083578056",
"length": 1763.0
},
"id": "CVE-2024-49864-1f7193f3",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cdf4bbbdb956d7426f687f38757ebca2a2759a0f",
"target": {
"file": "net/rxrpc/local_object.c",
"function": "rxrpc_open_socket"
},
"deprecated": false
},
{
"digest": {
"function_hash": "55524693150517781643568921591383039588",
"length": 3082.0
},
"id": "CVE-2024-49864-2312b183",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c64f5fc95e9612fdf75587c8e21e494e614c18e2",
"target": {
"file": "net/rxrpc/io_thread.c",
"function": "rxrpc_io_thread"
},
"deprecated": false
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"92933471831978604491441695165263505939",
"221083588120328718923257643055921699668",
"117477027999428642447994343537715376774",
"224155422685902178654253144046882530797"
]
},
"id": "CVE-2024-49864-298ff762",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bc212465326e8587325f520a052346f0b57360e6",
"target": {
"file": "net/rxrpc/local_object.c"
},
"deprecated": false
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"94049312076168140811884864914227606231",
"212759154148549394299256810365745942014",
"298377332749766946378009728161600254230",
"236744855535719246950392700826099640787"
]
},
"id": "CVE-2024-49864-2b2eda10",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cdf4bbbdb956d7426f687f38757ebca2a2759a0f",
"target": {
"file": "net/rxrpc/ar-internal.h"
},
"deprecated": false
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"273632794884361595907209315988972173668",
"126393904170366514878603186748074905737",
"163947714252545031734081769605403994807",
"237264287419586128858410913711802635570",
"282510475811605798155312474438121161398",
"252917460528012831597651176257967545640",
"278530934677564530428329050900226958019",
"297774334615226478797830260324498573314",
"185623594831850606164359407973394561273",
"29539908882427475711113962844753824646",
"17921275402698958736924162668238200125",
"262829575436118643151239702333758142558",
"280425693233268321017207995659296172066",
"191302230134158883844723015390056279691",
"201433486363397867805665834648413050481",
"4263351866382859883085138540062881810"
]
},
"id": "CVE-2024-49864-31bc0a99",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@56e415202b8a17de6496f4023e545fcb66f118ec",
"target": {
"file": "net/rxrpc/io_thread.c"
},
"deprecated": false
},
{
"digest": {
"function_hash": "55524693150517781643568921591383039588",
"length": 3082.0
},
"id": "CVE-2024-49864-3bba2c6c",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cdf4bbbdb956d7426f687f38757ebca2a2759a0f",
"target": {
"file": "net/rxrpc/io_thread.c",
"function": "rxrpc_io_thread"
},
"deprecated": false
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"92933471831978604491441695165263505939",
"221083588120328718923257643055921699668",
"117477027999428642447994343537715376774",
"224155422685902178654253144046882530797"
]
},
"id": "CVE-2024-49864-476c8eda",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@56e415202b8a17de6496f4023e545fcb66f118ec",
"target": {
"file": "net/rxrpc/local_object.c"
},
"deprecated": false
},
{
"digest": {
"function_hash": "55524693150517781643568921591383039588",
"length": 3082.0
},
"id": "CVE-2024-49864-498221bf",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bc212465326e8587325f520a052346f0b57360e6",
"target": {
"file": "net/rxrpc/io_thread.c",
"function": "rxrpc_io_thread"
},
"deprecated": false
},
{
"digest": {
"function_hash": "238941814683315622187625124040083578056",
"length": 1763.0
},
"id": "CVE-2024-49864-5ed0394f",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c64f5fc95e9612fdf75587c8e21e494e614c18e2",
"target": {
"file": "net/rxrpc/local_object.c",
"function": "rxrpc_open_socket"
},
"deprecated": false
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"92933471831978604491441695165263505939",
"221083588120328718923257643055921699668",
"117477027999428642447994343537715376774",
"224155422685902178654253144046882530797"
]
},
"id": "CVE-2024-49864-72f85809",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cdf4bbbdb956d7426f687f38757ebca2a2759a0f",
"target": {
"file": "net/rxrpc/local_object.c"
},
"deprecated": false
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"94049312076168140811884864914227606231",
"212759154148549394299256810365745942014",
"298377332749766946378009728161600254230",
"236744855535719246950392700826099640787"
]
},
"id": "CVE-2024-49864-7517eab9",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bc212465326e8587325f520a052346f0b57360e6",
"target": {
"file": "net/rxrpc/ar-internal.h"
},
"deprecated": false
},
{
"digest": {
"function_hash": "119272095209910970482571792453388122205",
"length": 84.0
},
"id": "CVE-2024-49864-8237e707",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cdf4bbbdb956d7426f687f38757ebca2a2759a0f",
"target": {
"file": "net/rxrpc/ar-internal.h",
"function": "rxrpc_wake_up_io_thread"
},
"deprecated": false
},
{
"digest": {
"function_hash": "205447857913871303688616397831929621551",
"length": 617.0
},
"id": "CVE-2024-49864-8746a648",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@56e415202b8a17de6496f4023e545fcb66f118ec",
"target": {
"file": "net/rxrpc/io_thread.c",
"function": "rxrpc_encap_rcv"
},
"deprecated": false
},
{
"digest": {
"function_hash": "55524693150517781643568921591383039588",
"length": 3082.0
},
"id": "CVE-2024-49864-8bf44579",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@56e415202b8a17de6496f4023e545fcb66f118ec",
"target": {
"file": "net/rxrpc/io_thread.c",
"function": "rxrpc_io_thread"
},
"deprecated": false
},
{
"digest": {
"function_hash": "205447857913871303688616397831929621551",
"length": 617.0
},
"id": "CVE-2024-49864-943baaa8",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cdf4bbbdb956d7426f687f38757ebca2a2759a0f",
"target": {
"file": "net/rxrpc/io_thread.c",
"function": "rxrpc_encap_rcv"
},
"deprecated": false
},
{
"digest": {
"function_hash": "238941814683315622187625124040083578056",
"length": 1763.0
},
"id": "CVE-2024-49864-a06414d5",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bc212465326e8587325f520a052346f0b57360e6",
"target": {
"file": "net/rxrpc/local_object.c",
"function": "rxrpc_open_socket"
},
"deprecated": false
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"94049312076168140811884864914227606231",
"212759154148549394299256810365745942014",
"298377332749766946378009728161600254230",
"236744855535719246950392700826099640787"
]
},
"id": "CVE-2024-49864-a86b63b9",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c64f5fc95e9612fdf75587c8e21e494e614c18e2",
"target": {
"file": "net/rxrpc/ar-internal.h"
},
"deprecated": false
},
{
"digest": {
"function_hash": "119272095209910970482571792453388122205",
"length": 84.0
},
"id": "CVE-2024-49864-adfaed14",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bc212465326e8587325f520a052346f0b57360e6",
"target": {
"file": "net/rxrpc/ar-internal.h",
"function": "rxrpc_wake_up_io_thread"
},
"deprecated": false
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"94049312076168140811884864914227606231",
"212759154148549394299256810365745942014",
"298377332749766946378009728161600254230",
"236744855535719246950392700826099640787"
]
},
"id": "CVE-2024-49864-b595a4fa",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@56e415202b8a17de6496f4023e545fcb66f118ec",
"target": {
"file": "net/rxrpc/ar-internal.h"
},
"deprecated": false
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"273632794884361595907209315988972173668",
"126393904170366514878603186748074905737",
"163947714252545031734081769605403994807",
"237264287419586128858410913711802635570",
"282510475811605798155312474438121161398",
"252917460528012831597651176257967545640",
"278530934677564530428329050900226958019",
"297774334615226478797830260324498573314",
"185623594831850606164359407973394561273",
"29539908882427475711113962844753824646",
"17921275402698958736924162668238200125",
"262829575436118643151239702333758142558",
"280425693233268321017207995659296172066",
"191302230134158883844723015390056279691",
"201433486363397867805665834648413050481",
"4263351866382859883085138540062881810"
]
},
"id": "CVE-2024-49864-bad2e554",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cdf4bbbdb956d7426f687f38757ebca2a2759a0f",
"target": {
"file": "net/rxrpc/io_thread.c"
},
"deprecated": false
},
{
"digest": {
"function_hash": "119272095209910970482571792453388122205",
"length": 84.0
},
"id": "CVE-2024-49864-c0da0b89",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c64f5fc95e9612fdf75587c8e21e494e614c18e2",
"target": {
"file": "net/rxrpc/ar-internal.h",
"function": "rxrpc_wake_up_io_thread"
},
"deprecated": false
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"273632794884361595907209315988972173668",
"126393904170366514878603186748074905737",
"163947714252545031734081769605403994807",
"237264287419586128858410913711802635570",
"282510475811605798155312474438121161398",
"252917460528012831597651176257967545640",
"278530934677564530428329050900226958019",
"297774334615226478797830260324498573314",
"185623594831850606164359407973394561273",
"29539908882427475711113962844753824646",
"17921275402698958736924162668238200125",
"262829575436118643151239702333758142558",
"280425693233268321017207995659296172066",
"191302230134158883844723015390056279691",
"201433486363397867805665834648413050481",
"4263351866382859883085138540062881810"
]
},
"id": "CVE-2024-49864-c93f5d71",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bc212465326e8587325f520a052346f0b57360e6",
"target": {
"file": "net/rxrpc/io_thread.c"
},
"deprecated": false
},
{
"digest": {
"function_hash": "205447857913871303688616397831929621551",
"length": 617.0
},
"id": "CVE-2024-49864-ccfb529e",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c64f5fc95e9612fdf75587c8e21e494e614c18e2",
"target": {
"file": "net/rxrpc/io_thread.c",
"function": "rxrpc_encap_rcv"
},
"deprecated": false
},
{
"digest": {
"function_hash": "238941814683315622187625124040083578056",
"length": 1763.0
},
"id": "CVE-2024-49864-d2142b56",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@56e415202b8a17de6496f4023e545fcb66f118ec",
"target": {
"file": "net/rxrpc/local_object.c",
"function": "rxrpc_open_socket"
},
"deprecated": false
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"92933471831978604491441695165263505939",
"221083588120328718923257643055921699668",
"117477027999428642447994343537715376774",
"224155422685902178654253144046882530797"
]
},
"id": "CVE-2024-49864-db32a74f",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c64f5fc95e9612fdf75587c8e21e494e614c18e2",
"target": {
"file": "net/rxrpc/local_object.c"
},
"deprecated": false
},
{
"digest": {
"function_hash": "205447857913871303688616397831929621551",
"length": 617.0
},
"id": "CVE-2024-49864-df38ac9a",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bc212465326e8587325f520a052346f0b57360e6",
"target": {
"file": "net/rxrpc/io_thread.c",
"function": "rxrpc_encap_rcv"
},
"deprecated": false
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"273632794884361595907209315988972173668",
"126393904170366514878603186748074905737",
"163947714252545031734081769605403994807",
"237264287419586128858410913711802635570",
"282510475811605798155312474438121161398",
"252917460528012831597651176257967545640",
"278530934677564530428329050900226958019",
"297774334615226478797830260324498573314",
"185623594831850606164359407973394561273",
"29539908882427475711113962844753824646",
"17921275402698958736924162668238200125",
"262829575436118643151239702333758142558",
"280425693233268321017207995659296172066",
"191302230134158883844723015390056279691",
"201433486363397867805665834648413050481",
"4263351866382859883085138540062881810"
]
},
"id": "CVE-2024-49864-e1426474",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c64f5fc95e9612fdf75587c8e21e494e614c18e2",
"target": {
"file": "net/rxrpc/io_thread.c"
},
"deprecated": false
},
{
"digest": {
"function_hash": "119272095209910970482571792453388122205",
"length": 84.0
},
"id": "CVE-2024-49864-fda9048d",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@56e415202b8a17de6496f4023e545fcb66f118ec",
"target": {
"file": "net/rxrpc/ar-internal.h",
"function": "rxrpc_wake_up_io_thread"
},
"deprecated": false
}
]