{"id":2221501,"url":"http://patchwork.ozlabs.org/api/1.2/patches/2221501/?format=json","web_url":"http://patchwork.ozlabs.org/project/netfilter-devel/patch/20260409095056.706441-2-bestswngs@gmail.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":"<20260409095056.706441-2-bestswngs@gmail.com>","list_archive_url":null,"date":"2026-04-09T09:50:57","name":"[nf] netfilter: nf_conntrack_sip: fix OOB read in epaddr_len and ct_sip_parse_header_uri","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"24c0f7ef41b3ac87c16628fb6f1c2e9be07c0d9c","submitter":{"id":92941,"url":"http://patchwork.ozlabs.org/api/1.2/people/92941/?format=json","name":"Weiming Shi","email":"bestswngs@gmail.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/netfilter-devel/patch/20260409095056.706441-2-bestswngs@gmail.com/mbox/","series":[{"id":499313,"url":"http://patchwork.ozlabs.org/api/1.2/series/499313/?format=json","web_url":"http://patchwork.ozlabs.org/project/netfilter-devel/list/?series=499313","date":"2026-04-09T09:50:57","name":"[nf] netfilter: nf_conntrack_sip: fix OOB read in epaddr_len and ct_sip_parse_header_uri","version":1,"mbox":"http://patchwork.ozlabs.org/series/499313/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2221501/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2221501/checks/","tags":{},"related":[],"headers":{"Return-Path":"\n <netfilter-devel+bounces-11774-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 (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=K1NYr8nc;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=netfilter-devel+bounces-11774-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com\n header.b=\"K1NYr8nc\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=209.85.215.171","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=gmail.com"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\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 4fs3LR3bp1z1yD3\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 10 Apr 2026 01:11:43 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 5CC64304CA45\n\tfor <incoming@patchwork.ozlabs.org>; Thu,  9 Apr 2026 15:07:50 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 82DD63C3C0E;\n\tThu,  9 Apr 2026 15:07:49 +0000 (UTC)","from mail-pg1-f171.google.com (mail-pg1-f171.google.com\n [209.85.215.171])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id EA0A13D34B6\n\tfor <netfilter-devel@vger.kernel.org>; Thu,  9 Apr 2026 15:07:47 +0000 (UTC)","by mail-pg1-f171.google.com with SMTP id\n 41be03b00d2f7-c06cb8004e8so507571a12.0\n        for <netfilter-devel@vger.kernel.org>;\n Thu, 09 Apr 2026 08:07:47 -0700 (PDT)","from SLSGDTSWING002.tail0ac356.ts.net ([129.126.109.177])\n        by smtp.gmail.com with ESMTPSA id\n d9443c01a7336-2b27497af47sm312363305ad.42.2026.04.09.08.07.43\n        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n        Thu, 09 Apr 2026 08:07:46 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775747269; cv=none;\n b=LYf5/q1zP3xCmULgtcnJlb+Sd/qurQsXMxyZPSTfcqHzzmelHhb7andTbojXYm2kZNoVAVfVW+fpE8wx57SrMEbpyNv/envmsDwPSzyYsEaytKimhcBx6S90x93/o/MqfRN/s2iL4JC5YH1LV8KPvh1/gkZPX4wrIkOjV+tzTc0=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775747269; c=relaxed/simple;\n\tbh=Tzx1JoLPABShYM1Pm3RTCn9DyXuxVz/UCK8Zh9PzwWQ=;\n\th=From:To:Cc:Subject:Date:Message-ID:MIME-Version;\n b=UnYMkFTYd7dBTZh5W5+W4wqZYpI/g7tH+14ii8+sp+gdaHpHA+u1in/aoOO3aSH62wUOyqNpr5jF9aXWjGLBIPgPW2piOTgTmXkTcwJTw7C86nhCaeB6tggj6dSw0S5EqC7m5d4pbSSMswthyGYVkzVImIxsFDnQKBQYBa8DkWE=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com;\n spf=pass smtp.mailfrom=gmail.com;\n dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com\n header.b=K1NYr8nc; arc=none smtp.client-ip=209.85.215.171","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=gmail.com; s=20251104; t=1775747267; x=1776352067;\n darn=vger.kernel.org;\n        h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n         :to:from:from:to:cc:subject:date:message-id:reply-to;\n        bh=PrEq8JFBlKt4BxwmLLBZiPMRBW9tfYXXYLLd/dH/SyE=;\n        b=K1NYr8ncZ7rDgEspHQQy3QHmOK2zePYvr1Y/8hWeYphQM8gDSZO73Px+8E7JCfZ+8f\n         5pb+QBGtVyQX0HJgArVXV7MhpjCIqfnNYR3s71h5cEfxiOK4FhQXnJV0Qhsn6dJrSzQv\n         gYq7DUaLSop3GgBGksn7MEJdEJ0ZPnjJ4DHpSUGRJLyTn4qg1qg6leTAzcSppzGctOJq\n         VHVpqtmqyBbPUdToOPr/EcVfgGpFlU4CM10/CctapHwjpbatQ2ScoZ1ka3lOwwPmsg45\n         LzP8wLgXIxF+qYEbSEvoNUvEMsR9xFpdwaKFWhflad4bC4ogrQuy+/CHd6mMKrMPD4O8\n         RivA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1775747267; x=1776352067;\n        h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n         :message-id:reply-to;\n        bh=PrEq8JFBlKt4BxwmLLBZiPMRBW9tfYXXYLLd/dH/SyE=;\n        b=tH0aRe3XeyJsvm1h8ApJ9WoIxWcCgyi3HJbx/gYlI+3xboJSDQ+kRtqZD484wgCtb9\n         brk8dY4BYYh8tH5HIR+0Wr8/HYYN1DPksGR1aOcFtwu8a0vtGiT69olOxo6ETaf74paN\n         R8PVi4OsJ6PggyfOtyXH8v1ViYYn+gVtZrDY8Lvgh+eJauCF543Onn5p6sqdk7egfRdG\n         BTqTfkkaUd8tPigIvo0AenDNWK80t+Ufoel1doOD6sWhfFjPwEF/7+yp2tUXgM8HBYcM\n         6QiaWkMc5twIOObNLMIACCv+dd/LJrOjIB/bCPbJHzrraLOjc8GtvfPLgSoDTg4QwBYE\n         4Egg==","X-Forwarded-Encrypted":"i=1;\n AJvYcCX5nYdQXJZzmqom7+jHsE3FQJeUYV87BHn9ffTHQC8KJsNH8U4FVLWcAfq27k0CBZYZALzPEJ2i6WG/6dJtwFQ=@vger.kernel.org","X-Gm-Message-State":"AOJu0YxAY9HlPwTYBKaywdo333gYJ3Ug/yQ0gJC1B5YOlL4ysS1JWtQR\n\tG3DCM+9DgVJN55d8/dFExAuPqFtAilQXQfenpsVhq1SeWy2UilIdYy5A","X-Gm-Gg":"AeBDievYJDl59sarnZ2ehdSO91EXcl+WlRREgwrFW8NWwj++xn64XBEYbeim8XYdE55\n\t9RAxL1Ll2Y3IUb0phuRTC8MUVmejPxaY9HaoM/AZLW5GOkADEEyQYOjGUZUYxtr1BJr7Fz0i502\n\tc971Z4+ZsVzZvHzpJrLZZgdKIrY5kKYzJ9kJLYfYs2Ad8sF8/Q8/tGy4RwlG+BEJYduOkDA3GUi\n\tK8xbGJ+o/451PTbhN4gSGb+qB6CnlpMmINheWlS9mQ0brVRjRjbrnazJEtzzoXvRRZDOm2TqkOJ\n\t8e3bOrff7t9dzL3nTcoRV0QpRPxB4jsNn6kwe/ULzD/m8gWKxKQ2oa43DDTXMl8exfw4BrGxosw\n\tAwKzmGMOLVR2CTJ3bZsQf3Ma1FBqKruaa+nGAfod7rmarbdpkz6xdSOyre2KhG4d3d2iuzOpncK\n\tIv9RfGK7pJBmkfy1lZokbI0iBptQbUfJPsKGmkrWl3iKB16g6a0tK6bRYTb8Gvdf9BL4VW+t71o\n\tInlx9mDjOSpf8Z0BuGq1Ss=","X-Received":"by 2002:a17:903:22c6:b0:2ae:3b9b:db34 with SMTP id\n d9443c01a7336-2b28188da6amr269183375ad.42.1775747267056;\n        Thu, 09 Apr 2026 08:07:47 -0700 (PDT)","From":"Weiming Shi <bestswngs@gmail.com>","To":"Pablo Neira Ayuso <pablo@netfilter.org>,\n\tFlorian Westphal <fw@strlen.de>,\n\t\"David S . Miller\" <davem@davemloft.net>,\n\tEric Dumazet <edumazet@google.com>,\n\tJakub Kicinski <kuba@kernel.org>,\n\tPaolo Abeni <pabeni@redhat.com>","Cc":"Phil Sutter <phil@nwl.cc>,\n\tSimon Horman <horms@kernel.org>,\n\tPatrick McHardy <kaber@trash.net>,\n\tnetfilter-devel@vger.kernel.org,\n\tcoreteam@netfilter.org,\n\tnetdev@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org,\n\tXiang Mei <xmei5@asu.edu>,\n\tWeiming Shi <bestswngs@gmail.com>","Subject":"[PATCH nf] netfilter: nf_conntrack_sip: fix OOB read in epaddr_len\n and ct_sip_parse_header_uri","Date":"Thu,  9 Apr 2026 17:50:57 +0800","Message-ID":"<20260409095056.706441-2-bestswngs@gmail.com>","X-Mailer":"git-send-email 2.43.0","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":"In epaddr_len() and ct_sip_parse_header_uri(), after sip_parse_addr()\nsuccessfully parses an IP address, the code checks whether the next\ncharacter is ':' to determine if a port number follows. However,\nneither function verifies that the pointer is still within bounds\nbefore dereferencing it.\n\nWhen a SIP header URI contains an IP address that extends to the last\nbyte of the packet data, in4_pton() or in6_pton() consumes all\navailable bytes and returns with the end pointer equal to limit. The\nsubsequent dereference reads one byte past the valid SIP message data.\n\nct_sip_parse_request() already handles this correctly:\n\n    if (end < limit && *end == ':') {\n\nApply the same bounds check to the two functions that are missing it.\n\nFixes: 9fafcd7b2032 (\"[NETFILTER]: nf_conntrack/nf_nat: add SIP helper port\")\nReported-by: Xiang Mei <xmei5@asu.edu>\nSigned-off-by: Weiming Shi <bestswngs@gmail.com>\n---\n net/netfilter/nf_conntrack_sip.c | 4 ++--\n 1 file changed, 2 insertions(+), 2 deletions(-)","diff":"diff --git a/net/netfilter/nf_conntrack_sip.c b/net/netfilter/nf_conntrack_sip.c\nindex 939502ff7c87..83741901c6fb 100644\n--- a/net/netfilter/nf_conntrack_sip.c\n+++ b/net/netfilter/nf_conntrack_sip.c\n@@ -194,7 +194,7 @@ static int epaddr_len(const struct nf_conn *ct, const char *dptr,\n \t}\n \n \t/* Port number */\n-\tif (*dptr == ':') {\n+\tif (dptr < limit && *dptr == ':') {\n \t\tdptr++;\n \t\tdptr += digits_len(ct, dptr, limit, shift);\n \t}\n@@ -520,7 +520,7 @@ int ct_sip_parse_header_uri(const struct nf_conn *ct, const char *dptr,\n \n \tif (!sip_parse_addr(ct, dptr + *matchoff, &c, addr, limit, true))\n \t\treturn -1;\n-\tif (*c == ':') {\n+\tif (c < limit && *c == ':') {\n \t\tc++;\n \t\tp = simple_strtoul(c, (char **)&c, 10);\n \t\tif (p < 1024 || p > 65535)\n","prefixes":["nf"]}