diff -drupN a/net/ipv6/ip6_gre.c b/net/ipv6/ip6_gre.c
--- a/net/ipv6/ip6_gre.c	2018-08-06 17:23:04.000000000 +0300
+++ b/net/ipv6/ip6_gre.c	2022-06-12 05:28:14.000000000 +0300
@@ -562,6 +562,8 @@ static inline int ip6gre_xmit_ipv4(struc
 	if (t->parms.flags & IP6_TNL_F_USE_ORIG_FWMARK)
 		fl6.flowi6_mark = skb->mark;
 
+	fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL);
+
 	err = gre_handle_offloads(skb, !!(t->parms.o_flags & TUNNEL_CSUM));
 	if (err)
 		return -1;
@@ -621,6 +623,8 @@ static inline int ip6gre_xmit_ipv6(struc
 	if (t->parms.flags & IP6_TNL_F_USE_ORIG_FWMARK)
 		fl6.flowi6_mark = skb->mark;
 
+	fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL);
+
 	if (gre_handle_offloads(skb, !!(t->parms.o_flags & TUNNEL_CSUM)))
 		return -1;