{
    "dataType": "CVE_RECORD",
    "cveMetadata": {
        "cveId": "CVE-2024-38659",
        "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "state": "PUBLISHED",
        "assignerShortName": "Linux",
        "dateReserved": "2024-06-21T10:12:11.472Z",
        "datePublished": "2024-06-21T10:28:15.337Z",
        "dateUpdated": "2026-08-05T11:33:18.969Z"
    },
    "containers": {
        "cna": {
            "providerMetadata": {
                "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
                "shortName": "Linux",
                "dateUpdated": "2026-08-05T11:33:18.969Z"
            },
            "descriptions": [
                {
                    "lang": "en",
                    "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nenic: Validate length of nl attributes in enic_set_vf_port\n\nenic_set_vf_port assumes that the nl attribute IFLA_PORT_PROFILE\nis of length PORT_PROFILE_MAX and that the nl attributes\nIFLA_PORT_INSTANCE_UUID, IFLA_PORT_HOST_UUID are of length PORT_UUID_MAX.\nThese attributes are validated (in the function do_setlink in rtnetlink.c)\nusing the nla_policy ifla_port_policy. The policy defines IFLA_PORT_PROFILE\nas NLA_STRING, IFLA_PORT_INSTANCE_UUID as NLA_BINARY and\nIFLA_PORT_HOST_UUID as NLA_STRING. That means that the length validation\nusing the policy is for the max size of the attributes and not on exact\nsize so the length of these attributes might be less than the sizes that\nenic_set_vf_port expects. This might cause an out of bands\nread access in the memcpys of the data of these\nattributes in enic_set_vf_port."
                }
            ],
            "metrics": [
                {
                    "cvssV3_1": {
                        "version": "3.1",
                        "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:H",
                        "baseScore": 7.3,
                        "baseSeverity": "HIGH"
                    },
                    "scenarios": [
                        {
                            "lang": "en",
                            "value": "AV:L - The only entry point is a locally crafted RTM_SETLINK rtnetlink message carrying IFLA_PORT_SELF/IFLA_VF_PORTS attributes; no remote peer data reaches enic_set_vf_port.\nAC:L - A single crafted netlink message with a short IFLA_PORT_PROFILE (1 byte) or zero-length IFLA_PORT_INSTANCE_UUID deterministically triggers the fixed-size memcpy over-read every time — no race, no timing window, and no memory layout the attacker must guess.\nPR:L - RTM_SETLINK requires only CAP_NET_ADMIN in the user namespace owning the netns holding the enic netdev, which a container or userns-confined principal holding a delegated enic SR-IOV VF possesses without any host privilege; reading the leaked bytes back via RTM_GETLINK requires no privileges at all.\nUI:N - The attacker sends the malformed set request and then reads back the port profile entirely on their own; no victim action is involved.\nS:U - The out-of-bounds accesses and the disclosure stay inside the kernel's own memory and security authority; no hypervisor, IOMMU, or sandbox boundary is crossed.\nC:H - Up to 40 bytes plus two 16-byte reads of adjacent kernel memory — uninitialized recycled heap slack and skb_shared_info fields containing kernel pointers — are copied into the port profile and returned verbatim to unprivileged userspace by enic_get_vf_port() via RTM_GETLINK, and the unterminated name additionally makes strlen() walk unbounded past the kmalloc'd enic->pp object into neighbouring slab data that is packed into the provisioning payload.\nI:L - There is no out-of-bounds write, but attacker-uninfluenced kernel heap bytes are committed into the driver's persistent port-profile state and shipped to the adapter firmware as a VIC provisioning TLV whose length comes from the unterminated strlen(), modifying fabric port-profile provisioning with data of a size and content the interface never permits.\nA:H - The strlen() over-read runs off the end of the small kmalloc'd enic->pp object, producing a KASAN slab-out-of-bounds report (panic under panic_on_warn) and, with DEBUG_PAGEALLOC or page poisoning, a page fault/oops when it crosses into unmapped memory — repeatable at will by the same actor."
                        }
                    ]
                }
            ],
            "affected": [
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "unaffected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "drivers/net/ethernet/cisco/enic/enic_main.c"
                    ],
                    "versions": [
                        {
                            "version": "f8bd909183acffad68780b10c1cdf36161cfd5d1",
                            "lessThan": "2b649d7e0cb42a660f0260ef25fd55fdc9c6c600",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "f8bd909183acffad68780b10c1cdf36161cfd5d1",
                            "lessThan": "ca63fb7af9d3e531aa25f7ae187bfc6c7166ec2d",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "f8bd909183acffad68780b10c1cdf36161cfd5d1",
                            "lessThan": "3c0d36972edbe56fcf98899622d9b90ac9965227",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "f8bd909183acffad68780b10c1cdf36161cfd5d1",
                            "lessThan": "25571a12fbc8a1283bd8380d461267956fd426f7",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "f8bd909183acffad68780b10c1cdf36161cfd5d1",
                            "lessThan": "7077c22f84f41974a711604a42fd0e0684232ee5",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "f8bd909183acffad68780b10c1cdf36161cfd5d1",
                            "lessThan": "f6638e955ca00c489894789492776842e102af9c",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "f8bd909183acffad68780b10c1cdf36161cfd5d1",
                            "lessThan": "aee1955a1509a921c05c70dad5d6fc8563dfcb31",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "f8bd909183acffad68780b10c1cdf36161cfd5d1",
                            "lessThan": "e8021b94b0412c37bcc79027c2e382086b6ce449",
                            "status": "affected",
                            "versionType": "git"
                        }
                    ]
                },
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "affected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "drivers/net/ethernet/cisco/enic/enic_main.c"
                    ],
                    "versions": [
                        {
                            "version": "2.6.35",
                            "status": "affected"
                        },
                        {
                            "version": "0",
                            "lessThan": "2.6.35",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "4.19.316",
                            "lessThanOrEqual": "4.19.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "5.4.278",
                            "lessThanOrEqual": "5.4.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "5.10.219",
                            "lessThanOrEqual": "5.10.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "5.15.161",
                            "lessThanOrEqual": "5.15.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.1.93",
                            "lessThanOrEqual": "6.1.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.6.33",
                            "lessThanOrEqual": "6.6.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.9.4",
                            "lessThanOrEqual": "6.9.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.10",
                            "lessThanOrEqual": "*",
                            "status": "unaffected",
                            "versionType": "original_commit_for_fix"
                        }
                    ]
                }
            ],
            "cpeApplicability": [
                {
                    "nodes": [
                        {
                            "operator": "OR",
                            "negate": false,
                            "cpeMatch": [
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "2.6.35",
                                    "versionEndExcluding": "4.19.316"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "2.6.35",
                                    "versionEndExcluding": "5.4.278"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "2.6.35",
                                    "versionEndExcluding": "5.10.219"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "2.6.35",
                                    "versionEndExcluding": "5.15.161"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "2.6.35",
                                    "versionEndExcluding": "6.1.93"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "2.6.35",
                                    "versionEndExcluding": "6.6.33"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "2.6.35",
                                    "versionEndExcluding": "6.9.4"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "2.6.35",
                                    "versionEndExcluding": "6.10"
                                }
                            ]
                        }
                    ]
                }
            ],
            "references": [
                {
                    "url": "https://git.kernel.org/stable/c/2b649d7e0cb42a660f0260ef25fd55fdc9c6c600"
                },
                {
                    "url": "https://git.kernel.org/stable/c/ca63fb7af9d3e531aa25f7ae187bfc6c7166ec2d"
                },
                {
                    "url": "https://git.kernel.org/stable/c/3c0d36972edbe56fcf98899622d9b90ac9965227"
                },
                {
                    "url": "https://git.kernel.org/stable/c/25571a12fbc8a1283bd8380d461267956fd426f7"
                },
                {
                    "url": "https://git.kernel.org/stable/c/7077c22f84f41974a711604a42fd0e0684232ee5"
                },
                {
                    "url": "https://git.kernel.org/stable/c/f6638e955ca00c489894789492776842e102af9c"
                },
                {
                    "url": "https://git.kernel.org/stable/c/aee1955a1509a921c05c70dad5d6fc8563dfcb31"
                },
                {
                    "url": "https://git.kernel.org/stable/c/e8021b94b0412c37bcc79027c2e382086b6ce449"
                }
            ],
            "title": "enic: Validate length of nl attributes in enic_set_vf_port",
            "x_generator": {
                "engine": "bippy-1.2.0"
            }
        },
        "adp": [
            {
                "metrics": [
                    {
                        "other": {
                            "type": "ssvc",
                            "content": {
                                "timestamp": "2024-06-21T13:26:27.611937Z",
                                "id": "CVE-2024-38659",
                                "options": [
                                    {
                                        "Exploitation": "none"
                                    },
                                    {
                                        "Automatable": "no"
                                    },
                                    {
                                        "Technical Impact": "partial"
                                    }
                                ],
                                "role": "CISA Coordinator",
                                "version": "2.0.3"
                            }
                        }
                    }
                ],
                "title": "CISA ADP Vulnrichment",
                "providerMetadata": {
                    "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
                    "shortName": "CISA-ADP",
                    "dateUpdated": "2024-06-21T13:26:37.555Z"
                }
            },
            {
                "title": "CVE Program Container",
                "references": [
                    {
                        "url": "https://git.kernel.org/stable/c/2b649d7e0cb42a660f0260ef25fd55fdc9c6c600",
                        "tags": [
                            "x_transferred"
                        ]
                    },
                    {
                        "url": "https://git.kernel.org/stable/c/ca63fb7af9d3e531aa25f7ae187bfc6c7166ec2d",
                        "tags": [
                            "x_transferred"
                        ]
                    },
                    {
                        "url": "https://git.kernel.org/stable/c/3c0d36972edbe56fcf98899622d9b90ac9965227",
                        "tags": [
                            "x_transferred"
                        ]
                    },
                    {
                        "url": "https://git.kernel.org/stable/c/25571a12fbc8a1283bd8380d461267956fd426f7",
                        "tags": [
                            "x_transferred"
                        ]
                    },
                    {
                        "url": "https://git.kernel.org/stable/c/7077c22f84f41974a711604a42fd0e0684232ee5",
                        "tags": [
                            "x_transferred"
                        ]
                    },
                    {
                        "url": "https://git.kernel.org/stable/c/f6638e955ca00c489894789492776842e102af9c",
                        "tags": [
                            "x_transferred"
                        ]
                    },
                    {
                        "url": "https://git.kernel.org/stable/c/aee1955a1509a921c05c70dad5d6fc8563dfcb31",
                        "tags": [
                            "x_transferred"
                        ]
                    },
                    {
                        "url": "https://git.kernel.org/stable/c/e8021b94b0412c37bcc79027c2e382086b6ce449",
                        "tags": [
                            "x_transferred"
                        ]
                    },
                    {
                        "url": "https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html"
                    }
                ],
                "providerMetadata": {
                    "orgId": "af854a3a-2127-422b-91ae-364da2661108",
                    "shortName": "CVE",
                    "dateUpdated": "2025-11-04T17:21:55.964Z"
                }
            },
            {
                "x_adpType": "supplier",
                "providerMetadata": {
                    "orgId": "0b142b55-0307-4c5a-b3c9-f314f3fb7c5e",
                    "shortName": "siemens-SADP",
                    "dateUpdated": "2026-05-12T11:55:14.627Z"
                },
                "affected": [
                    {
                        "vendor": "Siemens",
                        "product": "RUGGEDCOM RST2428P",
                        "versions": [
                            {
                                "status": "affected",
                                "version": "0",
                                "lessThan": "V3.1",
                                "versionType": "custom"
                            }
                        ],
                        "defaultStatus": "unknown"
                    },
                    {
                        "vendor": "Siemens",
                        "product": "SCALANCE XC-300/XR-300/XC-400/XR-500WG/XR-500 family",
                        "versions": [
                            {
                                "status": "unaffected",
                                "version": "0",
                                "lessThan": "*",
                                "versionType": "custom"
                            }
                        ],
                        "defaultStatus": "unknown"
                    },
                    {
                        "vendor": "Siemens",
                        "product": "SCALANCE XCM-/XRM-/XCH-/XRH-300 family",
                        "versions": [
                            {
                                "status": "affected",
                                "version": "0",
                                "lessThan": "V3.1",
                                "versionType": "custom"
                            }
                        ],
                        "defaultStatus": "unknown"
                    },
                    {
                        "vendor": "Siemens",
                        "product": "SIMATIC S7-1500 TM MFP - GNU/Linux subsystem",
                        "versions": [
                            {
                                "status": "affected",
                                "version": "0",
                                "lessThan": "*",
                                "versionType": "custom"
                            }
                        ],
                        "defaultStatus": "unknown"
                    }
                ],
                "references": [
                    {
                        "url": "https://cert-portal.siemens.com/productcert/html/ssa-265688.html"
                    },
                    {
                        "url": "https://cert-portal.siemens.com/productcert/html/ssa-613116.html"
                    }
                ]
            }
        ]
    },
    "dataVersion": "5.2"
}