|
| 1 | +# Security Policy |
| 2 | + |
| 3 | +Bitrequest is a non-custodial, client-side cryptocurrency payment tool. Wallet |
| 4 | +seeds and keys are generated and held on the user's own device; Bitrequest never |
| 5 | +operates a server that holds user funds or secrets. Because of this, the security |
| 6 | +of a Bitrequest deployment depends both on the application code and on how and |
| 7 | +where each user runs and backs it up. |
| 8 | + |
| 9 | +We take security seriously and welcome reports from the community. |
| 10 | + |
| 11 | +## Reporting a vulnerability |
| 12 | + |
| 13 | +Please report suspected vulnerabilities **privately**. Do not open a public |
| 14 | +GitHub issue, pull request, or forum/social post for a security matter, as that |
| 15 | +exposes users before a fix is available. |
| 16 | + |
| 17 | +- **Email:** security@bitrequest.io |
| 18 | +- Please include: a description of the issue, the affected component (app, |
| 19 | + payment proxy, WebSocket server, or a specific coin/backend), steps to |
| 20 | + reproduce or a proof of concept, and the version, commit, or URL you tested. |
| 21 | + |
| 22 | +Please give us a reasonable opportunity to investigate and release a fix before |
| 23 | +any public disclosure. We will not pursue legal action against researchers who |
| 24 | +act in good faith, avoid privacy violations and service disruption, and do not |
| 25 | +access, modify, or exfiltrate data that is not their own. |
| 26 | + |
| 27 | +## What to expect |
| 28 | + |
| 29 | +- **Acknowledgement** of your report as soon as we are able. Bitrequest is |
| 30 | + maintained by a single developer, so response times vary; please allow time |
| 31 | + before following up. |
| 32 | +- An assessment of the report, and where valid, a fix and a coordinated |
| 33 | + disclosure timeline agreed with you. |
| 34 | +- Credit for the report if you would like it, once a fix is released. |
| 35 | + |
| 36 | +## Scope |
| 37 | + |
| 38 | +In scope: |
| 39 | + |
| 40 | +- The Bitrequest web application (`bitrequest.github.io` / `bitrequest.web.app`) |
| 41 | + and its libraries. |
| 42 | +- The PHP payment proxy and the Node.js WebSocket server in this repository. |
| 43 | +- The official iOS and Android wrappers. |
| 44 | + |
| 45 | +Examples of relevant issues: cross-site scripting or injection, flaws in address |
| 46 | +derivation or payment detection that could misattribute or miss a payment, |
| 47 | +weaknesses in how encrypted data is handled, request forgery or SSRF in the |
| 48 | +proxy, and authentication or origin-validation flaws. |
| 49 | + |
| 50 | +Out of scope: |
| 51 | + |
| 52 | +- Third-party services the app talks to (block explorers, indexers, RPC nodes, |
| 53 | + Lightning backends, image CDNs). Report those to the service concerned. |
| 54 | +- Vulnerabilities that require a device already compromised by malware, a |
| 55 | + physically compromised or rooted/jailbroken device, or a user's own |
| 56 | + compromised cloud/backup account. See "Threat model" below. |
| 57 | +- Social engineering, phishing of users, and issues in outdated forks or |
| 58 | + modified builds. |
| 59 | + |
| 60 | +## Threat model and user responsibility |
| 61 | + |
| 62 | +Bitrequest is designed to run without a trusted server, including offline and |
| 63 | +directly from local files. This has security implications users should |
| 64 | +understand: |
| 65 | + |
| 66 | +- **Seed storage.** A wallet seed created in the app is stored on the user's |
| 67 | + device, encrypted. An optional PIN protects it. The PIN is a convenience gate |
| 68 | + intended to deter casual access to a device or a stray backup file; it is |
| 69 | + **not** a substitute for full-disk encryption or a hardware wallet and should |
| 70 | + not be relied on to protect large balances. Bitrequest is intended for |
| 71 | + point-of-sale use with modest balances. For significant holdings, use a |
| 72 | + dedicated hardware wallet. |
| 73 | +- **Backups.** The encrypted seed is only included in a backup if the user |
| 74 | + explicitly confirms it. Anyone who obtains that backup file holds the |
| 75 | + encrypted seed; its safety then depends on the strength of the PIN and on the |
| 76 | + user keeping the file private. Store backups accordingly. |
| 77 | +- **Device integrity.** Bitrequest cannot protect secrets on a device that is |
| 78 | + already compromised by malware or physically controlled by an attacker. Keep |
| 79 | + the operating system and browser current. |
| 80 | +- **Self-hosting and forks.** Users who self-host the app or run a modified |
| 81 | + build are responsible for the integrity of what they deploy. |
| 82 | + |
| 83 | +## Supported versions |
| 84 | + |
| 85 | +Bitrequest is a rolling release; security fixes are applied to the current |
| 86 | +version of the app and the published mobile wrappers. There is no long-term |
| 87 | +support for older versions or forks. Always run the latest version. |
0 commit comments