Repository navigation
test(e2e): identify packets by source client and sequence - #1582
Conversation
Vulnerable dependencies2 advisories across 2 libraries need attention, 2 accepted. 🚨 Needs attention
|
| Advisory | CVE | Fixed in | Summary |
|---|---|---|---|
| GO-2025-3684 | — | no fix yet | Cosmos EVM Allows Partial Precompile State Writes in github.com/cosmos/evm |
Go standard library
In use: go1.26.9 — reached from cli, e2e, gen/go/solidity-abi
| Advisory | CVE | Fixed in | Summary |
|---|---|---|---|
| GO-2026-6809 | CVE-2026-111943 | go1.26.10 |
Distrust compromised intermediate certificates in crypto/x509 |
Run make vulncheck for the call paths. Either upgrade the library, or add the
advisory to .govulncheck-ignore with a reason if no fix exists yet.
Accepted
Listed in .govulncheck-ignore with a reason.
github.com/pion/dtls/v2
In use: v2.2.12 — reached from cli
| Advisory | CVE | Fixed in | Summary |
|---|---|---|---|
| GO-2026-4479 | CVE-2026-26014 | no fix yet | Usage of random nonce generation with AES GCM ciphers risks leaking the authentication key in github.com/pion/dtls |
golang.org/x/crypto
In use: v0.57.0 — reached from cli, e2e
| Advisory | CVE | Fixed in | Summary |
|---|---|---|---|
| GO-2026-5932 | — | no fix yet | The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues |
From make vulncheck-json on this run: logs.
Sequences are only unique per source client, so the e2e harness now identifies every sent, acknowledged and timed-out packet by client and sequence. - Add e2etest.SentPackets, the one decoder of SendPacket logs, filtered by router and source client. All apps send through sourceRoute.send, which requires exactly the expected number of packets on the route's client; SendBatch uses the same path. - Send results carry the emitted packet, so timeouts and attestor payloads come from it instead of being recomputed or re-parsed. - Replace the hand-written WriteAcknowledgement/AckPacket/TimeoutPacket matchers with shared PacketID readers. - Resolve app routes in one helper and validate route IDs and endpoints once, at deploy time. Closes FOU-1902. Signed-off-by: Gjermund Garaba <gjermund@garaba.net>
db1904b to
8633a87
Compare
[Low impact] The PR appears safe to merge; no actionable issues were found. SummaryThe e2e helpers now identify packets by source client and sequence and share one
No actionable issues were found. Runtime tests were not run.
|
|
@greptile review |
Signed-off-by: Gjermund Garaba <gjermund@garaba.net>
Port ift_rate_limit_test.go, added in #1585, to the PacketID readers. Signed-off-by: Gjermund Garaba <gjermund@garaba.net>
Signed-off-by: Gjermund Garaba <gjermund@garaba.net>
* test(e2e): identify packets by source client and sequence Sequences are only unique per source client, so the e2e harness now identifies every sent, acknowledged and timed-out packet by client and sequence. - Add e2etest.SentPackets, the one decoder of SendPacket logs, filtered by router and source client. All apps send through sourceRoute.send, which requires exactly the expected number of packets on the route's client; SendBatch uses the same path. - Send results carry the emitted packet, so timeouts and attestor payloads come from it instead of being recomputed or re-parsed. - Replace the hand-written WriteAcknowledgement/AckPacket/TimeoutPacket matchers with shared PacketID readers. - Resolve app routes in one helper and validate route IDs and endpoints once, at deploy time. Closes FOU-1902. Signed-off-by: Gjermund Garaba <gjermund@garaba.net> * test(e2e): identify rate-limit packets by source client and sequence Port ift_rate_limit_test.go, added in #1585, to the PacketID readers. Signed-off-by: Gjermund Garaba <gjermund@garaba.net> --------- Signed-off-by: Gjermund Garaba <gjermund@garaba.net> Co-authored-by: dianab-cl <diana@cosmoslabs.io> Signed-off-by: Diana Borbe <diana@cosmoslabs.io>
Description
Follows up srdtrk's review of #1556. Packet sequences are only unique per source client, but the e2e harness identified sent packets by sequence alone and decoded
SendPacketlogs by hand in several places. Now every sent, acknowledged and timed-out packet is identified by source client and sequence, and one helper decodesSendPacket.SendPacketdecoder.e2etest.SentPacketsreturns the packets a router sent over a client, in log order. It replacesSendPacketSequences,sendPacketSequence, and the hand decoding innewAttestablePacket(load test) andsentPacket(deploy test).sourceRouteand send throughsourceRoute.send, which requires exactly the expected number of packets on the route's client (1, orlen(requests)forIFT.SendBatch). Before, a send took the firstSendPacketthe router emitted on any client.Packet()replaces the separately tracked IFT timeout timestamp andIFTBatch.Receipt(); the attestor load test encodes the packet from it instead of re-parsing logs.PacketID{SourceClientID, Sequence}and three readers forWriteAcknowledgement,AckPacketandTimeoutPacketevents replace the hand-written matching loops in the Transfer and GMP verifiers; the IFT*PacketIDsmethods return[]PacketID. The verifiers now check the packet's event is present rather than present exactly once: the router emitsNoopinstead of a second event for an already-handled packet.resolveAppRoutebuilds every app's route, andDeployrejects empty, duplicate, and same-chain route IDs once instead of each app constructor checking.Most critical to review:
e2e/internal/e2etest/traffic_evm.go(SentPackets,send, the event readers) andtraffic.go(PacketID,sourceRoute).closes: FOU-1902
Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.
TestSentPackets; existing e2e suites cover the rest)docs/) if anything is changed. (n/a: no user-facing change)godoccomments if relevant.Files changedin the GitHub PR explorer.🤖 Generated with Claude Code