Skip to content

Commit cd4f5c4

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

4 files changed

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

0 commit comments

Comments
 (0)