From fc79fd0be5d6058c343c29c0d73d8753529e50fc Mon Sep 17 00:00:00 2001 From: "Sergio R. Caprile" Date: Tue, 3 Nov 2026 10:59:34 -0300 Subject: [PATCH] avoid cross IP version feeds --- mongoose.c | 1 + src/net_builtin.c | 1 + 2 files changed, 2 insertions(+) diff --git a/mongoose.c b/mongoose.c index 20426a7a..b3f3bf58 100644 --- a/mongoose.c +++ b/mongoose.c @@ -9267,6 +9267,7 @@ static struct mg_connection *getpeer(struct mg_mgr *mgr, struct pkt *pkt, if (!c->is_udp && pkt->tcp && c->loc.port == pkt->tcp->dport && ((lsn && c->is_listening && !(c->loc.is_ip6 ^ (pkt->ip6 != NULL))) || (!lsn && !c->is_listening && c->rem.port == pkt->tcp->sport && + !(c->loc.is_ip6 ^ (pkt->ip6 != NULL)) && // IP or IPv6 to same dest ((!c->loc.is_ip6 && c->rem.addr.ip4 == pkt->ip->src) #if MG_ENABLE_IPV6 || (c->loc.is_ip6 && MG_IP6MATCH(c->rem.addr.ip6, pkt->ip6->src)) diff --git a/src/net_builtin.c b/src/net_builtin.c index ec9882f0..092df215 100644 --- a/src/net_builtin.c +++ b/src/net_builtin.c @@ -595,6 +595,7 @@ static struct mg_connection *getpeer(struct mg_mgr *mgr, struct pkt *pkt, if (!c->is_udp && pkt->tcp && c->loc.port == pkt->tcp->dport && ((lsn && c->is_listening && !(c->loc.is_ip6 ^ (pkt->ip6 != NULL))) || (!lsn && !c->is_listening && c->rem.port == pkt->tcp->sport && + !(c->loc.is_ip6 ^ (pkt->ip6 != NULL)) && // IP or IPv6 to same dest ((!c->loc.is_ip6 && c->rem.addr.ip4 == pkt->ip->src) #if MG_ENABLE_IPV6 || (c->loc.is_ip6 && MG_IP6MATCH(c->rem.addr.ip6, pkt->ip6->src))