File libnl3-fix-elevation-of-privilege-vulnerability.patch of Package libnl3.25397
diff -Nurp libnl-3.2.23-orig/lib/attr.c libnl-3.2.23/lib/attr.c
--- libnl-3.2.23-orig/lib/attr.c 2013-04-28 13:20:03.000000000 +0200
+++ libnl-3.2.23/lib/attr.c 2022-08-05 09:29:49.679642589 +0200
@@ -462,6 +462,9 @@ struct nlattr *nla_reserve(struct nl_msg
struct nlattr *nla;
int tlen;
+ if (attrlen < 0)
+ return NULL;
+
tlen = NLMSG_ALIGN(msg->nm_nlh->nlmsg_len) + nla_total_size(attrlen);
if (tlen > msg->nm_size)
@@ -503,8 +506,12 @@ int nla_put(struct nl_msg *msg, int attr
struct nlattr *nla;
nla = nla_reserve(msg, attrtype, datalen);
- if (!nla)
+ if (!nla) {
+ if (datalen < 0)
+ return -NLE_INVAL;
+
return -NLE_NOMEM;
+ }
if (datalen > 0) {
memcpy(nla_data(nla), data, datalen);