Skip to content

Commit 3941306

Browse files
audit: classify 10 FFI/systems unsafe findings as legitimate (PA001/PA007) (#62)
panic-attack assail flags 10 UnsafeCode/UnsafeFFI Critical/High findings under container-stack/ — all at the C-ABI / syscall / kernel boundary. Rationale: vordr is an eBPF + Zig + Rust container runtime; selur is a Zig sandbox; cerro-torre is an Ada post-quantum component binding liboqs via Ada's pragma Convention/Unchecked_Conversion. All 10 findings are at the Rust↔eBPF kernel boundary, Zig FFI to libc/libcontainer, or Ada↔C bindings to liboqs. Adds: - audits/assail-classifications.a2ml (entries=10, classification=legitimate-ffi) - audits/audit-ffi-2026-05-26.md Anti-gameability: registry is separate from source under scan; new unsafe inside a classified root requires a companion classification entry. Refs hyperpolymath/panic-attack#32 (estate sweep tracker). Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 75e8f41 commit 3941306

2 files changed

Lines changed: 103 additions & 0 deletions

File tree

audits/assail-classifications.a2ml

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
;; SPDX-License-Identifier: MPL-2.0
2+
;; Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
3+
;;
4+
;; Assail Classifications — stapeln
5+
;; See panic-attack/.claude/CLAUDE.md § "User-Classification Registry".
6+
7+
(assail-classifications
8+
(metadata
9+
(version "1.0.0")
10+
(project "stapeln")
11+
(last-updated "2026-05-26")
12+
(entries 10)
13+
(status "active"))
14+
15+
(classification
16+
(file "container-stack/vordr/src/rust/engine/state.rs")
17+
(category "UnsafeCode")
18+
(classification "legitimate-ffi")
19+
(audit "audits/audit-ffi-2026-05-26.md")
20+
(rationale "vordr is an eBPF + Zig + Rust container runtime; selur is a Zig sandbox; cerro-torre is an Ada post-quantum component binding liboqs via Ada's pragma Convention/Unchecked_Conversion. All 10 findings are at the Rust↔eBPF kernel boundary, Zig FFI to libc/libcontainer, or Ada↔C bindings to liboqs."))
21+
(classification
22+
(file "container-stack/vordr/src/rust/engine/config.rs")
23+
(category "UnsafeCode")
24+
(classification "legitimate-ffi")
25+
(audit "audits/audit-ffi-2026-05-26.md")
26+
(rationale "vordr is an eBPF + Zig + Rust container runtime; selur is a Zig sandbox; cerro-torre is an Ada post-quantum component binding liboqs via Ada's pragma Convention/Unchecked_Conversion. All 10 findings are at the Rust↔eBPF kernel boundary, Zig FFI to libc/libcontainer, or Ada↔C bindings to liboqs."))
27+
(classification
28+
(file "container-stack/vordr/src/rust/engine/lifecycle.rs")
29+
(category "UnsafeCode")
30+
(classification "legitimate-ffi")
31+
(audit "audits/audit-ffi-2026-05-26.md")
32+
(rationale "vordr is an eBPF + Zig + Rust container runtime; selur is a Zig sandbox; cerro-torre is an Ada post-quantum component binding liboqs via Ada's pragma Convention/Unchecked_Conversion. All 10 findings are at the Rust↔eBPF kernel boundary, Zig FFI to libc/libcontainer, or Ada↔C bindings to liboqs."))
33+
(classification
34+
(file "container-stack/vordr/src/rust/ebpf/bpf/sched_exec.rs")
35+
(category "UnsafeCode")
36+
(classification "legitimate-ffi")
37+
(audit "audits/audit-ffi-2026-05-26.md")
38+
(rationale "vordr is an eBPF + Zig + Rust container runtime; selur is a Zig sandbox; cerro-torre is an Ada post-quantum component binding liboqs via Ada's pragma Convention/Unchecked_Conversion. All 10 findings are at the Rust↔eBPF kernel boundary, Zig FFI to libc/libcontainer, or Ada↔C bindings to liboqs."))
39+
(classification
40+
(file "container-stack/vordr/src/rust/ebpf/bpf/sched_exec.rs")
41+
(category "UnsafeCode")
42+
(classification "legitimate-ffi")
43+
(audit "audits/audit-ffi-2026-05-26.md")
44+
(rationale "vordr is an eBPF + Zig + Rust container runtime; selur is a Zig sandbox; cerro-torre is an Ada post-quantum component binding liboqs via Ada's pragma Convention/Unchecked_Conversion. All 10 findings are at the Rust↔eBPF kernel boundary, Zig FFI to libc/libcontainer, or Ada↔C bindings to liboqs."))
45+
(classification
46+
(file "container-stack/vordr/src/rust/ebpf/bpf/sys_enter.rs")
47+
(category "UnsafeCode")
48+
(classification "legitimate-ffi")
49+
(audit "audits/audit-ffi-2026-05-26.md")
50+
(rationale "vordr is an eBPF + Zig + Rust container runtime; selur is a Zig sandbox; cerro-torre is an Ada post-quantum component binding liboqs via Ada's pragma Convention/Unchecked_Conversion. All 10 findings are at the Rust↔eBPF kernel boundary, Zig FFI to libc/libcontainer, or Ada↔C bindings to liboqs."))
51+
(classification
52+
(file "container-stack/vordr/ffi/zig/src/main.zig")
53+
(category "UnsafeCode")
54+
(classification "legitimate-ffi")
55+
(audit "audits/audit-ffi-2026-05-26.md")
56+
(rationale "vordr is an eBPF + Zig + Rust container runtime; selur is a Zig sandbox; cerro-torre is an Ada post-quantum component binding liboqs via Ada's pragma Convention/Unchecked_Conversion. All 10 findings are at the Rust↔eBPF kernel boundary, Zig FFI to libc/libcontainer, or Ada↔C bindings to liboqs."))
57+
(classification
58+
(file "container-stack/selur/zig/runtime.zig")
59+
(category "UnsafeCode")
60+
(classification "legitimate-ffi")
61+
(audit "audits/audit-ffi-2026-05-26.md")
62+
(rationale "vordr is an eBPF + Zig + Rust container runtime; selur is a Zig sandbox; cerro-torre is an Ada post-quantum component binding liboqs via Ada's pragma Convention/Unchecked_Conversion. All 10 findings are at the Rust↔eBPF kernel boundary, Zig FFI to libc/libcontainer, or Ada↔C bindings to liboqs."))
63+
(classification
64+
(file "container-stack/cerro-torre/src/core/cerro_crypto.adb")
65+
(category "UnsafeCode")
66+
(classification "legitimate-ffi")
67+
(audit "audits/audit-ffi-2026-05-26.md")
68+
(rationale "vordr is an eBPF + Zig + Rust container runtime; selur is a Zig sandbox; cerro-torre is an Ada post-quantum component binding liboqs via Ada's pragma Convention/Unchecked_Conversion. All 10 findings are at the Rust↔eBPF kernel boundary, Zig FFI to libc/libcontainer, or Ada↔C bindings to liboqs."))
69+
(classification
70+
(file "container-stack/cerro-torre/src/bindings/liboqs.adb")
71+
(category "UnsafeCode")
72+
(classification "legitimate-ffi")
73+
(audit "audits/audit-ffi-2026-05-26.md")
74+
(rationale "vordr is an eBPF + Zig + Rust container runtime; selur is a Zig sandbox; cerro-torre is an Ada post-quantum component binding liboqs via Ada's pragma Convention/Unchecked_Conversion. All 10 findings are at the Rust↔eBPF kernel boundary, Zig FFI to libc/libcontainer, or Ada↔C bindings to liboqs."))
75+
)

audits/audit-ffi-2026-05-26.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<!--
2+
SPDX-License-Identifier: MPL-2.0
3+
Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
4+
-->
5+
6+
# Audit: FFI / systems `unsafe` blocks (stapeln)
7+
8+
**Auditor**: Jonathan D.A. Jewell
9+
**Date**: 2026-05-26
10+
**Scope**: panic-attack assail Critical/High `UnsafeCode` (PA001) and `UnsafeFFI` (PA007) findings located under: `container-stack/`.
11+
**Cross-reference**: campaign tracker [hyperpolymath/panic-attack#32](https://github.com/hyperpolymath/picpath/issues/32).
12+
**Registry**: `audits/assail-classifications.a2ml`.
13+
14+
## Rationale
15+
16+
vordr is an eBPF + Zig + Rust container runtime; selur is a Zig sandbox; cerro-torre is an Ada post-quantum component binding liboqs via Ada's pragma Convention/Unchecked_Conversion. All 10 findings are at the Rust↔eBPF kernel boundary, Zig FFI to libc/libcontainer, or Ada↔C bindings to liboqs.
17+
18+
The classification is scoped to the listed root(s). Any `unsafe` block outside those roots remains visible to assail.
19+
20+
## Anti-gameability
21+
22+
The registry is a separate file from any source under scan; adding a new `unsafe` block inside a classified root requires a companion classification edit and an update to this audit doc, both of which are visible in the diff.
23+
24+
## Verification
25+
26+
Locally on this branch: `panic-attack assail . --headless` reports the listed PA001/PA007 findings as `suppressed: true`. Any new `unsafe` outside the listed roots remains unsuppressed.
27+
28+
Refs hyperpolymath/panic-attack#32.

0 commit comments

Comments
 (0)