Repository navigation
Reject empty required client certificates - #170
Conversation
|
Review cycle round 1: clean review. I traced both server handshake state machines and the certificate-required configuration, including the optional-client-auth paths. Both packet-driven empty-certificate regressions pass ( |
|
Review cycle round 2: clean review of the full PR at a958b4f. The DTLS 1.3 alert uses epoch 3 after server Finished, when application keys are installed; the packet-driven test confirms the client decrypts certificate_required. Both server paths abort pending flights, close, and emit the specified fatal alert on a parsed empty Certificate. The four focused required/optional certificate tests pass. I found no actionable gap. |
|
Related downstream PR: algesten/str0m#1067 This landed fix addresses the empty-client-certificate vulnerability described in str0m PR 1067. All five dimpl-based str0m backends retain the default Verified locally at the landed commit str0m currently depends on dimpl 0.7.4. The 0.7.5 tag predates this fix, so str0m needs a release containing PR 170 before a version bump resolves the reported vulnerability. PR 1067 remains useful defense in depth against a backend emitting connection/keying-material events without a peer certificate. |
Summary
require_client_certificate(true)when a client sends an empty Certificate message in DTLS 1.2 or 1.3.handshake_failure(DTLS 1.2) orcertificate_required(DTLS 1.3) alert.