You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Location: include/rcp/e2e.hpp — coverage_buffer (~lines 205-221) and its callers compute_crc/verify_crc; include/rcp/acf.hpp — encode_acf_gbb (~lines 198-207).
Finding: For an ACF_GBB message, encode_acf_gbb places a 64-bit message_timestamp on the wire immediately after the 10-byte shared ACF header and before the payload. coverage_buffer — the function that assembles the exact byte sequence the end-to-end CRC is computed over — has no parameter for message_timestamp at all: it serializes stream_id + avtp_timestamp + the 10-byte common header + payload, with nothing in between the header and payload. Two consequences follow: (1) for every ACF_GBB frame, the message_timestamp field is completely outside CRC coverage, so a corrupted timestamp on that specific message type is undetectable by the CRC — undermining the integrity guarantee the CRC exists to provide for exactly this variant; and (2) even setting aside the timestamp's own protection, the coverage buffer's byte layout does not match the actually-transmitted byte layout for ACF_GBB frames (the payload is folded in eight bytes early), so the CRC computed by compute_crc/verified by verify_crc is not actually a CRC of the real wire bytes for GBB messages.
Recommendation: Give coverage_buffer (and compute_crc/verify_crc) an optional message_timestamp parameter, and when the message type is ACF_GBB, insert the same 8-byte big-endian timestamp between the shared header and payload that encode_acf_gbb uses — so the coverage buffer's byte layout matches what's actually sent on the wire.
Verification: Independently re-read against current HEAD (commit 4b9449a, 2026-07-29). Confirmed coverage_buffer's signature takes stream_id, avtp_timestamp, info, and payload only — no timestamp parameter — while encode_acf_gbb in acf.hpp writes the 8-byte message_timestamp between the header and payload on the wire.
Filed from the 2026-07-29 ecosystem audit register; independently re-verified against current HEAD before filing.
Fixed by #94 (merged), which was not fully auto-linked because the PR description's bold markdown around some issue numbers broke GitHub's closing-keyword parser (only #73 linked automatically).
Activity
SoundMatt commentedon Jul 30, 2026
Fixed by #94 (merged), which was not fully auto-linked because the PR description's bold markdown around some issue numbers broke GitHub's closing-keyword parser (only #73 linked automatically).