diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java index 2e83c238ec0fc0e8b5a10e35c64c0f5c95216a0b..3da3b819b6a89b3c77cfe69e3f6581aa324c0210 100644 --- a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java +++ b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java @@ -676,6 +676,10 @@ public class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacade { throw new IllegalArgumentException("Attempt to replace RI with " + leaseSet); } + // spoof / hash collision detection + if (rv != null && !leaseSet.getDestination().equals(rv.getDestination())) + throw new IllegalArgumentException("LS Hash collision"); + String err = validate(key, leaseSet); if (err != null) throw new IllegalArgumentException("Invalid store attempt - " + err); @@ -815,6 +819,10 @@ public class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacade { throw new IllegalArgumentException("Attempt to replace LS with " + routerInfo); } + // spoof / hash collision detection + if (rv != null && !routerInfo.getIdentity().equals(rv.getIdentity())) + throw new IllegalArgumentException("RI Hash collision"); + String err = validate(key, routerInfo); if (err != null) throw new IllegalArgumentException("Invalid store attempt - " + err);