mirror of
https://github.com/savoirfairelinux/opendht.git
synced 2026-11-08 04:21:51 +00:00
Value data fragments carry no node ID and were merged into a partial message by source address and transaction ID alone, first come first served. Transaction IDs increment from a random start and show in any plaintext packet of a pair, such as the first-contact ping. An attacker spoofing the sender's address could thus pre-seed forged plaintext fragments, or a plaintext header, for an encrypted reply: the real parts were then dropped as overlapping, forging unsigned values or losing the message. Parts of a message must now all be plaintext, or all come in envelopes from the same sender key as its first part. An encrypted part replaces plaintext state, which anyone can forge from a spoofed address; plaintext or foreign-key parts never join an encrypted message.