CVEvulnerability
CVE-2026-98419
7.0 HIGH
Official page ↗
- Status
- Received
- Published
- 2026-10-14
- Last modified
- 2026-10-24
- Assigner
- 416baaa9-dc9f-4396-8d5f-8c081fb06d67
- CVSS 3.1 (416baaa9-dc9f-4396-8d5f-8c081fb06d67)
- 7.0 HIGH — CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
Description
In the Linux kernel, the following vulnerability has been resolved:
drop_monitor: fix out-of-bounds write in reset_per_cpu_data()
In reset_per_cpu_data(), al is computed as:
al = sizeof(struct net_dm_alert_msg);
al += dm_hit_limit * sizeof(struct net_dm_drop_point);
al += sizeof(struct nlattr);
skb = genlmsg_new(al, GFP_KERNEL);
...
nla = nla_reserve(skb, NLA_UNSPEC, sizeof(struct net_dm_alert_msg));
...
msg = nla_data(nla);
memset(msg, 0, al);
Because al includes sizeof(struct nlattr) (the 4-byte attribute header),
genlmsg_new() allocates al bytes of tailroom starting at nla.
However, msg points to nla_data(nla), which is located
sizeof(struct nlattr) bytes past nla. Calling memset(msg, 0, al)
therefore writes al bytes starting from msg, exceeding the allocated
buffer by sizeof(struct nlattr) (4 bytes) and corrupting
skb_shared_info.
Fix this by letting al represent only the payload length, allocating
the skb with genlmsg_new(nla_total_size(al), GFP_KERNEL), and zeroing
al bytes from msg.
References
- https://git.kernel.org/stable/c/03b672eba4937ff18337049824a114012d57f202 git.kernel.org
- https://git.kernel.org/stable/c/439f392084f8f7f59ab9d47a9579185accefe1d8 git.kernel.org
- https://git.kernel.org/stable/c/530ae0a1458078c7a81fbffd9ff17d42129364d9 git.kernel.org
- https://git.kernel.org/stable/c/56b12f0cd476e4d90a0e2663a80102b388ebf78c git.kernel.org
- https://git.kernel.org/stable/c/88d640efd655b10f9fa4e381caf777da1f17c2a6 git.kernel.org
- https://git.kernel.org/stable/c/8a04047c6dbff2f49a561b1ff53b043f4807e855 git.kernel.org
- https://git.kernel.org/stable/c/caf09c09e0f323015ab6777ed1bad5aa10688631 git.kernel.org
- https://git.kernel.org/stable/c/d54a044136b129822715e8798899af540ec7a9e9 git.kernel.org