{
    "dataType": "CVE_RECORD",
    "dataVersion": "5.2",
    "cveMetadata": {
        "cveId": "CVE-2026-98419",
        "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "state": "PUBLISHED",
        "assignerShortName": "Linux",
        "dateReserved": "2026-09-25T10:25:14.348Z",
        "datePublished": "2026-10-14T13:27:49.005Z",
        "dateUpdated": "2026-10-24T14:08:45.212Z"
    },
    "containers": {
        "cna": {
            "providerMetadata": {
                "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
                "shortName": "Linux",
                "dateUpdated": "2026-10-24T14:08:45.212Z"
            },
            "descriptions": [
                {
                    "lang": "en",
                    "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrop_monitor: fix out-of-bounds write in reset_per_cpu_data()\n\nIn reset_per_cpu_data(), al is computed as:\n\n    al = sizeof(struct net_dm_alert_msg);\n    al += dm_hit_limit * sizeof(struct net_dm_drop_point);\n    al += sizeof(struct nlattr);\n\n    skb = genlmsg_new(al, GFP_KERNEL);\n    ...\n    nla = nla_reserve(skb, NLA_UNSPEC, sizeof(struct net_dm_alert_msg));\n    ...\n    msg = nla_data(nla);\n    memset(msg, 0, al);\n\nBecause al includes sizeof(struct nlattr) (the 4-byte attribute header),\ngenlmsg_new() allocates al bytes of tailroom starting at nla.\nHowever, msg points to nla_data(nla), which is located\nsizeof(struct nlattr) bytes past nla. Calling memset(msg, 0, al)\ntherefore writes al bytes starting from msg, exceeding the allocated\nbuffer by sizeof(struct nlattr) (4 bytes) and corrupting\nskb_shared_info.\n\nFix this by letting al represent only the payload length, allocating\nthe skb with genlmsg_new(nla_total_size(al), GFP_KERNEL), and zeroing\nal bytes from msg."
                }
            ],
            "metrics": [
                {
                    "cvssV3_1": {
                        "version": "3.1",
                        "vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H",
                        "baseScore": 7,
                        "baseSeverity": "HIGH"
                    },
                    "scenarios": [
                        {
                            "lang": "en",
                            "value": "AV:L - On affected 2.6.32-era 4-byte-cache builds, local NETLINK_GENERIC NET_DM_CMD_START enters net_dm_cmd_trace(); locally generated drops then run trace_drop_common()->sched_send_work()->send_dm_alert()->reset_per_cpu_data(). No routable protocol message supplies al.\nAC:H - The harmful layout requires non-default CONFIG_NET_DROP_MONITOR on H8/300 or early MicroBlaze, where SMP_CACHE_BYTES is 4 and skb_shared_info begins with dataref; that rare target condition is outside attacker control. The attacker can otherwise fill the alert and control both multicast listeners without racing.\nPR:L - In those affected kernels NET_DM_CMD_START has no GENL_ADMIN_PERM, while NETLINK_GENERIC enables NL_NONROOT_RECV, so an ordinary local user can start tracing and join the alert group without a user namespace or initial-namespace capability.\nUI:N - The local attacker sends START, creates the listener sockets, generates dropped skbs, and receives the alerts; no separate victim action is required.\nS:U - The corrupted skb_shared_info and subsequent use-after-free remain within the host kernel; this is ordinary kernel compromise rather than a VM, IOMMU, or sandbox boundary crossing.\nC:H - reset_per_cpu_data() zeroes dataref from 1 to 0. After a full alert makes netlink_trim() retain the head, a second listener causes skb_clone() to count two heads as one reference; receiving the first frees the head and the second can read attacker-groomed reclaimed heap.\nI:H - The queued clone survives after its head is freed; reclaiming and forging that allocation lets its later skb_release_data() decrement and process attacker-shaped skb_shared_info metadata, providing exploitable use-after-free memory corruption.\nA:H - The prematurely freed head remains referenced by the second queued clone, so skb_copy_datagram_iovec() or its later skb_release_data() can access reclaimed memory and crash the kernel."
                        }
                    ]
                }
            ],
            "affected": [
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "unaffected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "net/core/drop_monitor.c"
                    ],
                    "versions": [
                        {
                            "version": "683703a26e4677db437a1480682851e27c7a154f",
                            "lessThan": "caf09c09e0f323015ab6777ed1bad5aa10688631",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "683703a26e4677db437a1480682851e27c7a154f",
                            "lessThan": "56b12f0cd476e4d90a0e2663a80102b388ebf78c",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "683703a26e4677db437a1480682851e27c7a154f",
                            "lessThan": "88d640efd655b10f9fa4e381caf777da1f17c2a6",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "683703a26e4677db437a1480682851e27c7a154f",
                            "lessThan": "d54a044136b129822715e8798899af540ec7a9e9",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "683703a26e4677db437a1480682851e27c7a154f",
                            "lessThan": "8a04047c6dbff2f49a561b1ff53b043f4807e855",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "683703a26e4677db437a1480682851e27c7a154f",
                            "lessThan": "530ae0a1458078c7a81fbffd9ff17d42129364d9",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "683703a26e4677db437a1480682851e27c7a154f",
                            "lessThan": "03b672eba4937ff18337049824a114012d57f202",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "683703a26e4677db437a1480682851e27c7a154f",
                            "lessThan": "439f392084f8f7f59ab9d47a9579185accefe1d8",
                            "status": "affected",
                            "versionType": "git"
                        }
                    ]
                },
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "affected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "net/core/drop_monitor.c"
                    ],
                    "versions": [
                        {
                            "version": "2.6.31",
                            "status": "affected"
                        },
                        {
                            "version": "0",
                            "lessThan": "2.6.31",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "5.10.271",
                            "lessThanOrEqual": "5.10.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "5.15.222",
                            "lessThanOrEqual": "5.15.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.1.189",
                            "lessThanOrEqual": "6.1.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.6.158",
                            "lessThanOrEqual": "6.6.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.12.112",
                            "lessThanOrEqual": "6.12.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.18.54",
                            "lessThanOrEqual": "6.18.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "7.2.8",
                            "lessThanOrEqual": "7.2.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "7.3",
                            "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.31",
                                    "versionEndExcluding": "5.10.271"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "2.6.31",
                                    "versionEndExcluding": "5.15.222"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "2.6.31",
                                    "versionEndExcluding": "6.1.189"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "2.6.31",
                                    "versionEndExcluding": "6.6.158"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "2.6.31",
                                    "versionEndExcluding": "6.12.112"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "2.6.31",
                                    "versionEndExcluding": "6.18.54"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "2.6.31",
                                    "versionEndExcluding": "7.2.8"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "2.6.31",
                                    "versionEndExcluding": "7.3"
                                }
                            ]
                        }
                    ]
                }
            ],
            "references": [
                {
                    "url": "https://git.kernel.org/stable/c/caf09c09e0f323015ab6777ed1bad5aa10688631"
                },
                {
                    "url": "https://git.kernel.org/stable/c/56b12f0cd476e4d90a0e2663a80102b388ebf78c"
                },
                {
                    "url": "https://git.kernel.org/stable/c/88d640efd655b10f9fa4e381caf777da1f17c2a6"
                },
                {
                    "url": "https://git.kernel.org/stable/c/d54a044136b129822715e8798899af540ec7a9e9"
                },
                {
                    "url": "https://git.kernel.org/stable/c/8a04047c6dbff2f49a561b1ff53b043f4807e855"
                },
                {
                    "url": "https://git.kernel.org/stable/c/530ae0a1458078c7a81fbffd9ff17d42129364d9"
                },
                {
                    "url": "https://git.kernel.org/stable/c/03b672eba4937ff18337049824a114012d57f202"
                },
                {
                    "url": "https://git.kernel.org/stable/c/439f392084f8f7f59ab9d47a9579185accefe1d8"
                }
            ],
            "title": "drop_monitor: fix out-of-bounds write in reset_per_cpu_data()",
            "x_generator": {
                "engine": "bippy-1.2.0"
            }
        }
    }
}