<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/ipv6/exthdrs.c, branch linux-6.18.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.18.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.18.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2026-03-04T12:21:30Z</updated>
<entry>
<title>ipv6: ioam: fix heap buffer overflow in __ioam6_fill_trace_data()</title>
<updated>2026-03-04T12:21:30Z</updated>
<author>
<name>Qanux</name>
</author>
<published>2026-02-11T04:04:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e90346a2f1e8917d5760a44a1f61c44e3b36d96b'/>
<id>urn:sha1:e90346a2f1e8917d5760a44a1f61c44e3b36d96b</id>
<content type='text'>
[ Upstream commit 6db8b56eed62baacaf37486e83378a72635c04cc ]

On the receive path, __ioam6_fill_trace_data() uses trace-&gt;nodelen
to decide how much data to write for each node. It trusts this field
as-is from the incoming packet, with no consistency check against
trace-&gt;type (the 24-bit field that tells which data items are
present). A crafted packet can set nodelen=0 while setting type bits
0-21, causing the function to write ~100 bytes past the allocated
region (into skb_shared_info), which corrupts adjacent heap memory
and leads to a kernel panic.

Add a shared helper ioam6_trace_compute_nodelen() in ioam6.c to
derive the expected nodelen from the type field, and use it:

  - in ioam6_iptunnel.c (send path, existing validation) to replace
    the open-coded computation;
  - in exthdrs.c (receive path, ipv6_hop_ioam) to drop packets whose
    nodelen is inconsistent with the type field, before any data is
    written.

Per RFC 9197, bits 12-21 are each short (4-octet) fields, so they
are included in IOAM6_MASK_SHORT_FIELDS (changed from 0xff100000 to
0xff1ffc00).

Fixes: 9ee11f0fff20 ("ipv6: ioam: Data plane support for Pre-allocated Trace")
Cc: stable@vger.kernel.org
Signed-off-by: Junxi Qian &lt;qjx1298677004@gmail.com&gt;
Reviewed-by: Justin Iurman &lt;justin.iurman@gmail.com&gt;
Link: https://patch.msgid.link/20260211040412.86195-1-qjx1298677004@gmail.com
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>ipv6: exthdrs: annotate data-race over multiple sysctl</title>
<updated>2026-03-04T12:20:17Z</updated>
<author>
<name>Eric Dumazet</name>
</author>
<published>2026-01-15T09:41:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c315d742675a514c64dc186eb9aed9a09e2ec26e'/>
<id>urn:sha1:c315d742675a514c64dc186eb9aed9a09e2ec26e</id>
<content type='text'>
[ Upstream commit 978b67d28358b0b4eacfa94453d1ad4e09b123ad ]

Following four sysctls can change under us, add missing READ_ONCE().

- ipv6.sysctl.max_dst_opts_len
- ipv6.sysctl.max_dst_opts_cnt
- ipv6.sysctl.max_hbh_opts_len
- ipv6.sysctl.max_hbh_opts_cnt

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Reviewed-by: Simon Horman &lt;horms@kernel.org&gt;
Link: https://patch.msgid.link/20260115094141.3124990-8-edumazet@google.com
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>ipv6: annotate data-races around devconf-&gt;rpl_seg_enabled</title>
<updated>2025-09-03T00:01:06Z</updated>
<author>
<name>Yue Haibing</name>
</author>
<published>2025-09-01T12:37:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3a5f55500f3e93cf4d62351c753452279b088b4b'/>
<id>urn:sha1:3a5f55500f3e93cf4d62351c753452279b088b4b</id>
<content type='text'>
devconf-&gt;rpl_seg_enabled can be changed concurrently from
/proc/sys/net/ipv6/conf, annotate lockless reads on it.

Signed-off-by: Yue Haibing &lt;yuehaibing@huawei.com&gt;
Link: https://patch.msgid.link/20250901123726.1972881-2-yuehaibing@huawei.com
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>ipv6: adopt skb_dst_dev() and skb_dst_dev_net[_rcu]() helpers</title>
<updated>2025-07-02T21:32:30Z</updated>
<author>
<name>Eric Dumazet</name>
</author>
<published>2025-06-30T12:19:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=93d1cff35adc522a5d21e722eee1071f3f7dc716'/>
<id>urn:sha1:93d1cff35adc522a5d21e722eee1071f3f7dc716</id>
<content type='text'>
Use the new helpers as a step to deal with potential dst-&gt;dev races.

