Security policy

Reporting a vulnerability

Open a security advisory on this repository, which is private until published. If that is unavailable to you, open a normal issue saying only that you have a security report and asking for a contact — do not put the details in a public issue.

There is no bug bounty. This is a public-domain project maintained by volunteers, so expect a reply in days rather than hours.

What is useful in a report, roughly in order:

  1. What an attacker gains, and what they need to start — "any peer on the medium, one packet, no key" is a very different report from "a session partner, over hours".
  2. A reproduction. A failing test or a byte sequence beats a description of a code path, because several plausible readings of this code have turned out to be already handled — see Investigated and not a finding.
  3. Which file and function.

Every accepted finding is written up in docs/SECURITY_FINDINGS.md with its reproduction, root cause, patch, and the test that keeps it fixed. You are welcome to be credited there or not, as you prefer.

What is in scope

The protocol and its implementations: the Rust core, the bridges, the wasm/browser node, the C ABI and its language bindings, and the Android app. Also in scope, and treated as real findings rather than documentation nits:

What is not in scope

Known limitations, stated plainly

Report these only if you can show something worse than what is written here.

Supported versions

The v1 wire format is frozen; master is the only supported branch. Fixes land there and reach releases from there — there are no maintained back-branches to backport to.

Operator notes