Skip to content

Commit dae1564

Browse files
authored
Merge pull request #1103 from nscuro/backport-pr-1098
2 parents 3e5168b + 0692846 commit dae1564

7 files changed

+48
-17
lines changed

src/views/globalAudit/VulnerabilityAuditByOccurrence.vue

+4-1
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,10 @@ export default {
491491
sortable: true,
492492
formatter(value, row, index) {
493493
let url = xssFilters.uriInUnQuotedAttr(
494-
'../vulnerabilities/' + row.vulnerability.source + '/' + value,
494+
'../vulnerabilities/' +
495+
row.vulnerability.source +
496+
'/' +
497+
encodeURIComponent(value),
495498
);
496499
return (
497500
common.formatSourceLabel(row.vulnerability.source) +

src/views/globalAudit/VulnerabilityAuditGroupedByVulnerability.vue

+4-1
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,10 @@ export default {
456456
sortable: true,
457457
formatter(value, row, index) {
458458
let url = xssFilters.uriInUnQuotedAttr(
459-
'../vulnerabilities/' + row.vulnerability.source + '/' + value,
459+
'../vulnerabilities/' +
460+
row.vulnerability.source +
461+
'/' +
462+
encodeURIComponent(value),
460463
);
461464
return (
462465
common.formatSourceLabel(row.vulnerability.source) +

src/views/portfolio/projects/ProjectFindings.vue

+2-2
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ export default {
238238
'../../../vulnerabilities/' +
239239
row.vulnerability.source +
240240
'/' +
241-
value,
241+
encodeURIComponent(value),
242242
);
243243
return (
244244
common.formatSourceLabel(row.vulnerability.source) +
@@ -263,7 +263,7 @@ export default {
263263
'../../../vulnerabilities/' +
264264
alias.source +
265265
'/' +
266-
alias.vulnId,
266+
encodeURIComponent(alias.vulnId),
267267
);
268268
label +=
269269
common.formatSourceLabel(alias.source) +

src/views/portfolio/vulnerabilities/AffectedProjects.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ export default {
118118
},
119119
methods: {
120120
apiUrl: function () {
121-
let url = `${this.$api.BASE_URL}/${this.$api.URL_VULNERABILITY}/source/${this.source}/vuln/${this.vulnId}/projects`;
121+
let url = `${this.$api.BASE_URL}/${this.$api.URL_VULNERABILITY}/source/${this.source}/vuln/${encodeURIComponent(this.vulnId)}/projects`;
122122
if (this.showInactiveProjects === undefined) {
123123
url += '?excludeInactive=true';
124124
} else {

src/views/portfolio/vulnerabilities/Vulnerability.vue

+26-9
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@
6666
<span v-for="alias in resolveVulnAliases(vulnerability.aliases)">
6767
<b-link
6868
style="margin-right: 1rem"
69-
:href="`/vulnerabilities/${alias.source}/${alias.vulnId}`"
69+
:href="`/vulnerabilities/${alias.source}/${encodeURIComponent(alias.vulnId)}`"
7070
>{{ alias.vulnId }}</b-link
7171
>
7272
</span>
@@ -446,7 +446,7 @@ export default {
446446
if (this.uuid) {
447447
url = `${this.$api.BASE_URL}/${this.$api.URL_VULNERABILITY}/${this.uuid}`;
448448
} else {
449-
url = `${this.$api.BASE_URL}/${this.$api.URL_VULNERABILITY}/source/${this.source}/vuln/${this.vulnId}`;
449+
url = `${this.$api.BASE_URL}/${this.$api.URL_VULNERABILITY}/source/${this.source}/vuln/${encodeURIComponent(this.vulnId)}`;
450450
}
451451
this.axios.get(url).then((response) => {
452452
this.vulnerability = response.data;
@@ -467,7 +467,7 @@ export default {
467467
initializeData: function () {
468468
this.uuid = this.$route.params.uuid;
469469
this.source = this.$route.params.source;
470-
this.vulnId = this.$route.params.vulnId;
470+
this.vulnId = decodeURIComponent(this.$route.params.vulnId);
471471
},
472472
routeTo(path) {
473473
if (path) {
@@ -479,19 +479,31 @@ export default {
479479
'/vulnerabilities/' +
480480
this.source +
481481
'/' +
482-
this.vulnId +
482+
encodeURIComponent(this.vulnId) +
483483
'/' +
484484
path,
485485
});
486486
}
487487
} else if (
488488
this.$route.fullPath !==
489-
'/vulnerabilities/' + this.source + '/' + this.vulnId &&
489+
'/vulnerabilities/' +
490+
this.source +
491+
'/' +
492+
encodeURIComponent(this.vulnId) &&
490493
this.$route.fullPath !==
491-
'/vulnerabilities/' + this.source + '/' + this.vulnId + '/'
494+
'/vulnerabilities/' +
495+
this.source +
496+
'/' +
497+
encodeURIComponent(this.vulnId) +
498+
'/'
492499
) {
493500
this.$router.push({
494-
path: '/vulnerabilities/' + this.source + '/' + this.vulnId + '/',
501+
path:
502+
'/vulnerabilities/' +
503+
this.source +
504+
'/' +
505+
encodeURIComponent(this.vulnId) +
506+
'/',
495507
});
496508
}
497509
},
@@ -500,7 +512,7 @@ export default {
500512
'/vulnerabilities\\/' +
501513
this.source +
502514
'\\/' +
503-
this.vulnId +
515+
encodeURIComponent(this.vulnId) +
504516
'\\/([^\\/]*)',
505517
'gi',
506518
);
@@ -533,7 +545,12 @@ export default {
533545
} catch (e) {
534546
this.$toastr.e(this.$t('condition.forbidden'));
535547
this.$router.replace({
536-
path: '/vulnerabilities/' + this.source + '/' + this.vulnId + '/',
548+
path:
549+
'/vulnerabilities/' +
550+
this.source +
551+
'/' +
552+
encodeURIComponent(this.vulnId) +
553+
'/',
537554
});
538555
this.$refs.overview.active = true;
539556
}

src/views/portfolio/vulnerabilities/VulnerabilityCreateVulnerabilityModal.vue

+3-1
Original file line numberDiff line numberDiff line change
@@ -1508,7 +1508,9 @@ export default {
15081508
this.$emit('refreshTable');
15091509
this.$toastr.s(this.$t('message.vulnerability_created'));
15101510
this.$router.replace({
1511-
path: '/vulnerabilities/INTERNAL/' + this.vulnerability.vulnId,
1511+
path:
1512+
'/vulnerabilities/INTERNAL/' +
1513+
encodeURIComponent(this.vulnerability.vulnId),
15121514
});
15131515
})
15141516
.catch((error) => {

src/views/portfolio/vulnerabilities/VulnerabilityList.vue

+8-2
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,10 @@ export default {
7474
sortable: true,
7575
formatter(value, row, index) {
7676
let url = xssFilters.uriInUnQuotedAttr(
77-
'../vulnerabilities/' + row.source + '/' + value,
77+
'../vulnerabilities/' +
78+
row.source +
79+
'/' +
80+
encodeURIComponent(value),
7881
);
7982
return (
8083
common.formatSourceLabel(row.source) +
@@ -93,7 +96,10 @@ export default {
9396
for (let i = 0; i < aliases.length; i++) {
9497
let alias = aliases[i];
9598
let url = xssFilters.uriInUnQuotedAttr(
96-
'../vulnerabilities/' + alias.source + '/' + alias.vulnId,
99+
'../vulnerabilities/' +
100+
alias.source +
101+
'/' +
102+
encodeURIComponent(alias.vulnId),
97103
);
98104
label +=
99105
common.formatSourceLabel(alias.source) +

0 commit comments

Comments
 (0)