]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
xfrm: restrict netlink attributes for XFRM_MSG_MIGRATE_STATE
authorAntony Antony <antony.antony@secunet.com>
Tue, 26 May 2026 19:10:03 +0000 (21:10 +0200)
committerSteffen Klassert <steffen.klassert@secunet.com>
Thu, 4 Jun 2026 10:22:48 +0000 (12:22 +0200)
Only accept XFRMA used in this method, reject the rest.

Signed-off-by: Antony Antony <antony.antony@secunet.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
net/xfrm/xfrm_user.c

index b9fbb8d13c1ab0ee0301647ffbb9091511b907d5..e1010b5315e9997efb8f5dcd7ec58c8bbae329c4 100644 (file)
@@ -3788,6 +3788,30 @@ static int xfrm_reject_unused_attr(int type, struct nlattr **attrs,
                }
        }
 
+       if (type == XFRM_MSG_MIGRATE_STATE) {
+               int i;
+
+               for (i = 0; i <= XFRMA_MAX; i++) {
+                       if (!attrs[i])
+                               continue;
+
+                       switch (i) {
+                       case XFRMA_MARK:
+                       case XFRMA_ENCAP:
+                       case XFRMA_OFFLOAD_DEV:
+                       case XFRMA_SET_MARK:
+                       case XFRMA_SET_MARK_MASK:
+                       case XFRMA_MTIMER_THRESH:
+                       case XFRMA_NAT_KEEPALIVE_INTERVAL:
+                               break;
+                       default:
+                               NL_SET_ERR_MSG_ATTR(extack, attrs[i],
+                                                   "Unsupported attribute in XFRM_MSG_MIGRATE_STATE");
+                               return -EINVAL;
+                       }
+               }
+       }
+
        return 0;
 }