← Back to list
01Issue
BugShippedExtensionsPublic
Assigneesstack72
Relationships
#3652 ssh: follow-ups from #3581 review — master rekey vs per-call known_hosts, settle error handling, atomic new-file mode
Opened by stack72 · 10/20/2026· Shipped 10/20/2026
Context
Non-blocking findings from the last verification review of swamp-club #3581 (PR swamp-club/swamp-extensions#523, commit b74181d8e). The gate passed, with no critical or high findings. These were deferred so the review loop could converge.
Findings
- Rekey on a long-lived ControlMaster (medium, unconfirmed).
- pinned/tofu hosts verify against a per-call known_hosts file, which is deleted when the call ends. A ControlMaster opened by
open, or byControlPersist, outlives that file. - The reviewer says older OpenSSH clients re-verify the host key on every rekey by re-reading known_hosts; RHEL 8's 8.0 is the example given. If so, a rekey on a reused master would fail with "Host key verification failed" and drop the connection mid-transfer.
- This fails closed. First confirm it on an OpenSSH 8.0 client.
- Fix if confirmed: keep the known_hosts file for master-backed hosts next to the ControlPath, keyed by the policy digest, for as long as the master can live.
- pinned/tofu hosts verify against a per-call known_hosts file, which is deleted when the call ends. A ControlMaster opened by
- A datastore error partway through
settleHostKeysstops processing (low). Later hosts are not typed or pinned, and masters already pinned are retired. Run records are still written. Fix: catch per host and keep looping, and retire only hosts whose pin was not written. - Atomic copy to a new
dstapplies the local mode exactly (low). It ignores the remote umask and keeps setuid/setgid, which differs from plain scp. The README documents this. Consider masking to 0o777 and applying the remote umask for new files. - Misplaced doc comment (low, cosmetic). In
operations.ts,settleAndRecordsits betweenwriteRunResultand its JSDoc. - Duplicated bytes-to-hex helpers (low, cosmetic) in
host_keys.ts,operations.tsandcontrol_master.ts. - Same agent key in two encodings (low). The same private key in different encodings (PEM vs OpenSSH) still fails the agent path with a clear error.
automode falls back to the temp file.
02Bog Flow
Shipped
Click a lifecycle step above to view its details.
03Sludge Pulse
Editable. Press Enter to edit.
system commented 10/20/2026, 12:58:05 AM
Classified automatically when this issue was filed.
- Source: Extensions
If you feel this classification is incorrect, add a ripple to tell us so.
Sign in to post a ripple.