v1.0.1
A patch release for the four findings of an independent full-tree audit of v1.0.0. None of them is on the pre-authentication path or in the protocol layer; one closes a gap in the destination policy, two make the shipped scripts leave a host whole when they fail, one corrects the architecture page.
Fixed
- The local-use NAT64 prefix
64:ff9b:1::/48is refused as a whole underallow_private_networks = false. The policy read an IPv4 address out of it at the RFC 6052 /48 layout, but RFC 8215 section 5 lets an operator place the address anywhere inside that reservation and forbids a reader assuming a layout. At the /64 layout the octets read were the operator's subnet, so a subnet spelling a public IPv4 prefix hid a private target. The whole prefix now follows the switch. The well-known64:ff9b::/96, 6to4 and Teredo are judged by the address they carry, as before. - A failed
install-selfsigned.sh --forcerenewal leaves the old certificate and key in place. The script moved the pair to their backup names before runningopenssl, so a failed generation left the configured paths empty and the next restart could not start. The new pair is generated beside the old one and moved into place only afteropensslsucceeds; the new key is created underumask 077, and both backups carry one timestamp. - A
volto-deployupdate that fails before the health check restores the previous binary and unit. A copy that failed part-way, or a failure between the binary copy and the unit copy, ended the run with the rollback pair on disk and nothing restored, because the rollback branch ran only aftersystemctl is-active. An error trap now covers that window. docs/architecture.mdno longer claims that a peer closing a QPACK stream is knowingly not a connection error. The server has reportedH3_CLOSED_CRITICAL_STREAMfor both a clean finish and a reset since v1.0.0, with the one exemption for a connection that has already ended; the page now says so.
Testing
- The policy change carries a test proven red first, with a translation of 10.0.0.1 at each of the /56, /64 and /96 layouts that the old reader judged public.
- Both script fixes were driven red then green against stub
openssl,installandsystemctl; the transcripts are in the private audit record.
Upgrading: volto-deploy on the host, or the install line below. No configuration change. A deployment that dials 64:ff9b:1::/48 destinations needs allow_private_networks = true from this release on.
Static musl builds for x86_64 and aarch64. Verify with SHA256SUMS.
Each archive carries the binary, LICENSE, README.md and the script/ and docs/ directories. Installing and updating is described in docs/deployment.md.
Full Changelog: v1.0.0...v1.0.1