{"id":2222607,"url":"http://patchwork.ozlabs.org/api/1.2/patches/2222607/?format=json","web_url":"http://patchwork.ozlabs.org/project/netfilter-devel/patch/20260413073105.2990210-1-1468888505@139.com/","project":{"id":26,"url":"http://patchwork.ozlabs.org/api/1.2/projects/26/?format=json","name":"Netfilter Development","link_name":"netfilter-devel","list_id":"netfilter-devel.vger.kernel.org","list_email":"netfilter-devel@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260413073105.2990210-1-1468888505@139.com>","list_archive_url":null,"date":"2026-04-13T07:31:05","name":"[6.12.y] netfilter: conntrack: add missing netlink policy validations","commit_ref":null,"pull_url":null,"state":"not-applicable","archived":true,"hash":"dcbb8450e796e40025c11564a41a8c78844671cd","submitter":{"id":92514,"url":"http://patchwork.ozlabs.org/api/1.2/people/92514/?format=json","name":"Li hongliang","email":"1468888505@139.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/netfilter-devel/patch/20260413073105.2990210-1-1468888505@139.com/mbox/","series":[{"id":499657,"url":"http://patchwork.ozlabs.org/api/1.2/series/499657/?format=json","web_url":"http://patchwork.ozlabs.org/project/netfilter-devel/list/?series=499657","date":"2026-04-13T07:31:05","name":"[6.12.y] netfilter: conntrack: add missing netlink policy validations","version":1,"mbox":"http://patchwork.ozlabs.org/series/499657/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2222607/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2222607/checks/","tags":{},"related":[],"headers":{"Return-Path":"\n <netfilter-devel+bounces-11840-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","netfilter-devel@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=139.com header.i=@139.com header.a=rsa-sha256\n header.s=dkim header.b=qQaMmMcp;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=104.64.211.4; helo=sin.lore.kernel.org;\n envelope-from=netfilter-devel+bounces-11840-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (1024-bit key) header.d=139.com header.i=@139.com\n header.b=\"qQaMmMcp\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=120.232.169.111","smtp.subspace.kernel.org;\n dmarc=none (p=none dis=none) header.from=139.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=139.com"],"Received":["from sin.lore.kernel.org (sin.lore.kernel.org [104.64.211.4])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fvK1P1JWsz1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 13 Apr 2026 17:34:49 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sin.lore.kernel.org (Postfix) with ESMTP id 402C930015B0\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 13 Apr 2026 07:34:37 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 8C0143939D3;\n\tMon, 13 Apr 2026 07:34:35 +0000 (UTC)","from n169-111.mail.139.com (n169-111.mail.139.com [120.232.169.111])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 5C866389111;\n\tMon, 13 Apr 2026 07:34:31 +0000 (UTC)","from NTT-kernel-dev (unknown[60.247.85.88])\n\tby rmsmtp-lg-appmail-10-12088 (RichMail) with SMTP id 2f3869dc9bb6403-0141d;\n\tMon, 13 Apr 2026 15:31:06 +0800 (CST)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776065675; cv=none;\n b=V0MCgo/tmj7FOXgDd8K8LwxpPw1FiN2+C72wtj64eYr6zHEVTuEjcrOrr5erNueHrE+qwunnXsY0Ab/BFYyYKnpbEIXBJYv/P+tNEx1zej7Z/y8fWMo5tzuQTecZ95u48QcZ5qmyvNNcD5wC6qLn8FzR/GWPISvO0slJhzgnYfw=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776065675; c=relaxed/simple;\n\tbh=V3WFhOJ14ldxim/GRHhxMiMs5RksmKIiGzmv36LwcGI=;\n\th=From:To:Cc:Subject:Date:Message-Id:MIME-Version;\n b=iL6S//ELhSFqoUIihBvVnixsjAwK0UQjJXYRedEysWipI11KqtYzCXnCceeV2lGCbDjgDTqqEd1ey1+svzoxerP+zkwsRMAr92E//XHKJ+xTcy7vZy5lROXYw3/2b93g3X3e615mbpuFO6ScUNogXPmClXik0AEeBo2w+5WpZlA=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=none (p=none dis=none) header.from=139.com;\n spf=pass smtp.mailfrom=139.com;\n dkim=pass (1024-bit key) header.d=139.com header.i=@139.com\n header.b=qQaMmMcp; arc=none smtp.client-ip=120.232.169.111","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=139.com; s=dkim; l=0;\n\th=from:subject:message-id:to:cc:mime-version;\n\tbh=47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=;\n\tb=qQaMmMcpmhrOyLVt+UcXfuamFbGCHqy2bsfNiyFJ3axIZgV/OKtZbZ0dZOzWtKWNqVtbPCkU/9l0g\n\t kbhMszL2hnbpar21iqRGufUkcZ/Oijrh7KhdCaJyGU3pkYW9+qrbo6LUCyYDwVGq94u2D2Mr5JNFf1\n\t iFA2xTGBo62Qh2zc=","X-RM-TagInfo":"emlType=0                                       ","X-RM-SPAM":"","X-RM-SPAM-FLAG":"00000000","X-RM-TRANSID":"2f3869dc9bb6403-0141d","From":"Li hongliang <1468888505@139.com>","To":"gregkh@linuxfoundation.org,\n\tstable@vger.kernel.org,\n\tfw@strlen.de","Cc":"patches@lists.linux.dev,\n\tlinux-kernel@vger.kernel.org,\n\tpablo@netfilter.org,\n\tkadlec@netfilter.org,\n\tdavem@davemloft.net,\n\tedumazet@google.com,\n\tkuba@kernel.org,\n\tpabeni@redhat.com,\n\thorms@kernel.org,\n\tkaber@trash.net,\n\tnetfilter-devel@vger.kernel.org,\n\tcoreteam@netfilter.org,\n\tnetdev@vger.kernel.org,\n\timv4bel@gmail.com","Subject":"[PATCH 6.12.y] netfilter: conntrack: add missing netlink policy\n validations","Date":"Mon, 13 Apr 2026 15:31:05 +0800","Message-Id":"<20260413073105.2990210-1-1468888505@139.com>","X-Mailer":"git-send-email 2.34.1","Precedence":"bulk","X-Mailing-List":"netfilter-devel@vger.kernel.org","List-Id":"<netfilter-devel.vger.kernel.org>","List-Subscribe":"<mailto:netfilter-devel+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:netfilter-devel+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit"},"content":"From: Florian Westphal <fw@strlen.de>\n\n[ Upstream commit f900e1d77ee0ef87bfb5ab3fe60f0b3d8ad5ba05 ]\n\nHyunwoo Kim reports out-of-bounds access in sctp and ctnetlink.\n\nThese attributes are used by the kernel without any validation.\nExtend the netlink policies accordingly.\n\nQuoting the reporter:\n  nlattr_to_sctp() assigns the user-supplied CTA_PROTOINFO_SCTP_STATE\n  value directly to ct->proto.sctp.state without checking that it is\n  within the valid range. [..]\n\n  and: ... with exp->dir = 100, the access at\n  ct->master->tuplehash[100] reads 5600 bytes past the start of a\n  320-byte nf_conn object, causing a slab-out-of-bounds read confirmed by\n  UBSAN.\n\nFixes: 076a0ca02644 (\"netfilter: ctnetlink: add NAT support for expectations\")\nFixes: a258860e01b8 (\"netfilter: ctnetlink: add full support for SCTP to ctnetlink\")\nReported-by: Hyunwoo Kim <imv4bel@gmail.com>\nSigned-off-by: Florian Westphal <fw@strlen.de>\nSigned-off-by: Li hongliang <1468888505@139.com>\n---\n net/netfilter/nf_conntrack_netlink.c    | 2 +-\n net/netfilter/nf_conntrack_proto_sctp.c | 3 ++-\n 2 files changed, 3 insertions(+), 2 deletions(-)","diff":"diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c\nindex 323e147fe282..f51cdfba68fb 100644\n--- a/net/netfilter/nf_conntrack_netlink.c\n+++ b/net/netfilter/nf_conntrack_netlink.c\n@@ -3460,7 +3460,7 @@ ctnetlink_change_expect(struct nf_conntrack_expect *x,\n \n #if IS_ENABLED(CONFIG_NF_NAT)\n static const struct nla_policy exp_nat_nla_policy[CTA_EXPECT_NAT_MAX+1] = {\n-\t[CTA_EXPECT_NAT_DIR]\t= { .type = NLA_U32 },\n+\t[CTA_EXPECT_NAT_DIR]\t= NLA_POLICY_MAX(NLA_BE32, IP_CT_DIR_REPLY),\n \t[CTA_EXPECT_NAT_TUPLE]\t= { .type = NLA_NESTED },\n };\n #endif\ndiff --git a/net/netfilter/nf_conntrack_proto_sctp.c b/net/netfilter/nf_conntrack_proto_sctp.c\nindex 4cc97f971264..fabb2c1ca00a 100644\n--- a/net/netfilter/nf_conntrack_proto_sctp.c\n+++ b/net/netfilter/nf_conntrack_proto_sctp.c\n@@ -587,7 +587,8 @@ static int sctp_to_nlattr(struct sk_buff *skb, struct nlattr *nla,\n }\n \n static const struct nla_policy sctp_nla_policy[CTA_PROTOINFO_SCTP_MAX+1] = {\n-\t[CTA_PROTOINFO_SCTP_STATE]\t    = { .type = NLA_U8 },\n+\t[CTA_PROTOINFO_SCTP_STATE]\t    = NLA_POLICY_MAX(NLA_U8,\n+\t\t\t\t\t\t\t SCTP_CONNTRACK_HEARTBEAT_SENT),\n \t[CTA_PROTOINFO_SCTP_VTAG_ORIGINAL]  = { .type = NLA_U32 },\n \t[CTA_PROTOINFO_SCTP_VTAG_REPLY]     = { .type = NLA_U32 },\n };\n","prefixes":["6.12.y"]}