Tls 1.3 ClientHello legacy_session_id as zero length vector alignment Looking at tls 1.3 draft 23: https://tools.ietf.org/html/draft-ietf-tls-tls13-23

Section 4.1.2 shows, for a freshly established connection (no previous session from tls 1.2 or earlier) the legacy_session_id for ClientHello must be a zero length variable vector, which allows a max length of 32.

My interpretation of section 3.3 makes this zero length vector a single byte of value 0, followed by a zero byte-length entry, ie followed by nothing.

This seems to misalign structs comprised of the ClientHello. Is this correct?
Yes exactly. Nothing in the TLS spec is ever required to align on a boundery of a power of 2 in fact.