tailscale/types
Brad Fitzpatrick af2f228a18 ipn/ipnlocal, types/netmap, tsnet: filter unsigned peers on delta path
aa5da2e5f2 (in the 1.99.x dev series, unstable) introduced some bugs,
only some of which were later fixed. This fixed another. As of that
change, tkaFilterNetmapLocked ran only on full netmaps through
LocalBackend.setClientStatusLocked and not peer upserts via new or
changed peers. The later ae743642d9 fixed a regression in the
Engine layer but didn't fix the tkaFilter code from re-running on
upserts.

This add a tkaFilterDeltaMutsLocked pass before
nodeBackend.UpdateNetmapDelta. For each NodeMutationUpsert whose
peer fails the same signature check tkaFilterNetmapLocked applies,
rewrite the upsert in place into a NodeMutationRemove targeting the
same node ID, so magicsock's per-mutation dispatch and
nodeBackend.peers both drop the peer, matching the prior full-netmap
semantics.

New tsnet tests added:

  - TestTailnetLockFiltersUnsignedDeltaPeer covers the new-peer
    case.
  - TestTailnetLockFiltersUnsignedDeltaPeerReplacement covers the
    existing-peer-replacement case, to an empty signature.
  - TestTailnetLockFiltersDeltaPeerWithInvalidSignature like above
    but with a bogus signature.

Updates #12542
Updates tailscale/corp#43767

Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
Change-Id: Ib35d0391541fee654867c26489847dbc5b7e2ae8
2026-06-23 08:12:36 -07:00
..
appctype feature/conn25: use new pool nodeattr 2026-05-29 08:29:34 -07:00
bools all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
dnstype cmd/vet: add subtestnames analyzer; fix all existing violations 2026-04-05 15:52:51 -07:00
empty all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
events wgengine/magicsock,control/controlclient: do not overwrite discokey with old key (#18606) 2026-03-20 08:56:27 -04:00
flagtype all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
geo types/geo: add support for ScalarMarshaler and ScalarUnmarshaler (#20158) 2026-06-16 16:36:43 -07:00
iox all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
ipproto all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
jsonx types/ptr: deprecate ptr.To, use Go 1.26 new 2026-03-05 20:13:18 -08:00
key all: update more references to Tailnet/Network Lock 2026-05-15 16:23:50 +01:00
lazy all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
logger wgengine/magicsock,types/logger: add latency logs for initial peer contacts (#19916) 2026-06-02 07:34:17 -07:00
logid all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
mapx all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
netlogfunc all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
netlogtype all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
netmap ipn/ipnlocal, types/netmap, tsnet: filter unsigned peers on delta path 2026-06-23 08:12:36 -07:00
nettype all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
opt all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
persist all: update a few more references to network/tailnet lock 2026-05-28 16:44:16 +01:00
prefs types/ptr: deprecate ptr.To, use Go 1.26 new 2026-03-05 20:13:18 -08:00
preftype all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
ptr types/ptr: deprecate ptr.To, use Go 1.26 new 2026-03-05 20:13:18 -08:00
result all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
structs all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
tkatype all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
views all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00