In the Linux kernel, the following vulnerability has been resolved:
iouring/net: fix overflow check in iorecvmsgmshotprep()
The "controllen" variable is type size_t (unsigned long). Casting it to int could lead to an integer underflow.
The checkaddoverflow() function considers the type of the destination which is type int. If we add two positive values and the result cannot fit in an integer then that's counted as an overflow.
However, if we cast "controllen" to an int and it turns negative, then negative values can fit into an int type so there is no overflow.
Good: 100 + (unsigned long)-4 = 96 <-- overflow Bad: 100 + (int)-4 = 96 <-- no overflow
I deleted the cast of the sizeof() as well. That's not a bug but the cast is unnecessary.
[
    {
        "id": "CVE-2024-35827-05c1b78b",
        "deprecated": false,
        "signature_version": "v1",
        "signature_type": "Function",
        "digest": {
            "function_hash": "31861661820468925433159550787286236142",
            "length": 508.0
        },
        "target": {
            "file": "io_uring/net.c",
            "function": "io_recvmsg_mshot_prep"
        },
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@868ec868616438df487b9e2baa5a99f8662cc47c"
    },
    {
        "id": "CVE-2024-35827-1616ad3f",
        "deprecated": false,
        "signature_version": "v1",
        "signature_type": "Line",
        "digest": {
            "line_hashes": [
                "287153237116196689013247623937292921111",
                "157214197136553937762804073861884492854",
                "304732265887613804168549686211868905815",
                "339314805167082085433070181690256754406",
                "266437426615791699957035616476021366246",
                "187995865070519232292000964873500519932",
                "223398753431039235347297230943927719103"
            ],
            "threshold": 0.9
        },
        "target": {
            "file": "io_uring/net.c"
        },
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b6563ad0d599110bd5cf8f56c47d279c3ed796fe"
    },
    {
        "id": "CVE-2024-35827-416999c8",
        "deprecated": false,
        "signature_version": "v1",
        "signature_type": "Line",
        "digest": {
            "line_hashes": [
                "287153237116196689013247623937292921111",
                "157214197136553937762804073861884492854",
                "304732265887613804168549686211868905815",
                "339314805167082085433070181690256754406",
                "266437426615791699957035616476021366246",
                "187995865070519232292000964873500519932",
                "223398753431039235347297230943927719103"
            ],
            "threshold": 0.9
        },
        "target": {
            "file": "io_uring/net.c"
        },
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@59a534690ecc3af72c6ab121aeac1237a4adae66"
    },
    {
        "id": "CVE-2024-35827-4fba1317",
        "deprecated": false,
        "signature_version": "v1",
        "signature_type": "Line",
        "digest": {
            "line_hashes": [
                "287153237116196689013247623937292921111",
                "157214197136553937762804073861884492854",
                "304732265887613804168549686211868905815",
                "339314805167082085433070181690256754406",
                "266437426615791699957035616476021366246",
                "187995865070519232292000964873500519932",
                "223398753431039235347297230943927719103"
            ],
            "threshold": 0.9
        },
        "target": {
            "file": "io_uring/net.c"
        },
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@868ec868616438df487b9e2baa5a99f8662cc47c"
    },
    {
        "id": "CVE-2024-35827-8978ca75",
        "deprecated": false,
        "signature_version": "v1",
        "signature_type": "Line",
        "digest": {
            "line_hashes": [
                "287153237116196689013247623937292921111",
                "157214197136553937762804073861884492854",
                "304732265887613804168549686211868905815",
                "339314805167082085433070181690256754406",
                "266437426615791699957035616476021366246",
                "187995865070519232292000964873500519932",
                "223398753431039235347297230943927719103"
            ],
            "threshold": 0.9
        },
        "target": {
            "file": "io_uring/net.c"
        },
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0c8c74bb59e7d77554016efc34c2d10376985e5e"
    },
    {
        "id": "CVE-2024-35827-8c70bb3e",
        "deprecated": false,
        "signature_version": "v1",
        "signature_type": "Line",
        "digest": {
            "line_hashes": [
                "287153237116196689013247623937292921111",
                "157214197136553937762804073861884492854",
                "304732265887613804168549686211868905815",
                "339314805167082085433070181690256754406",
                "266437426615791699957035616476021366246",
                "187995865070519232292000964873500519932",
                "223398753431039235347297230943927719103"
            ],
            "threshold": 0.9
        },
        "target": {
            "file": "io_uring/net.c"
        },
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8ede3db5061bb1fe28e2c9683329aafa89d2b1b4"
    },
    {
        "id": "CVE-2024-35827-b4e4bac4",
        "deprecated": false,
        "signature_version": "v1",
        "signature_type": "Function",
        "digest": {
            "function_hash": "31861661820468925433159550787286236142",
            "length": 508.0
        },
        "target": {
            "file": "io_uring/net.c",
            "function": "io_recvmsg_mshot_prep"
        },
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0c8c74bb59e7d77554016efc34c2d10376985e5e"
    },
    {
        "id": "CVE-2024-35827-d904208f",
        "deprecated": false,
        "signature_version": "v1",
        "signature_type": "Function",
        "digest": {
            "function_hash": "31861661820468925433159550787286236142",
            "length": 508.0
        },
        "target": {
            "file": "io_uring/net.c",
            "function": "io_recvmsg_mshot_prep"
        },
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b6563ad0d599110bd5cf8f56c47d279c3ed796fe"
    },
    {
        "id": "CVE-2024-35827-f783d472",
        "deprecated": false,
        "signature_version": "v1",
        "signature_type": "Function",
        "digest": {
            "function_hash": "31861661820468925433159550787286236142",
            "length": 508.0
        },
        "target": {
            "file": "io_uring/net.c",
            "function": "io_recvmsg_mshot_prep"
        },
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@59a534690ecc3af72c6ab121aeac1237a4adae66"
    },
    {
        "id": "CVE-2024-35827-fe66773e",
        "deprecated": false,
        "signature_version": "v1",
        "signature_type": "Function",
        "digest": {
            "function_hash": "31861661820468925433159550787286236142",
            "length": 508.0
        },
        "target": {
            "file": "io_uring/net.c",
            "function": "io_recvmsg_mshot_prep"
        },
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8ede3db5061bb1fe28e2c9683329aafa89d2b1b4"
    }
]