Skip to content

Commit e4149d6

Browse files
committed
Add 2.0.2 pentest report
1 parent 8755f99 commit e4149d6

1 file changed

Lines changed: 56 additions & 0 deletions

File tree

security/pentest/v2.0.2.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
Status: PASS
2+
Reviewed-Commit: 8755f990dac0bad1dc0bef56859059124a212c5a
3+
Tester: External follow-up pentest
4+
Scope: sanitization crate family release 2.0.2
5+
Date: 2026-07-21
6+
7+
## Summary
8+
9+
The 2.0.2 review covered the complete release delta from 2.0.1, with emphasis
10+
on the test-only Miri mapping model, mapped-memory initialization and teardown,
11+
page-sealed cleanup after partial protection failures, integrity-failure
12+
behavior, and release-configuration boundaries.
13+
14+
Follow-up testing confirmed that the Miri simulator is confined to debug core
15+
unit-test artifacts and cannot be selected by ordinary downstream or release
16+
builds. The simulator verifies lifecycle state transitions and
17+
clear-before-release behavior without claiming to exercise native mapping,
18+
locking, page protection, dump/fork policy, or operating-system CSPRNG calls.
19+
20+
Native cleanup now clears complete locked mappings before release. Page-sealed
21+
cleanup processes pages independently, immediately erases and reseals each
22+
page it can transition, continues after individual failures, and retains a
23+
poisoned mapping and established lock when erasure cannot be confirmed.
24+
Fault-injection review covered first-page normalization failure, later-page
25+
erasure, cleanup reseal failure, retained zeroed storage, and successful
26+
checked retry. The final test-only readable-page observer requires an explicit
27+
unsafe precondition, and successful test resealing invalidates its marker.
28+
29+
## Confirmed Residual Limits
30+
31+
- Miri models ownership and clearing only; native operating-system protection
32+
remains covered by native tests and target evidence.
33+
- A cleanup failure may intentionally retain a poisoned mapping and its lock
34+
until a checked retry succeeds or the process exits.
35+
- Destructors cannot guarantee cleanup after process abort, forced
36+
termination, `mem::forget`, or equivalent lifecycle bypasses.
37+
- Native memory protections do not defend against a compromised kernel,
38+
privileged debugger, DMA adversary, or physical access by themselves.
39+
- Data-oblivious and leakage claims remain target-, compiler-, feature-, and
40+
release-profile specific; this release does not claim identical wall-clock
41+
timing or universal microarchitectural resistance.
42+
43+
## Evidence And Disposition
44+
45+
- No critical, high, medium, or low findings remain open for 2.0.2.
46+
- Workspace tests, documentation tests, warning-denying Clippy, Kani, codegen,
47+
API/evidence checks, dependency policy, migration fixtures, lifecycle and
48+
concurrency probes, and all five package archives passed.
49+
- Existing accepted native timing evidence remains applicable because 2.0.2
50+
does not modify the measured constant-time implementation paths.
51+
- All five publishable crates are versioned 2.0.2, and the runtime exact-pins
52+
the matching derive crate.
53+
- The README, safety documentation, threat model, non-guarantees, evidence
54+
guide, release notes, and publication script describe the reviewed behavior
55+
and remaining deployment responsibilities.
56+
- The temporary root `PENTEST.md` is absent from the release candidate.

0 commit comments

Comments
 (0)