Skip to content

Commit 73d5b03

Browse files
committed
Document pentest hardening follow-ups
1 parent e2faeee commit 73d5b03

4 files changed

Lines changed: 21 additions & 3 deletions

File tree

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,8 @@
149149
- Updated the roadmap to make `v0.10` an audit-preparation milestone, add
150150
`v0.11` verification hardening, add `v0.12` stabilization rehearsal, and keep
151151
`v1.0` gated on evidence instead of schedule.
152+
- Documented the high-assurance stack-frame cleanup boundary and added focused
153+
`decode_chunk` bit-packing verification to the pre-`v1.0` roadmap.
152154

153155
## 0.8.0 - 2026-05-16
154156

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -436,6 +436,13 @@ stack-backed buffers. It returns the backing array and visible length, so
436436
redacted formatting and drop-time cleanup no longer apply to the returned
437437
array.
438438

439+
Stack-backed buffers clear their backing arrays when dropped, but they cannot
440+
clear historical stack-frame copies made by the compiler, caller code, panic
441+
machinery, or operating system crash capture. For highly sensitive payloads,
442+
prefer the clear-tail APIs as soon as the value is no longer needed, keep
443+
secret lifetimes short, and combine crate-level cleanup with process policies
444+
for core dumps, swap, and crash reporting.
445+
439446
When an owned heap buffer is acceptable but accidental logging is not, use
440447
`encode_secret` and `decode_secret`:
441448

docs/PLAN.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -486,6 +486,9 @@ weakened or broken.
486486
- Expand or finalize proof harnesses for length helpers, slice encode/decode
487487
bounds, in-place decode bounds, clear-tail cleanup behavior, and
488488
constant-time-oriented validate/decode agreement.
489+
- Add focused formal-verification coverage for the `decode_chunk` bit-packing
490+
logic so overflow and output-bound behavior are checked across all possible
491+
decoded 6-bit input combinations.
489492
- Complete the panic-free public API audit for non-test scalar code. Document
490493
every remaining bounded internal index with proof, tests, or a local
491494
invariant in code or policy docs.

docs/SECURITY_CONTROLS.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ The caller still owns:
3030
- avoiding accidental copies of secrets before wrapping them in `SecretBuffer`
3131
- treating stack-buffer `into_exposed_array` calls as boundaries where redacted
3232
formatting and drop-time cleanup intentionally stop for the returned arrays
33+
- understanding that stack-backed buffers can clear their own backing arrays
34+
but cannot clear historical stack-frame copies made by compiler spills,
35+
caller code, panic machinery, crash handlers, or operating system capture
3336
- treating `SecretBuffer::into_exposed_vec` as a boundary where redacted
3437
formatting and drop-time cleanup intentionally stop
3538
- process-wide memory hygiene such as core-dump policy, swap policy, crash
@@ -59,9 +62,12 @@ profiles are strict about the configured line ending and non-final line width.
5962

6063
Cleanup APIs are best-effort initialized-byte cleanup. They are implemented
6164
without runtime dependencies and without unsafe code in scalar paths. They do
62-
not claim formal zeroization against compiler behavior, allocator spare
63-
capacity, copies made outside the wrapper, core dumps, swap, or arbitrary
64-
process memory disclosure vulnerabilities.
65+
not claim formal zeroization against compiler behavior, historical stack-frame
66+
copies, allocator internals, copies made outside the wrapper, core dumps, swap,
67+
or arbitrary process memory disclosure vulnerabilities. For high-assurance
68+
secret handling, use the clear-tail APIs promptly and pair them with operating
69+
system and deployment controls that reduce crash dumps, swap, and broad memory
70+
disclosure exposure.
6571

6672
### Side-Channel Posture
6773

0 commit comments

Comments
 (0)