Message ID | 20240626194747.2561617-1-kuba@kernel.org (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] tcp_metrics: validate source addr length | expand |
On Wed, Jun 26, 2024 at 9:47 PM Jakub Kicinski <kuba@kernel.org> wrote: > > I don't see anything checking that TCP_METRICS_ATTR_SADDR_IPV4 > is at least 4 bytes long, and the policy doesn't have an entry > for this attribute at all (neither does it for IPv6 but v6 is > manually validated). > > Fixes: 8a59359cb80f ("tcp: metrics: New netlink attribute for src IP and dumped in netlink reply") This commit added dump only for these attributes. It seems the bug was added in commit 3e7013ddf55af7bc191792b8aea0c2b94fb0fef5 Author: Christoph Paasch <christoph.paasch@uclouvain.be> Date: Wed Jan 8 16:05:59 2014 +0100 tcp: metrics: Allow selective get/del of tcp-metrics based on src IP > Signed-off-by: Jakub Kicinski <kuba@kernel.org> > --- > In net-next we can make v6 use policy for validation, too. > But it will conflict, so I'll send that on Thu. Reviewed-by: Eric Dumazet <edumazet@google.com>
diff --git a/net/ipv4/tcp_metrics.c b/net/ipv4/tcp_metrics.c index e93df98de3f4..b01eb6d94413 100644 --- a/net/ipv4/tcp_metrics.c +++ b/net/ipv4/tcp_metrics.c @@ -619,6 +619,7 @@ static const struct nla_policy tcp_metrics_nl_policy[TCP_METRICS_ATTR_MAX + 1] = [TCP_METRICS_ATTR_ADDR_IPV4] = { .type = NLA_U32, }, [TCP_METRICS_ATTR_ADDR_IPV6] = { .type = NLA_BINARY, .len = sizeof(struct in6_addr), }, + [TCP_METRICS_ATTR_SADDR_IPV4] = { .type = NLA_U32, }, /* Following attributes are not received for GET/DEL, * we keep them for reference */
I don't see anything checking that TCP_METRICS_ATTR_SADDR_IPV4 is at least 4 bytes long, and the policy doesn't have an entry for this attribute at all (neither does it for IPv6 but v6 is manually validated). Fixes: 8a59359cb80f ("tcp: metrics: New netlink attribute for src IP and dumped in netlink reply") Signed-off-by: Jakub Kicinski <kuba@kernel.org> --- In net-next we can make v6 use policy for validation, too. But it will conflict, so I'll send that on Thu. --- CC: dsahern@kernel.org CC: christoph.paasch@uclouvain.be --- net/ipv4/tcp_metrics.c | 1 + 1 file changed, 1 insertion(+)