# UNDF: UNDF-2026-000000392
# etcd CWE-407 Deeper Scan — CLEAN

**Date:** 2026-03-27
**Repo:** https://github.com/etcd-io/etcd
**Scan scope:** `server/etcdserver/`, `server/storage/mvcc/`, `server/embed/`, `raft/`
**Prior status:** etcd-CLEAN.md confirmed no defects in initial scan

## Re-verification

Scanned for `slices.Contains`, `strings.Contains` (membership context), and any
`for ... range` loops with inner linear membership tests.

### Results

All `strings.Contains` calls in production code paths are substring checks on error
message strings or content-type headers — not slice membership tests. No method named
`slices.Contains` or `ContainsString` appears anywhere in `server/` or `raft/`
non-test source files.

The `strings.Contains` calls found:

| File | Usage |
|------|-------|
| `server/embed/config.go:1092` | Substring check on peer URL string for `"https://"` |
| `server/embed/serve.go:312` | Content-Type header substring match for gRPC detection |
| `server/etcdmain/etcd.go:144` | Error message substring check |
| `server/etcdserver/corrupt.go:606–613` | Error message substring checks |
| `server/etcdserver/cluster_util.go:340–343` | Error message substring checks |
| `server/etcdserver/api/v2store/watcher_hub.go:198` | Path prefix substring check |
| `server/storage/backend/verify.go:64` | Stack trace substring check |

None of these are slice membership tests inside scaling loops.

## Summary

etcd confirmed CLEAN. No new CWE-407 defects found in the deeper scan.
etcd's watcher machinery uses maps (`map[string]watcherSet`) and interval trees —
O(1) and O(log N) membership — throughout.
