Summary
The Python Identify implementation accepts signedPeerRecord without validation.
An attacker can forward a valid signed PeerRecord from another peer, causing address poisoning / identity spoofing.
This is equivalent to the Go libp2p Identify vulnerability
, which has already been patched.
Expected behavior
identify: reject signed peer records on peer ID mismatch
and make ConsumeEnvelope harder to misuse
Actual behavior
accept signed peer records on peer ID mismatch
Relevant log output
Possible Solution
Add strict validation for signedPeerRecord in parse_identify_response to prevent identity spoofing and peerstore poisoning.
There is a similar fix logic
Environment
Would you like to work on fixing this bug ?
Yes