Security & Vulnerability Disclosure

FrogTalk is open source and in pre-alpha. We welcome responsible disclosure, but we cannot guarantee uptime, data durability, or that every build has been professionally audited. If something looks off, broken, or exploitable — tell us.

⚠️ Pre-alpha · No SLA · Use at your own risk
Community-secured · MIT-licensed · No bug bounty (yet) — full credit instead

What FrogTalk is

Pre-alpha notice: FrogTalk is experimental software. Features change quickly, backups and uptime are not guaranteed, and not every code path has been reviewed for security. Do not rely on it for high-stakes or life-critical communications until we leave pre-alpha. Production deploys use the master branch; active development happens on dev.

FrogTalk is a censorship-free chat platform where messages can stay private. No company sits in the middle; anyone can run a node; DMs are end-to-end encrypted so the server cannot read them even if it is seized.

The codebase is MIT-licensed and fully public on GitHub. We publish the security model, encryption details, and API reference so operators and researchers can verify behaviour instead of trusting marketing copy.

The encryption primitives are standard (ECDH-P256 → SHA-256 → AES-GCM-256 for channels; Signal Protocol for DMs; DTLS fingerprint signing for calls). As with any fast-moving open-source project, we welcome audits and responsible disclosure.

Threat model: we assume the server can be compromised. DM bodies are end-to-end encrypted, keys never touch the server, and recovery keys are bcrypt-hashed at rest. Private channels use per-room AES-256-GCM with AAD-bound ciphertext (room id + key version) and automatic key rotation on ban/kick — a captured ciphertext cannot be replayed against another room or an older key, and a banned user cannot read messages sent after the rotation. Bridges to Discord/Telegram are blocked for private rooms (they would leak plaintext to a third party). If you find a way around any of that — please report it loudly.

How you can help:

How nodes are hardened

End-to-end encryption protects message contents even if a server is seized. Around that, the official nodes run defence-in-depth at the operating-system layer — and every operator gets the same playbook free (NODE_SECURITY.md):

Operator panic button: the node admin panel has a gated Danger Zone → Nuke this node that securely shreds the database, keys and the install itself, best-effort wipes RAM, and powers the box off — for decommission, seizure risk, or a confirmed compromise.

What counts as a vulnerability

Report a vulnerability

Use the form below. You can submit anonymously — we don't require an account — but including a contact (email, Matrix, GitHub handle, or a FrogTalk nickname) lets us ask follow-up questions and credit you when it's fixed.

For critical issues you'd rather not put in a web form, email [email protected] with as much detail as you can.

Reports are rate-limited (5/hour per address). Be specific — a good report saves us both time.
Please don't test exploits against the live production server beyond what's needed to confirm the bug. For destructive PoCs (mass-account creation, DoS), spin up a local instance — docker compose up from the repo gets you a full stack in about a minute.

Even better: send a patch

FrogTalk is MIT-licensed and lives on GitHub. If you can write the fix, we'd much rather review a PR than relitigate the bug in an issue tracker.

Contributing: FrogTalk is MIT-licensed on GitHub. Keep PRs small and focused; include a PoC for security fixes. See CONTRIBUTING.md for branch workflow and review expectations.
Community projects are up to all of us. Every reviewed PR, every triaged report, every responsible disclosure makes the platform safer for the next person who logs in. We notice, and we say thank you.

Hall of fame

Security researchers who've responsibly disclosed issues. Want to be on this list? See above.