Security & Responsible Disclosure
Security is the whole point of Lifeline. Our threat model assumes hostile networks, seized infrastructure, and adversaries who control the very devices in between. This page describes how the software is protected and how to report a problem if you find one.
How Lifeline is protected
- End-to-end encryption using modern public-key cryptography, so only the intended recipient can read a message.
- Forward secrecy via rotating keys, so compromising a device today does not unlock its past messages.
- Sealed envelopes that hide the sender and recipient from relays, which only see opaque ciphertext.
- Memory-safe core written in Rust, dramatically reducing entire classes of vulnerabilities.
- Panic wipe to destroy all keys and data on a device instantly under duress.
How we test it
Lifeline follows a secure software development lifecycle. Every change is checked by an automated pipeline that includes:
- Static application security testing (SAST) and linting on the Rust codebase.
- Continuous fuzz testing of parsers and protocol code to surface edge-case crashes.
- Dependency and supply-chain scanning for known-vulnerable components.
- An OpenSSF Scorecard assessing the project's security posture.
Because the entire codebase is open source, anyone can independently audit the cryptography and protocol rather than taking our word for it.
Reporting a vulnerability
Our commitment
- We will investigate all credible reports and keep you informed of progress.
- We will not pursue legal action against good-faith researchers who follow responsible disclosure and avoid privacy violations, data destruction, or service disruption.
- We will publish advisories for confirmed vulnerabilities once a fix is available, so the community can update.
Scope
The Lifeline application, the protocol implementation, and supporting libraries in the project repository are in scope. Third-party platforms, app stores, and infrastructure not operated by the project are out of scope. Please act in good faith, only test against devices and data you own, and never disrupt other participants in the mesh.