Skip to content

v1.1.1

Choose a tag to compare

@github-actions github-actions released this 14 Jul 21:05

Hardening and bug-fix release — no new features, a lot more resilience.

Downloads: legal unix filenames work again (#29)

v1.1.0's traversal guard applied Windows filename rules on every OS and aborted a whole recursive download at the first "suspicious" entry. Now:

  • macOS/Linux store every legal name verbatim2024-01-01T12:00:00.log, wild*card, aux.txt all download byte-exact.
  • Windows repairs unrepresentable names browser-style (: ? * etc. → _, device stems and trailing dots gain a _) instead of refusing the file.
  • A genuinely dangerous or colliding name fails only that entry — it shows up as an Error item in the transfer queue with the reason, and the rest of the tree keeps transferring.
  • tar-accelerated SSH downloads now enforce the same name rules through a capability handle on the destination and never materialize symlink/hardlink/device entries from the untrusted stream.

Security & reliability fixes (thanks @coldrain96)

  • Changing the master password now rekeys the .bak recovery copy too — it can no longer be opened with the old password (#18)
  • Vault mutations are failure-atomic: a failed save no longer leaves memory and disk disagreeing (#19)
  • Vault path changes persist transactionally (#20)
  • Remote-edit cache confined: 0700/0600 permissions from the first byte, exclusive file creation, symlinked cache root refused (#17)
  • Remote edits are staged next to the original and promoted via rename — a failed upload can no longer truncate the remote file (#21)
  • Recursive downloads confined to the chosen destination via capability-based writes (#14)
  • Local copies refuse to overwrite, refuse to copy a directory into itself, keep private files 0600 throughout (#15)
  • FTP downloads verify the final server reply — a truncated transfer now fails instead of silently passing (#16)
  • Stale SSH connection attempts are discarded instead of leaking sessions (#13)
  • Connection edits wait for stored credentials to load before allowing save — no more silently wiped secrets (#12)
  • Auto-lock idle timer restarts after unlock, so the vault no longer re-locks immediately (#25)
  • S3 multipart uploads register their upload ID before the first part — cancelled uploads always abort cleanly, nothing orphaned or billable left behind (#27)

Full changelog: v1.1.0...v1.1.1