Skip to content

[bug]: Prevent sending out Zombie Channel gossip when peers request Gossip Sync #10033

Open
@ziggie1984

Description

@ziggie1984

Background

Since 19 with have some ban logic in place for non-channel peers in case they send us outdated gossip messages. Therefore when Peers request Gossip Sync from us we should not send out Zombie related updates to the peer because we might potentially get banned if we do not have a channel with then.

Currently we only filter out zombie updates if we process a ChannelRangeReply message by our peer, meaning we do not fetch channels we have in our zombie list see here:

g.cfg.isStillZombieChannel,

However we should also not send out zombie related gossip if a peer requests a GossipSync see here:

func (g *GossipSyncer) replyChanRangeQuery(ctx context.Context,

Consequently if another peer is doing a historical gossip sync, we would serve them all our zombie information which would ban ourselves if we had no channel with the peer.

This is in particular a problem if nodes run with neutrino running with assumechanvalid where we do not validate the fundingTX, so we should not send out those messages as well which have all zeros in the fundingTX.

Moreover we might send over a warning to the PEER that we are going to BAN them to make debugging easier in the future as proposed by @bitromortac

Metadata

Metadata

Assignees

Labels

bugUnintended code behaviourgossip

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions