PhoenixDKIM 1.0.0 — PhoenixDKIM
PhoenixDKIM 1.0.0
15 June 2026
PhoenixDKIM 1.0.0 is the first stable release, closing the 1.0.0 beta<br>series. Alongside the features built up over the betas, this release adds a<br>round of pre-release security and robustness hardening — the testing process<br>is now documented on the Security page.
Signing-side strict-header rejection
With StrictHeaders enabled, a message that cannot be signed<br>because it violates RFC 5322 (for example a duplicate From, a<br>known spoofing vector) is now refused back to its sender — with the specific<br>reason in the SMTP reply — per On-SignatureError (default reject).<br>The verifying side is unchanged: such a message is accepted and the condition<br>recorded in the Authentication-Results field. The two directions are<br>dispositioned independently.
Shutdown race fix
smfi_main() returns without joining libmilter's per-connection<br>worker threads, so the previous teardown could free the configuration, signing<br>key, and databases while a worker was still processing a message — an<br>exit-time use-after-free. The daemon now drains in-flight connections before<br>tearing down. Steady-state processing under load was never affected.
Testing and assurance
Coverage-guided libFuzzer targets for the DKIM-Signature and<br>public-key parsers, on AddressSanitizer/UndefinedBehaviorSanitizer — no<br>crashes, leaks, or undefined behaviour over ~126 million<br>executions.
A DNS failure-mode classification test, an independent-implementation<br>interop cross-check against dkimpy, and a ThreadSanitizer build<br>option.
A leak in the resign + header-binding path and a benign test-tool<br>leak fixed; the suite runs clean under AddressSanitizer/LeakSanitizer.
Full notes:<br>1.0.0 release notes;<br>source and signatures on the Download page.
Back to announcements