Repository navigation
link2linux 0.1.2
Pre-release
Pre-release
Security fixes from a review of pairing, connections and notifications on
both apps, and fixes for crashes and for the phone not keeping to its
"Stay connected" switch.
Security
None of these was known to be exploited.
- Pairing: a forged message during a reconnect can no longer make the
computer think the phone removed it, and the phone's real refusal is now
recognised. Someone answering a QR code's announcement can no longer end
it. Pairing by code no longer replaces a phone with the same id without
asking. - Connections: both apps check a message's size and repeated fields
before decoding it, and keep messages small until the other side is
paired, so one message can no longer make either app use hundreds of
megabytes. The computer stops reading from a peer that does not read its
answers, keeps looking for phones after a flood of fake announcements,
and never dials its own addresses or a public address it last saw a
phone at. - Phone: its listener closes off Wi-Fi, Ethernet and hotspot networks, and
connections that have not yet proven who they are have time and number
limits. A removed computer is cut off before it is told. One paired
computer can no longer lock another out with a key change. - Phone notifications: another app's notification icon can no longer stall
or crash mirroring, and a computer that stops reading no longer holds up
the others. One-time-code detection catches letter-only codes and sign-in
links. Notification keys no longer carry contact details. A new setting,
"Reply while this phone is locked" (on by default), lets you require an
unlocked phone for replies and actions from a computer. - Computer: what the phone sends is held to the protocol's size limits;
pictures must be a PNG, JPEG or WebP of a sensible size before they reach
any image decoder, and their files are private to you. Pop-ups go out
under link2linux's own name. When the app cannot tell whether the screen
is locked, it treats it as locked, and locking takes the text off pop-ups
still on screen. The phones' presence keys are kept sealed with a key
from your keyring, and the pairing secret stays out of debug output. - Releases: the Android signing key never shares a machine with the build,
and every workflow action is pinned to a fixed version.install.sh
downloads over HTTPS only.
Fixed
- The phone app no longer crashes when its camera can't start, or when the
screen that offers to notice a nearby computer goes away. - With "Stay connected" off, the phone no longer opens its listener or
restarts its connection service when a paired computer comes near, and a
removed computer no longer wakes the app. - On a fresh install, the phone runs nothing in the background until the
first pairing starts.
Install
Linux desktop, 64-bit x86
Install this version in one line. It picks the .deb on Debian and Ubuntu, the
.rpm on Fedora and openSUSE, and the AppImage elsewhere:
curl -fsSL https://codesensei-tushar.github.io/link2linux/install.sh | L2L_VERSION=v0.1.2 shOr download a package below: link2linux_amd64.deb, link2linux.x86_64.rpm,
or link2linux-x86_64.AppImage (which needs FUSE 2).
Android phone, 8.0 and newer
Download link2linux.apk on the phone and open it. If Android asks, allow your
browser to install apps.
Then open link2linux on the desktop and scan the QR code it shows with the
phone.
Verify
sha256sum -c SHA256SUMS --ignore-missing
gh attestation verify link2linux_amd64.deb --repo codesensei-tushar/link2linuxWhat's Changed
- Point the website's downloads at 0.1.1 by @codesensei-tushar in #195
- Keep the release signing key away from the build, and pin every action by @codesensei-tushar in #196
- Hold what the phone sends to the protocol's limits on the desktop by @codesensei-tushar in #197
- Keep pop-up text off a locked screen when the lock state is unknown by @codesensei-tushar in #198
- Close the phone's listener off local networks, and bound connections before they authenticate by @codesensei-tushar in #199
- Revoke a removed desktop before telling it, and keep pairings from claiming each other's keys by @codesensei-tushar in #200
- Trust only the phone's own refusal of this desktop's key by @codesensei-tushar in #201
- Keep the QR code up when someone else answers its announcement by @codesensei-tushar in #202
- Keep another app's images and a stalled desktop from holding up the phone's notifications by @codesensei-tushar in #203
- Seal the phones' presence keys with a key from the keyring, and keep the pairing secret out of debug output by @codesensei-tushar in #204
- Ask the phone only for what it offers, keep replies working while it's locked, and list the security fixes by @codesensei-tushar in #205
- Check a frame's size and repeated fields before decoding it, and stop reading from a peer that does not read by @codesensei-tushar in #206
- Keep browsing mDNS after a flood, and bound what forged announcements make the desktop keep and dial by @codesensei-tushar in #207
- Cap QR pairing connections, keep sealed presence keys sealed, and fix pop-up and mirror edge cases by @codesensei-tushar in #208
- Stop the image re-render spin and one-time-code false positives, bound every icon, and keep pairing screens from crashing by @codesensei-tushar in #209
- Free a sender stuck on a desktop that stopped reading, keep the phone to its off switch, and end pairing attempts on any error by @codesensei-tushar in #210
- Release 0.1.2 by @codesensei-tushar in #211
Full Changelog: v0.1.1...v0.1.2