v2: fix typo in ipv6_rthdr_rcv() (kernel test robot &lt;lkp@intel.com&gt;)

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Reviewed-by: Kuniyuki Iwashima &lt;kuniyu@google.com&gt;
Link: https://patch.msgid.link/20250630121934.3399505-10-edumazet@google.com
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>ipv6: adopt dst_dev() helper</title>
<updated>2025-07-02T21:32:30Z</updated>
<author>
<name>Eric Dumazet</name>
</author>
<published>2025-06-30T12:19:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1caf27297215a5241f9bfc9c07336349d9034ee3'/>
<id>urn:sha1:1caf27297215a5241f9bfc9c07336349d9034ee3</id>
<content type='text'>
Use the new helper as a step to deal with potential dst-&gt;dev races.

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Reviewed-by: Kuniyuki Iwashima &lt;kuniyu@google.com&gt;
Link: https://patch.msgid.link/20250630121934.3399505-9-edumazet@google.com
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>net: use sock_kmemdup for ip_options</title>
<updated>2025-03-04T01:16:34Z</updated>
<author>
<name>Geliang Tang</name>
</author>
<published>2025-02-28T10:01:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=483cec55c1ccb9deeefb515fbeb181f736c41736'/>
<id>urn:sha1:483cec55c1ccb9deeefb515fbeb181f736c41736</id>
<content type='text'>
Instead of using sock_kmalloc() to allocate an ip_options and then
immediately duplicate another ip_options to the newly allocated one in
ipv6_dup_options(), mptcp_copy_ip_options() and sctp_v4_copy_ip_options(),
the newly added sock_kmemdup() helper can be used to simplify the code.

Signed-off-by: Geliang Tang &lt;tanggeliang@kylinos.cn&gt;
Reviewed-by: Kuniyuki Iwashima &lt;kuniyu@amazon.com&gt;
Acked-by: Matthieu Baerts (NGI0) &lt;matttbe@kernel.org&gt;
Link: https://patch.msgid.link/91ae749d66600ec6fb679e0e518fda6acb5c3e6f.1740735165.git.tanggeliang@kylinos.cn
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>net: ipv6: exthdrs: get rid of ipv6_skb_net()</title>
<updated>2024-03-11T22:15:08Z</updated>
<author>
<name>Justin Iurman</name>
</author>
<published>2024-03-08T18:53:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fcac05daa7efcf96f8042bd06abd4da384ac3cd3'/>
<id>urn:sha1:fcac05daa7efcf96f8042bd06abd4da384ac3cd3</id>
<content type='text'>
Get rid of ipv6_skb_net() which is only used in ipv6_hop_ioam().

Signed-off-by: Justin Iurman &lt;justin.iurman@uliege.be&gt;
Link: https://lore.kernel.org/r/20240308185343.39272-1-justin.iurman@uliege.be
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>net: adopt skb_network_offset() and similar helpers</title>
<updated>2024-03-04T08:47:06Z</updated>
<author>
<name>Eric Dumazet</name>
</author>
<published>2024-02-29T09:39:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=80bfab79b8351c8d858e6928a091b57c103dce29'/>
<id>urn:sha1:80bfab79b8351c8d858e6928a091b57c103dce29</id>
<content type='text'>
This is a cleanup patch, making code a bit more concise.

1) Use skb_network_offset(skb) in place of
       (skb_network_header(skb) - skb-&gt;data)

2) Use -skb_network_offset(skb) in place of
       (skb-&gt;data - skb_network_header(skb))

3) Use skb_transport_offset(skb) in place of
       (skb_transport_header(skb) - skb-&gt;data)

4) Use skb_inner_transport_offset(skb) in place of
       (skb_inner_transport_header(skb) - skb-&gt;data)

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Acked-by: Edward Cree &lt;ecree.xilinx@gmail.com&gt; # for sfc
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv6/addrconf: annotate data-races around devconf fields (II)</title>
<updated>2024-03-01T08:42:33Z</updated>
<author>
<name>Eric Dumazet</name>
</author>
<published>2024-02-28T13:54:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2f0ff05a44302c91af54a5f9efe1b65b7681540e'/>
<id>urn:sha1:2f0ff05a44302c91af54a5f9efe1b65b7681540e</id>
<content type='text'>
Final (?) round of this series.

Annotate lockless reads on following devconf fields,
because they be changed concurrently from /proc/net/ipv6/conf.

- accept_dad
- optimistic_dad
- use_optimistic
- use_oif_addrs_only
- ra_honor_pio_life
- keep_addr_on_down
- ndisc_notify
- ndisc_evict_nocarrier
- suppress_frag_ndisc
- addr_gen_mode
- seg6_enabled
- ioam6_enabled
- ioam6_id
- ioam6_id_wide
- drop_unicast_in_l2_multicast
- mldv[12]_unsolicited_report_interval
- force_mld_version
- force_tllao
- accept_untracked_na
- drop_unsolicited_na
- accept_source_route

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Reviewed-by: Jiri Pirko &lt;jiri@nvidia.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: exthdrs: ioam6: send trace event</title>
<updated>2024-02-28T11:19:41Z</updated>
<author>
<name>Justin Iurman</name>
</author>
<published>2024-02-26T13:14:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f655c78d6225f585ef60a9d93ffb79d507ff3ad3'/>
<id>urn:sha1:f655c78d6225f585ef60a9d93ffb79d507ff3ad3</id>
<content type='text'>
If we're processing an IOAM Pre-allocated Trace Option-Type (the only
one supported currently), then send the trace as an ioam6 event to the
netlink multicast group. This way, user space apps will be able to
collect IOAM data.

Reviewed-by: David Ahern &lt;dsahern@kernel.org&gt;
Signed-off-by: Justin Iurman &lt;justin.iurman@uliege.be&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
