From 9c74cafd92c234c0353fdb95a4cbd8848eac93a5 Mon Sep 17 00:00:00 2001 From: zzz <zzz@i2pmail.org> Date: Fri, 2 Jul 2021 07:51:01 -0400 Subject: [PATCH] UPnP: IPv6 address validation fix --- router/java/src/net/i2p/router/transport/UPnP.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/router/java/src/net/i2p/router/transport/UPnP.java b/router/java/src/net/i2p/router/transport/UPnP.java index aa75fddfc4..4fb8850039 100644 --- a/router/java/src/net/i2p/router/transport/UPnP.java +++ b/router/java/src/net/i2p/router/transport/UPnP.java @@ -288,10 +288,15 @@ public class UPnP extends ControlPoint implements DeviceChangeListener, EventLis boolean v61 = ip.contains(":"); boolean v62 = pktIP.contains(":"); if (v61 == v62) { - ignore = true; - if (_log.shouldWarn()) - _log.warn("Ignoring UPnP with IP mismatch: " + name + " UDN: " + udn + - " dev IP " + ip + " pkt IP: " + pktIP); + // canonicalize + byte[] b1 = Addresses.getIP(ip); + byte[] b2 = Addresses.getIP(pktIP); + if (!DataHelper.eq(b1, b2)) { + ignore = true; + if (_log.shouldWarn()) + _log.warn("Ignoring UPnP with IP mismatch: " + name + " UDN: " + udn + + " dev IP " + ip + " pkt IP: " + pktIP); + } } } } -- GitLab