Repository navigation
Rail v0.7.0
Security hardening of remote pictures: a trusted sender's pictures load only for mail the
receiving server vouched for, the daemon bounds its picture fetches and cache, and IPv6 can be
turned off for them (#131, #132, #134).
Added
remote_images_ipv6under[general](defaulttrue).falsemakes the daemon fetch remote
pictures over IPv4 only. On an IPv6-only network with NAT64, the gateway's own prefix looks
public to Rail's address guard but can be translated to private IPv4 addresses; the README now
says so (#134).
Fixed
- The daemon fetches at most eight remote pictures at once, however many readers ask, and the
image cache (cache/images/) holds at most 512 MiB: the oldest pictures go to make room for a
new one, besides the weekly sweep. A mailbox of picture-heavy mail can no longer fill the disk
before the sweep (#132).
Security
- A trusted sender's remote pictures (
remote_images_from,I) load by themselves only when
the receiving server vouched for the sender's domain: the topmostAuthentication-Results
(Gmail's own, frommx.google.com, or Exchange Online's) shows DMARC passed for the From
domain, or a DKIM signature of it or a parent domain passed. Mail with a forged From line now
waits with the hint, as an untrusted sender's does, so its pictures no longer signal that you
read it.Istill loads the open thread's pictures at once (#131).
Upgrading
- This version adds a database migration (schema v12:
messages.vouched_domains). An older
Rail refuses the upgraded store. - Mail stored before this version has no vouched domains until its body is fetched again, so a
trusted sender's older mail shows the hint;iloads it. - An older Rail refuses a
config.tomlthat containsremote_images_ipv6; remove it before
going back.
Downloads
| Archive | For |
|---|---|
rail-v0.7.0-x86_64-unknown-linux-gnu.tar.gz |
Linux x86_64, glibc 2.36 or newer |
rail-v0.7.0-aarch64-unknown-linux-gnu.tar.gz |
Linux ARM64, glibc 2.36 or newer |
rail-v0.7.0-aarch64-apple-darwin.tar.gz |
macOS 11 or newer on Apple Silicon |
rail-v0.7.0-x86_64-apple-darwin.tar.gz |
macOS 11 or newer on Intel |
Each archive holds the rail binary, the README, the changelog, the licences and
BUILD-INFO.txt. Extract it and put rail in a directory on your PATH.
Check an archive against SHA256SUMS, and check where it was built:
sha256sum -c --ignore-missing SHA256SUMS # macOS: shasum -a 256 -c --ignore-missing SHA256SUMS
gh attestation verify rail-v0.7.0-<target>.tar.gz --repo vitosans/railOn other systems, build from the tag with Rust 1.88 or newer:
git clone --branch v0.7.0 --depth 1 https://github.com/vitosans/rail.git
cd rail
cargo install --locked --path crates/rail