CVE-2024-35894

Source
https://nvd.nist.gov/vuln/detail/CVE-2024-35894
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2024-35894.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2024-35894
Downstream
Published
2024-05-19T08:34:49Z
Modified
2025-10-17T05:11:11.953220Z
Summary
mptcp: prevent BPF accessing lowat from a subflow socket.
Details

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

mptcp: prevent BPF accessing lowat from a subflow socket.

Alexei reported the following splat:

WARNING: CPU: 32 PID: 3276 at net/mptcp/subflow.c:1430 subflowdataready+0x147/0x1c0 Modules linked in: dummy bpftestmod(O) [last unloaded: bpftestnocfi(O)] CPU: 32 PID: 3276 Comm: testprogs Tainted: GO 6.8.0-12873-g2c43c33bfd23 Call Trace: <TASK> mptcpsetrcvlowat+0x79/0x1d0 sksetsockopt+0x6c0/0x1540 _bpfsetsockopt+0x6f/0x90 bpfsockopssetsockopt+0x3c/0x90 bpfprog509ce5db2c7f9981bpftestsockoptint+0xb4/0x11b bpfprogdce07e362d941d2bbpftestsocketsockopt+0x12b/0x132 bpfprog348c9b5faaf10092skopssockopt+0x954/0xe86 _cgroupbpfrunfiltersockops+0xbc/0x250 tcpconnect+0x879/0x1160 tcpv6connect+0x50c/0x870 mptcpconnect+0x129/0x280 _inetstreamconnect+0xce/0x370 inetstreamconnect+0x36/0x50 bpftrampoline6442491565+0x49/0xef inetstreamconnect+0x5/0x50 _sysconnect+0x63/0x90 _x64sys_connect+0x14/0x20

The root cause of the issue is that bpf allows accessing mptcp-level proto_ops from a tcp subflow scope.

Fix the issue detecting the problematic call and preventing any action.

References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
124a4885b55f3039c697feb53edc5ad88bf21161
Fixed
ee3c845787b621cfe82c2e52c513024a9d7a78f5
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
5684ab1a0effbfeb706f47d85785f653005b97b1
Fixed
3ffb1ab698376f09cc33101c07c1be229389fe29
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
5684ab1a0effbfeb706f47d85785f653005b97b1
Fixed
fcf4692fa39e86a590c14a4af2de704e1d20a3b5

Affected versions

v6.*

v6.6
v6.6-rc7
v6.7
v6.7-rc1
v6.7-rc2
v6.7-rc3
v6.7-rc4
v6.7-rc5
v6.7-rc6
v6.7-rc7
v6.7-rc8
v6.8
v6.8-rc1
v6.8-rc2
v6.8-rc3
v6.8-rc4
v6.8-rc5
v6.8-rc6
v6.8-rc7
v6.8.1
v6.8.2
v6.8.3
v6.8.4
v6.9-rc1

Database specific

vanir_signatures

[
    {
        "signature_type": "Function",
        "id": "CVE-2024-35894-47f4f76a",
        "target": {
            "function": "mptcp_set_rcvlowat",
            "file": "net/mptcp/sockopt.c"
        },
        "signature_version": "v1",
        "deprecated": false,
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ee3c845787b621cfe82c2e52c513024a9d7a78f5",
        "digest": {
            "function_hash": "16512399394213532952235671185658497370",
            "length": 854.0
        }
    },
    {
        "signature_type": "Line",
        "id": "CVE-2024-35894-4ca30066",
        "target": {
            "file": "net/mptcp/sockopt.c"
        },
        "signature_version": "v1",
        "deprecated": false,
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@fcf4692fa39e86a590c14a4af2de704e1d20a3b5",
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "6168283461678315043856960289313356164",
                "65861411409188864127607013732169314609",
                "272244991081046929932407078524758614769"
            ]
        }
    },
    {
        "signature_type": "Function",
        "id": "CVE-2024-35894-75f3d4b1",
        "target": {
            "function": "mptcp_set_rcvlowat",
            "file": "net/mptcp/sockopt.c"
        },
        "signature_version": "v1",
        "deprecated": false,
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3ffb1ab698376f09cc33101c07c1be229389fe29",
        "digest": {
            "function_hash": "184838477108248433506999755191145033940",
            "length": 841.0
        }
    },
    {
        "signature_type": "Line",
        "id": "CVE-2024-35894-78de75dd",
        "target": {
            "file": "net/mptcp/sockopt.c"
        },
        "signature_version": "v1",
        "deprecated": false,
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3ffb1ab698376f09cc33101c07c1be229389fe29",
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "6168283461678315043856960289313356164",
                "65861411409188864127607013732169314609",
                "272244991081046929932407078524758614769"
            ]
        }
    },
    {
        "signature_type": "Line",
        "id": "CVE-2024-35894-b0541aca",
        "target": {
            "file": "net/mptcp/sockopt.c"
        },
        "signature_version": "v1",
        "deprecated": false,
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ee3c845787b621cfe82c2e52c513024a9d7a78f5",
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "6168283461678315043856960289313356164",
                "65861411409188864127607013732169314609",
                "272244991081046929932407078524758614769"
            ]
        }
    },
    {
        "signature_type": "Function",
        "id": "CVE-2024-35894-f1fc961e",
        "target": {
            "function": "mptcp_set_rcvlowat",
            "file": "net/mptcp/sockopt.c"
        },
        "signature_version": "v1",
        "deprecated": false,
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@fcf4692fa39e86a590c14a4af2de704e1d20a3b5",
        "digest": {
            "function_hash": "184838477108248433506999755191145033940",
            "length": 841.0
        }
    }
]

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.8.5