@@ -23,11 +23,12 @@ build, run the regression suite, (CP steps) screenshot-validate, then commit/pus
2323+ move tag ` v6.2.0 ` + clobber the release asset.
2424
25251 . ** B1 — security & correctness defects + secure defaults.** ✅ ** Done** (see Progress).
26- 2 . ** B8 (core) — CI + fuzzing.** ⏳ ** In progress** — GitHub Actions added (CP build + CodeQL C#),
27- reproducer regression tests for the B1 defects, and an over-the-wire protocol fuzz suite for the
28- SMTP/IMAP/MIME parsers; remaining: native server-build CI (cached deps + DB service running the
29- 898 suite). (Coverage-guided libFuzzer is impractical in this environment — MSVC/ATL-coupled
30- parsers, no fuzzer runtime — so the live over-the-wire fuzzer is the validated substitute.)
26+ 2 . ** B8 (core) — CI + fuzzing.** ✅ ** Done.** GitHub Actions: ` ci.yml ` (Control Panel build,
27+ warnings-as-errors) + ` codeql.yml ` (C# static analysis) on hosted runners; ` server-build.yml `
28+ (native C++ build on a self-hosted VS 2026/v145 runner + opt-in regression-suite run). Plus
29+ reproducer regression tests for the B1 defects and an over-the-wire protocol fuzz suite for the
30+ SMTP/IMAP/MIME parsers. (Coverage-guided libFuzzer is impractical in this environment — MSVC/ATL-
31+ coupled parsers, no fuzzer runtime — so the live over-the-wire fuzzer is the validated substitute.)
31323 . ** Track A Ph 0–1 — drop classic from installer + Control-Panel functional parity.** CP becomes the sole shipped GUI.
32334 . ** B3 — secrets & least-privilege** (DPAPI for INI/DB secrets; non-LocalSystem service).
33345 . ** B2 — auth modernization** (OAuth2 XOAUTH2/OAUTHBEARER, SCRAM-SHA-256, Argon2id + hash policy).
@@ -66,17 +67,19 @@ Commits: `6f7e019` (defects), `53ec538` (line-ending default), `9f3a51e` (AUTH c
6667
6768### ⏳ Next
6869
69- - ⏳ ** B8 — CI + fuzzing** * (in progress )* : added ` .github/workflows/ci.yml ` (Control Panel
70- build, warnings-as-errors) and ` codeql.yml ` (C# static analysis), plus reproducer tests
70+ - ✅ ** B8 — CI + fuzzing** * (done )* : ` .github/workflows/ci.yml ` (Control Panel build,
71+ warnings-as-errors) and ` codeql.yml ` (C# static analysis) on hosted runners; reproducer tests
7172 ` TestAppendOversizedLiteralRejected ` / ` TestOversizedCommandLiteralRejected ` (guard the B1
72- IMAP fixes; pass 2/2). ✅ Added an ** over-the-wire protocol fuzz suite**
73- (` Security/ProtocolFuzz.cs ` , commit ` fc6d1da ` ): seeded malformed-input barrage against the live
74- SMTP and IMAP command parsers and the inbound MIME parser, asserting the server never
75- crashes/hangs/logs a fault (layered detection: liveness check + ` ServiceRestartDetector ` +
76- ` AssertNoReportedError ` , with per-test ` [Timeout] ` ). 3/3 pass (~ 231 s). Remaining: native
77- ** server-build CI** (cached OpenSSL/Boost/libpq + DB service running the 898 suite). Coverage-guided
78- libFuzzer was assessed and is impractical here (no fuzzer runtime in the available clang; parsers
79- are MSVC/ATL/Windows-coupled) — the live fuzzer is the validated substitute.
73+ IMAP fixes; pass 2/2); an ** over-the-wire protocol fuzz suite** (` Security/ProtocolFuzz.cs ` ,
74+ commit ` fc6d1da ` ): seeded malformed-input barrage against the live SMTP/IMAP command parsers and
75+ the inbound MIME parser, asserting the server never crashes/hangs/logs a fault (layered detection:
76+ liveness check + ` ServiceRestartDetector ` + ` AssertNoReportedError ` , per-test ` [Timeout] ` ); 3/3 pass
77+ (~ 231 s); and a native ** server-build workflow** (` server-build.yml ` , commit ` 6b692a8 ` ) for a
78+ self-hosted VS 2026/v145 runner that compiles the C++ server (build step locally proven via
79+ ` build/build.ps1 ` ) with an opt-in regression-suite run (reuses ` build-tests.ps1 ` /` post-build.ps1 ` /
80+ ` run-tests.ps1 ` ). Coverage-guided libFuzzer was assessed and is impractical here (no fuzzer runtime
81+ in the available clang; parsers are MSVC/ATL/Windows-coupled) — the live fuzzer is the validated
82+ substitute.
8083- ⬜ Modern default TLS cipher list (drop RC4/legacy CBC) + MD5-hash-accept deprecation —
8184 deferred to run with the TLS/auth-modernization work (higher regression risk).
8285- ⬜ Then: Control-Panel parity track (Phases 0–4 below), then deeper hardening
0 commit comments