Skip to content

Commit 3694e81

Browse files
committed
docs: add a security policy
The repository had no SECURITY.md, so there was no stated way to report a vulnerability privately and no stated scope. Reporting points at the private advisory form first, now that private vulnerability reporting is enabled on the repository, with ai@swmansion.com as the fallback. That is the same address as the Code of Conduct. Supported versions are written as lines mapped to npm dist-tags rather than version numbers, so the table does not go stale on every release. The scope section is the part worth reading. It says that the demo apps, the docs site and build tooling are out of scope, and why: the published package ships neither node_modules nor a lock file, so a vulnerable transitive dependency of the build does not reach anyone who installs the library. It also states that models are executable content for the ExecuTorch runtime, so pointing the library at an untrusted model source means trusting whoever published it. No response-time commitment is included; that is a policy call for the team rather than something to assume in a file.
1 parent eab30eb commit 3694e81

1 file changed

Lines changed: 77 additions & 0 deletions

File tree

SECURITY.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# Security Policy
2+
3+
## Reporting a vulnerability
4+
5+
**Please do not report security issues in public GitHub issues, pull requests
6+
or Discord.**
7+
8+
Use one of these instead:
9+
10+
1. [**Report a vulnerability**](https://github.com/software-mansion/react-native-executorch/security/advisories/new)
11+
on this repository. This opens a private advisory that only the maintainers
12+
can see, and it is the preferred route: the fix can be developed in a
13+
private fork attached to the report.
14+
2. Email **ai@swmansion.com** if you cannot use GitHub, or if you would rather
15+
make first contact by mail. This is the same address as in our
16+
[Code of Conduct](./CODE_OF_CONDUCT.md).
17+
18+
A useful report says which version and platform you were on, what an attacker
19+
can achieve, and how to reproduce it. A proof of concept helps more than a
20+
scanner name. If you are unsure whether something counts, report it anyway and
21+
let us decide.
22+
23+
We will acknowledge your report and tell you whether we consider it in scope.
24+
If we ship a fix we will credit you in the advisory unless you ask us not to.
25+
Please give us a chance to release a fix before disclosing publicly.
26+
27+
## Supported versions
28+
29+
Fixes land on the current line. The previous line receives security fixes only.
30+
31+
| Line | npm dist-tag | Status |
32+
| -------------- | -------------------- | --------------------------------------- |
33+
| Current minor | `latest` | Supported |
34+
| Previous minor | `legacy` | Security fixes only |
35+
| Anything older | none | Unsupported, please upgrade |
36+
| Nightly builds | `executorch-nightly` | Not supported, do not use in production |
37+
38+
Deliberately written as version lines rather than numbers, so it does not go
39+
stale on every release. `npm dist-tag ls react-native-executorch` shows what
40+
each tag currently points at.
41+
42+
## Scope
43+
44+
In scope, because they are what users install and run:
45+
46+
- The published npm packages: `react-native-executorch`, its
47+
`react-native-executorch-bare-resource-fetcher` and
48+
`react-native-executorch-expo-resource-fetcher` adapters, and
49+
`react-native-executorch-webrtc`. This includes the C++, Kotlin, Swift and
50+
Objective-C sources they ship.
51+
- The prebuilt native artifacts the package downloads on install, published as
52+
GitHub Releases tagged `v<version>-libs`.
53+
- The model files we publish under
54+
[software-mansion on HuggingFace](https://huggingface.co/software-mansion),
55+
which the library downloads at runtime.
56+
57+
Out of scope, because nothing here reaches a user of the library:
58+
59+
- The demo applications under `apps/`, and the documentation site under
60+
`docs/`. Neither is published to npm.
61+
- Development and CI tooling, including any advisory that only affects a
62+
`yarn.lock` in this repository. The published package ships neither
63+
`node_modules` nor a lock file, so a vulnerable transitive dependency of the
64+
build does not reach anyone who installs the library. Please still tell us if
65+
you find one that does reach the published artifacts.
66+
- Vulnerabilities in ExecuTorch, PyTorch or other upstream projects. Report
67+
those to the relevant project; tell us as well if react-native-executorch
68+
exposes them in a way upstream would not.
69+
- Findings that need an already compromised device, a physical attacker with
70+
the unlocked device, or a modified build of the library.
71+
72+
## A note on models
73+
74+
Models are downloaded at runtime from URLs in the model registry, and a model
75+
file is executable content for the ExecuTorch runtime. If you point the library
76+
at a model you do not control, you are trusting whoever published it. Treat a
77+
custom model source the way you would treat any other remote code.

0 commit comments

Comments
 (0)