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
{{ message }}
Repository navigation
fix(corekit): non-zero padding octets are zeroed on rebuild #1223
Twelve more HIP sites for this issue, listed by the #1342 cross-review in schema/internet/hip.py: R1_COUNTER :563, NAT_TRAVERSAL_MODE :818, ENCRYPTED :849, NOTIFICATION :1056, REG_FROM :1165, ESP_TRANSFORM :1207, PAYLOAD_MIC :1256, ROUTE_DST :1304, RELAY_FROM :1426, RELAY_TO :1443, OVERLAY_TTL :1458 and ROUTE_VIA :1476. Eleven were confirmed by writing 0xff and rebuilding; ENCRYPTED is read from the schema only. The 13th HIP site, Locator.flags, is a BitField and is filed separately as #1365.
More sites with the same root cause (PaddingField packs zeros, so non-zero octets parse silently and come back zeroed). The PaddingField sweep found these and I re-checked them on main at 79949ec3d. The issue does not yet list any of them:
Checked and fine, either rejected at parse or unreachable: IPv4 LSR/RR/SSR remainders, IPv6 MPL pad, IPv4 header padding. IPv4 TS is #1392 (fixed in #1399). The CALIPSO length loss is a separate defect, now #1403. Still unprobed: PCAP-NG alignment pads, IPv6-Route RPL pad and L2TP offset pad.
One more site, found while checking #1235: the Quick-Start report "not used" octet is a PaddingField(length=1), so 3b01260680ff12345679… rebuilds as …800012345679….
One more site, from the #1420 cross-review: the Simple Packet Block padding is a PaddingField (schema/misc/pcapng.py:1549), so with original_len=5 and data abcdefgh the 3 non-zero pad octets rebuild as zeros (24 → 24 octets, not exact).
Unblocked: the corekit round-trip audit has filed its findings (#1288–#1300, filed 2026-10-07), and #1288 closed with #1416. A worker is on it now, on branch fix/1223-padding-kept-as-captured. The worker also covers #1329's MH PadN remainder. The IPv4 Quick-Start report site is held for a follow-up, because the #1209 worker owns ipv4.py in this wave.
Activity
JarryShaw commentedon Oct 7, 2026
Blocked until the corekit round-trip audit reports, so the fix lands with whatever else it finds in
PaddingField.JarryShaw commentedon Oct 7, 2026
Twelve more HIP sites for this issue, listed by the #1342 cross-review in
schema/internet/hip.py: R1_COUNTER:563, NAT_TRAVERSAL_MODE:818, ENCRYPTED:849, NOTIFICATION:1056, REG_FROM:1165, ESP_TRANSFORM:1207, PAYLOAD_MIC:1256, ROUTE_DST:1304, RELAY_FROM:1426, RELAY_TO:1443, OVERLAY_TTL:1458and ROUTE_VIA:1476. Eleven were confirmed by writing0xffand rebuilding; ENCRYPTED is read from the schema only. The 13th HIP site,Locator.flags, is aBitFieldand is filed separately as #1365.JarryShaw commentedon Oct 8, 2026
More sites with the same root cause (
PaddingFieldpacks zeros, so non-zero octets parse silently and come back zeroed). ThePaddingFieldsweep found these and I re-checked them onmainat79949ec3d. The issue does not yet list any of them:schema/internet/hopopt.py:427andipv6_opts.py:427:3b00 0104 aabbccddbecomes3b00 0104 00000000.hopopt.py:687andipv6_opts.py:692:… 80 aa …becomes… 80 00 ….ipv6_frag.py:38; SR0 / Type 2 reserved(4),ipv6_route.py:162,:178.httpv2.py:240,:289,:387(RFC 7540 §6.1 lets a receiver reject non-zero pad); OSPF crypto reserved,ospf.py:47.Checked and fine, either rejected at parse or unreachable: IPv4 LSR/RR/SSR remainders, IPv6 MPL pad, IPv4 header padding. IPv4 TS is #1392 (fixed in #1399). The CALIPSO length loss is a separate defect, now #1403. Still unprobed: PCAP-NG alignment pads, IPv6-Route RPL pad and L2TP offset pad.
JarryShaw commentedon Oct 8, 2026
One more site, found while checking #1235: the Quick-Start report "not used" octet is a
PaddingField(length=1), so3b01260680ff12345679…rebuilds as…800012345679….JarryShaw commentedon Oct 8, 2026
One more site, from the #1420 cross-review: the Simple Packet Block
paddingis aPaddingField(schema/misc/pcapng.py:1549), so withoriginal_len=5and dataabcdefghthe 3 non-zero pad octets rebuild as zeros (24 → 24 octets, not exact).JarryShaw commentedon Oct 8, 2026
Unblocked: the corekit round-trip audit has filed its findings (#1288–#1300, filed 2026-10-07), and #1288 closed with #1416. A worker is on it now, on branch
fix/1223-padding-kept-as-captured. The worker also covers #1329's MH PadN remainder. The IPv4 Quick-Start report site is held for a follow-up, because the #1209 worker ownsipv4.pyin this wave.fix(corekit)!: non-zero padding octets are zeroed on rebuild (#1223)
fix(corekit)!: non-zero padding octets are zeroed on rebuild (#1223) (#…
docs(protocols): second pass over the IPv6 extension headers (#1103) (#…