Skip to content

Commit 8c6a29c

Browse files
committed
check if sender of received gossip message is in peer group
1 parent e558cee commit 8c6a29c

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

src/mesh/agents/state/StateGossipAgent.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -174,12 +174,20 @@ class StateGossipAgent extends PeeringAgentBase {
174174

175175
let secMsgEv = ev as SecureMessageReceivedEvent;
176176

177-
// TODO: validate if the secure message comes from who it should,
178-
// uses the right credentials, etc
179-
180177
let gossipMsg = secMsgEv.content.payload as GossipMessage;
181178

182-
this.receiveGossip(secMsgEv.content.sender, gossipMsg);
179+
// Check if the sender of the message is in the peer group this agent
180+
// is using for gossiping.
181+
182+
if (this.getPeerControl().validateConnectedPeer(secMsgEv.content.sender) &&
183+
this.getPeerControl().getLocalPeer().endpoint === secMsgEv.content.recipient) {
184+
185+
this.receiveGossip(secMsgEv.content.sender, gossipMsg);
186+
} else {
187+
StateGossipAgent.peerMessageLog.debug('Received message with wrong origin / destination (could be a just disconnected legitimate peer) from ' + secMsgEv.content.sender + '.');
188+
}
189+
190+
183191
} else if (ev.type === GossipEventTypes.AgentStateUpdate) {
184192

185193
let updateEv = ev as AgentStateUpdateEvent;

0 commit comments

Comments
 (0)