You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hardening items for the native SSH stack. (Note: host-key verification was reviewed and is correctly implemented — TOFU with pinning via NativeKnownHostsStore, mismatch refusal in SshInteractionService.cs:141-163.)
No secret zeroization.zeroize is not in Cargo.toml; passwords/passphrases live in plain String/Vec<u8> (Rust) and GC-managed string (C#). Crash dumps/swap retain credentials. Add zeroize on the Rust side; minimize string retention on the C# side.
Audit error-string ownership across FFI — confirm every Rust-allocated error payload is freed when C# abandons a session mid-error (add a debug allocation counter).
ffi_contract.rs is thin (41 LOC) for a 13-export surface. Add abuse tests: call-after-close, double-close, concurrent poll+close, malformed/oversized JSON payloads. Confirm cargo test runs in CI.
Area:
src/NovaTerminal.App/native/rusty_ssh/,src/NovaTerminal.Platform/Ssh/Native/NativeSshInterop.csSummary
Hardening items for the native SSH stack. (Note: host-key verification was reviewed and is correctly implemented — TOFU with pinning via
NativeKnownHostsStore, mismatch refusal inSshInteractionService.cs:141-163.)zeroizeis not in Cargo.toml; passwords/passphrases live in plainString/Vec<u8>(Rust) and GC-managedstring(C#). Crash dumps/swap retain credentials. Addzeroizeon the Rust side; minimize string retention on the C# side.IntPtrhandles inNativeSshInterop.cs(noSafeHandle): an exception between allocation and storage leaks the native session; close/poll races mirror [Security] PTY FFI: use-after-free window between pty_close and concurrent calls #118. Wrap session handles inSafeHandlesubclasses.ffi_contract.rsis thin (41 LOC) for a 13-export surface. Add abuse tests: call-after-close, double-close, concurrent poll+close, malformed/oversized JSON payloads. Confirmcargo testruns in CI.