Skip to content

Commit 65c2d2c

Browse files
authored
docs: add vulnerability merging to CONTRIBUTING.md
1 parent 5a26426 commit 65c2d2c

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

CONTRIBUTING.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
- [Merging](#merging)
3333
- [Breaking Change](#breaking-change-1)
3434
- [Reverting](#reverting)
35+
- [Security Vulnerability](#security-vulnerability)
3536
- [Releasing](#releasing)
3637
- [General Considerations](#general-considerations)
3738
- [Major Release / Long-Term-Support](#major-release--long-term-support)
@@ -451,6 +452,24 @@ If the commit reverts a previous commit, use the prefix `revert:`, followed by t
451452
This reverts commit 1234567890abcdef.
452453
```
453454
455+
### Security Vulnerability
456+
457+
#### Local Testing
458+
459+
Fixes for securify vulnerabilities are developed in private forks with a closed audience, inaccessible to the public. A current GitHub limitation does not allow to run CI tests on pull requests in private forks. Whether a pull requests fully passes all CI tests can only be determined by publishing the fix as a pull request and running the CI. This means the fix and implicitly information about the vulnerabilty are made accessible to the public. This increases the risk that a vulnerability fix is published, but then cannot be merged immediately due to a CI issue. To mitigate that risk, before publishing a vulnerability fix, the following tests needs to be run locally and pass:
460+
461+
- `npm run test` (MongoDB)
462+
- `npm run test` (Postgres)
463+
- `npm run madge:circular` (circular dependencies)
464+
- `npm run lint` (Lint)
465+
- `npm run definitions` (Parse Server options definitions)
466+
467+
### Merging
468+
469+
A current GitHub limitation does not allow to customize the commit message when merging pull requests of a private fork that was created to fix a security vulnerabilty. Our release automation framework demands a specific commit message syntax which therefore cannot be met. This prohibits to follow the process that GitHub suggest, which is to merge a pull request from a private fork directly to a public branch. Instead, after [local testing](#local-testing), a public pull request needs to be created with the code fix copied over from the private pull request.
470+
471+
This creates a risk that a vulnerability is indirectly disclosed by publishing a pull request with the fix, but the fix cannot be merged due to a CI issue. To mitigate that risk, the pull request title and description should be kept marginal or generic, not hiting to a vulnerabilty or giving any details about the vulnerabilty, until the pull request has been successfully merged.
472+
454473
## Releasing
455474
456475
### General Considerations

0 commit comments

Comments
 (0)