Skip to content

[cpp-RCP-N2-03] E2E CRC coverage omits ACF_GBB message_timestamp, mismatching the transmitted bytes #66

Closed

Description

@SoundMatt

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.

Activity

  1. SoundMatt commented on Jul 30, 2026

    @SoundMatt
    OwnerAuthor

    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).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions