You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: proposals/advisory-db.md
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -90,7 +90,7 @@ The TOML frontmatter must contain a table called `advisory` and a table called `
90
90
*`date`, a TOML local date, which is the disclosure date.
91
91
*`url`, an optional string, which is a link to a resource such as release notes or a blog post that describes the issue in detail
92
92
*`cwe`, an optional array of integers, each of which is a [CWE identifier](https://cwe.mitre.org/index.html)
93
-
*`cvss`, an optional string, which is a [CVSS 3.1 vector](https://www.first.org/cvss/)
93
+
*`cvss`, an mandatory string, which is a [CVSS 3.1 vector](https://www.first.org/cvss/)
94
94
*`keywords`, an optional array of strings, which may be any string that the submitter finds relevant. By convention, they are written in lowercase.
95
95
*`aliases`, an optional array of strings, each of which is another identifier such as a CVE
96
96
*`related`, an optional array of strings, each of which is an identifier for a related advisory (such as for a wrapped C library)
@@ -138,6 +138,8 @@ We recommend that consumers who do not use the Cabal API to process build and fr
138
138
139
139
We additionally recommend that tools prioritize `.cabal` files, followed by freeze files, followed by consulting `stack.yaml` to retrieve the constraints of a Stackage resolver. This recommendation is because virtually all Haskell projects have `.cabal` files (some of which are generated by tools such as `hpack`), and because Stackage sets can be parsed using the same tools as Cabal freeze files.
140
140
141
+
Tools that automatically update bounds to exclude packages that have advisories should only do so on freeze files. Otherwise, we are likely to end up with many holes in the allowed dependency versions of intermediate transitive dependencies, which could lead to fragmentation, difficult-to-read build configurations, and complicated dependency errors. Projects without freeze files will ideally be presented only with a warning, and left to react appropriately themselves.
142
+
141
143
### Governance and Administration
142
144
143
145
The Haskell Foundation will be responsible for appointing the administrators of the database. Administrators are expected to be trusted community members who are willing to provide timely feedback in the repository. The Haskell Foundation should check from time to time that feedback is timely, and can serve as a final arbiter of disputes.
@@ -146,6 +148,8 @@ To begin with, the HF executive team will assemble a group of five volunteers, w
146
148
147
149
We expect that the work done by this team will occur mostly asynchronously, but we plan to have meetings a few times per year in order to have discussions about how the group is working and how it can be improved.
148
150
151
+
Because CVSS is a bit complex, PRs without CVSS will be provisionally accepted, and the volunteers will work with reporters to help them fill out the field appropriately.
152
+
149
153
150
154
### Deliverables
151
155
@@ -157,7 +161,7 @@ The deliverables are:
157
161
158
162
### Risks and Mitigations
159
163
160
-
There are primarily reputational risks associated with this project. Low-quality or false advisories risk damaging the reputation of package authors or maintainers, as well as that of the project and/or organization.
164
+
There are primarily reputational risks associated with this project. Low-quality or false advisories risk damaging the reputation of package authors or maintainers, as well as that of the project and/or organization. To mitigate this, we plan to institute a reporting process that notifies authors in private first, and links to a standard responsible-disclosure process for non-responsive authors. In other words, a PR should not be the first step for non-package-authors.
161
165
162
166
There are very few technical risks to the project itself, as the technology involved is simple and well-understood.
163
167
@@ -200,11 +204,7 @@ Goals left for future work are:
200
204
1. Develop a reverse-import tool to import GitHub's own security advisories into the canonical database using their GraphQL API
201
205
2. Augment build tools such as `cabal` and `stack` with the ability to audit dependencies and build plans for known advisories
202
206
3. Augment Hackage and Stackage with information about advisories
203
-
204
-
205
-
206
-
207
-
208
-
207
+
4. A standard format for advisories to be ignored in the context of a given project, whether it be specific IDs or based on CVSS
208
+
5. Automatically-generated remote freeze files that exclude certain classes of packages with advisories, allowing users to simply point a build tool at the remote file to rule out many vulnerable package versions all at once.
0 commit comments