Skip to content

Commit ece552d

Browse files
committed
test Council of Roots page
1 parent 998765b commit ece552d

4 files changed

Lines changed: 311 additions & 3 deletions

File tree

src/assets/data/navigation.json

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,8 +241,28 @@
241241
}
242242
}
243243
},
244-
"CVE Numbering Authorities": {
244+
"Council of Roots": {
245245
"id": "3.4",
246+
"label": "Council of Roots (CoR)",
247+
"path": "CouncilOfRoots",
248+
"primaryNavPath": "/ProgramOrganization/CouncilOfRoots",
249+
"items": {
250+
"Responsibilities": {
251+
"anchorId": "CoR-responsibilities",
252+
"label": "Responsibilities"
253+
},
254+
"Roots": {
255+
"anchorId": "CoR-roots",
256+
"label": "Organizations Currently Participating as Roots"
257+
},
258+
"Partner": {
259+
"anchorId": "CoR-partner",
260+
"label": "How to Become a Root Partner"
261+
}
262+
}
263+
},
264+
"CVE Numbering Authorities": {
265+
"id": "3.5",
246266
"label": "CVE Numbering Authorities (CNAs)",
247267
"path": "CNAs",
248268
"primaryNavPath": "/ProgramOrganization/CNAs",
@@ -254,7 +274,7 @@
254274
}
255275
},
256276
"Authorized Data Publishers": {
257-
"id": "3.5",
277+
"id": "3.6",
258278
"label": "Authorized Data Publishers (ADPs)",
259279
"path": "ADPs",
260280
"items": {

src/router/index.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import Board from '@/views/ProgramOrganization/Board.vue';
1414
import BoardArchives from '@/views/ProgramOrganization/Archives.vue';
1515
import WorkingGroups from '@/views/ProgramOrganization/WorkingGroups.vue';
1616
import CNAs from '@/views/ProgramOrganization/CNAs.vue';
17+
import CouncilOfRoots from '@/views/ProgramOrganization/CouncilOfRoots.vue';
1718
import ADPs from '@/views/ProgramOrganization/ADPs.vue';
1819
import Downloads from '@/views/Downloads.vue';
1920
import ReportRequestForNonCNAs from '@/views/ReportRequest/ReportRequestForNonCNAs.vue';
@@ -176,6 +177,14 @@ const router = createRouter({
176177
title: 'CNAs | CVE',
177178
},
178179
},
180+
{
181+
path: '/ProgramOrganization/CouncilOfRoots',
182+
name: 'CouncilOfRoots',
183+
component: CouncilOfRoots,
184+
meta: {
185+
title: 'Council of Roots | CVE',
186+
},
187+
},
179188
{
180189
path: '/ProgramOrganization/ADPs',
181190
name: 'ADPs',

src/views/ProgramOrganization/CNAs.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template>
2-
<div id="cve-secondary-page-main-container">
2+
<div id="cve-secondary-page-main-container" class="container">
33
<div class="columns is-centered">
44
<div class="column is-8-desktop cve-main-column-content-width is-12-tablet">
55
<main id="cve-main-page-content" role="main">
Lines changed: 279 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,279 @@
1+
<template>
2+
<div id="cve-secondary-page-main-container" class="container">
3+
<div class="columns is-centered">
4+
<div class="column is-8-desktop cve-main-column-content-width is-12-tablet">
5+
<main id="cve-main-page-content" role="main">
6+
<div class="content">
7+
<h1 :id="mainId" class="title">
8+
{{mainLabel}}
9+
</h1>
10+
<p>
11+
Within the CVE Program,
12+
<a href="/ResourcesSupport/Glossary?activeTerm=glossaryCVEID">
13+
CVE ID
14+
</a>
15+
assignment and
16+
<a href="/ResourcesSupport/Glossary?activeTerm=glossaryRecord">
17+
CVE Record
18+
</a>
19+
publishing take place within a hierarchy. The “Council of Roots”
20+
is the group of Top-Level Roots (TL-Roots) and Roots responsible
21+
for operational governance and administration of these
22+
hierarchies.
23+
</p>
24+
<p>
25+
Each TL-Root and Root grows and oversees a specific hierarchy as
26+
noted on the
27+
<a href="/ProgramOrganization/Structure">
28+
Structure
29+
</a>
30+
page, while
31+
<a href="/ResourcesSupport/Glossary?activeTerm=glossaryCNA">
32+
CVE Numbering Authorities (CNAs)
33+
</a>
34+
within those hierarchies perform operational tasks such as
35+
assigning CVE IDs and publishing CVE Records.
36+
</p>
37+
<h2 :id="responsibilitiesId" class="title">
38+
{{responsibilitiesLabel}}
39+
</h2>
40+
<p>
41+
TL-Roots and Roots share certain responsibilities, but there are
42+
key differences between the two roles.
43+
</p>
44+
<h3>Shared Reponsibilities</h3>
45+
<ul>
46+
<li>
47+
Operate within a defined scope
48+
</li>
49+
<li>
50+
Oversee CVE-related operations within their hierarchy
51+
</li>
52+
<li>
53+
Grow their hierarchy by recruiting and onboarding new CNAs
54+
that report directly to them
55+
</li>
56+
<li>
57+
Ensure effective CVE ID assignment and CVE Record publishing by
58+
subordinate organizations
59+
</li>
60+
<li>
61+
Ensure
62+
<a href="/ResourcesSupport/AllResources/CNARules">
63+
CNA Operational Rules
64+
</a>
65+
and
66+
<a href="/ResourcesSupport/Resources#General">
67+
CVE Program Policies
68+
</a>
69+
are followed
70+
</li>
71+
<li>
72+
Participate in Council of Roots and other CVE coordination
73+
activities
74+
</li>
75+
<li>
76+
Do not directly assign CVE IDs or publish CVE Records
77+
</li>
78+
</ul>
79+
<h3>Key Differences</h3>
80+
<BoxPair :titles="diffBoxTitles">
81+
<template #box1>
82+
<!-- TL-Roots -->
83+
<ul>
84+
<li>
85+
Reports to the
86+
<a href="/ProgramOrganization/Board">
87+
CVE Board
88+
</a>
89+
</li>
90+
<li>
91+
Recruits, onboards, and manages Roots and/or CNAs
92+
</li>
93+
<li>
94+
<i>Must</i> designate a
95+
<a href="/ResourcesSupport/Glossary#glossaryCNALR">
96+
CNA of Last Resort (CNA-LR)
97+
</a>
98+
</li>
99+
<li>
100+
Resolve
101+
<a href="/Resources/General/Policies/CVE-Record-Dispute-Policy.pdf">
102+
disputes
103+
</a>
104+
within their hierarchy
105+
</li>
106+
</ul>
107+
</template>
108+
<template #box2>
109+
<!-- Roots -->
110+
<ul>
111+
<li>
112+
Reports to a TL-Root or another Root
113+
</li>
114+
<li>
115+
Recruits, onboards, and manages CNAs
116+
</li>
117+
<li>
118+
<i>May</i> designate a CNA-LR
119+
</li>
120+
<li>
121+
Addresses disputes and escalates to the TL-Root when needed
122+
</li>
123+
</ul>
124+
</template>
125+
</BoxPair>
126+
<h2 :id="rootsId" class="title">
127+
{{rootsLabel}}
128+
</h2>
129+
<p>
130+
Scope of coverage is described next to their organization name.
131+
Some Roots may also operate a CNA, and as only CNAs may assign CVE
132+
IDs and publish CVE Records in the CVE Program, that
133+
organization's CNA may have a separate CNA-specific scope that may
134+
be different from their Root scope.
135+
</p>
136+
<ul>
137+
<li>
138+
<p>
139+
<a href="/PartnerInformation/ListofPartners/partner/CISA">
140+
CISA Top-Level Root
141+
</a>
142+
- Vulnerabilities that are (1) reported to
143+
or observed by CISA and (2) affect critical infrastructure,
144+
U.S. civilian government, industrial control systems, or
145+
medical devices, and (3) are not covered by another CNA's
146+
scope.
147+
</p>
148+
<ul>
149+
<li>
150+
<a href="/PartnerInformation/ListofPartners/partner/CERTVDE">
151+
CERT@VDE Root
152+
</a>
153+
- Organizations that are cooperative partners of CERT@VDE.
154+
</li>
155+
<li>
156+
<a href="/PartnerInformation/ListofPartners/partner/icscert">
157+
CISA ICS Root
158+
</a>
159+
- Vulnerabilities that are (1) reported to or observed by
160+
CISA, (2) affect industrial control systems or medical
161+
devices, and (3) are not covered by another CNA's scope.
162+
</li>
163+
</ul>
164+
</li>
165+
<li>
166+
<p>
167+
<a href="/PartnerInformation/ListofPartners/partner/mitre">
168+
MITRE Top-Level Root
169+
</a>
170+
- Vulnerabilities, and Open-Source software product
171+
vulnerabilities, not already covered by a CNA listed on the
172+
CVE website.
173+
</p>
174+
<ul>
175+
<li>
176+
<a href="/PartnerInformation/ListofPartners/partner/ENISA">
177+
ENISA Root
178+
</a>
179+
- European Union (EU) member states/EU authorities, EU
180+
CSIRTs network members, and cooperative partners under
181+
ENISA's mandate as well as other CNAs who choose ENISA as
182+
their Root.
183+
</li>
184+
<li>
185+
<a href="/PartnerInformation/ListofPartners/partner/Google">
186+
Google Root
187+
</a>
188+
- Alphabet organizations.
189+
</li>
190+
<li>
191+
<a href="/PartnerInformation/ListofPartners/partner/INCIBE">
192+
INCIBE Root
193+
</a>
194+
- Spain organizations.
195+
</li>
196+
<li>
197+
<a href="/PartnerInformation/ListofPartners/partner/jpcert">
198+
JPCERT/CC Root
199+
</a>
200+
- Japan organizations.
201+
</li>
202+
<li>
203+
<a href="/PartnerInformation/ListofPartners/partner/redhat">
204+
Red Hat Root
205+
</a>
206+
- The Red Hat Root's scope includes the open source
207+
community. Any open-source organizations that prefer Red
208+
Hat as their Root; organizations are free to choose
209+
another Root if it suits them better.
210+
</li>
211+
<li>
212+
<a href="/PartnerInformation/ListofPartners/partner/THA-PSIRT">
213+
Thales Group Root
214+
</a>
215+
- Products and technologies of subsidiaries of Thales
216+
Group.
217+
</li>
218+
</ul>
219+
</li>
220+
</ul>
221+
<p>
222+
View details of these Root hierarchies on the
223+
<a href="/ProgramOrganization/Structure">
224+
Structure
225+
</a>
226+
page.
227+
</p>
228+
<h2 :id="partnerId" class="title">
229+
{{partnerLabel}}
230+
</h2>
231+
<p>
232+
Start the process by visiting the
233+
<a href="/PartnerInformation/Partner">
234+
Partner
235+
</a>
236+
page for an overview and prerequisites.
237+
</p>
238+
</div> <!-- end content -->
239+
</main>
240+
</div>
241+
<div class="column is-3 is-hidden-touch">
242+
<NavigationSidebar :nav="cvenavs['Program Organization']" />
243+
</div>
244+
</div>
245+
</div>
246+
</template>
247+
248+
<script setup>
249+
import BoxPair from '@/components/BoxPair.vue';
250+
import NavigationSidebar from '@/components/NavigationSidebar.vue';
251+
252+
const props = defineProps({
253+
cvenavs: {
254+
type: Object,
255+
required: true
256+
}
257+
});
258+
259+
const cor = props.cvenavs['Program Organization']['submenu']['Council of Roots'];
260+
261+
const mainId = cor.id;
262+
263+
const mainLabel = cor.label;
264+
265+
const responsibilitiesId = cor.items.Responsibilities.anchorId;
266+
267+
const responsibilitiesLabel = cor.items.Responsibilities.label;
268+
269+
const diffBoxTitles = ['TL-Roots', 'Roots'];
270+
271+
const rootsId = cor.items.Roots.anchorId;
272+
273+
const rootsLabel = cor.items.Roots.label;
274+
275+
const partnerId = cor.items.Partner.anchorId;
276+
277+
const partnerLabel = cor.items.Partner.label;
278+
279+
</script>

0 commit comments

Comments
 (0)