Skip to content

Commit 21dc599

Browse files
authored
Security: fix XSS attack on milestone (#977)
1 parent 023a660 commit 21dc599

File tree

3 files changed

+9
-9
lines changed

3 files changed

+9
-9
lines changed

Diff for: templates/repo/issue/list.tmpl

+4-4
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
<div class="menu">
3434
<a class="item" href="{{$.Link}}?type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}">{{.i18n.Tr "repo.issues.filter_label_no_select"}}</a>
3535
{{range .Labels}}
36-
<a class="item" href="{{$.Link}}?type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{.ID}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}"><span class="octicon {{if eq $.SelectLabels .ID}}octicon-check{{end}}"></span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}</a>
36+
<a class="item" href="{{$.Link}}?type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{.ID}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}"><span class="octicon {{if eq $.SelectLabels .ID}}octicon-check{{end}}"></span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name | Sanitize}}</a>
3737
{{end}}
3838
</div>
3939
</div>
@@ -47,7 +47,7 @@
4747
<div class="menu">
4848
<a class="item" href="{{$.Link}}?type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{.SelectLabels}}&assignee={{$.AssigneeID}}">{{.i18n.Tr "repo.issues.filter_milestone_no_select"}}</a>
4949
{{range .Milestones}}
50-
<a class="{{if eq $.MilestoneID .ID}}active selected{{end}} item" href="{{$.Link}}?type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{.ID}}&assignee={{$.AssigneeID}}">{{.Name}}</a>
50+
<a class="{{if eq $.MilestoneID .ID}}active selected{{end}} item" href="{{$.Link}}?type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{.ID}}&assignee={{$.AssigneeID}}">{{.Name | Sanitize}}</a>
5151
{{end}}
5252
</div>
5353
</div>
@@ -105,7 +105,7 @@
105105
<a class="title has-emoji" href="{{$.Link}}/{{.Index}}">{{.Title}}</a>
106106

107107
{{range .Labels}}
108-
<a class="ui label" href="{{$.Link}}?type={{$.ViewType}}&state={{$.State}}&labels={{.ID}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}" style="color: {{.ForegroundColor}}; background-color: {{.Color}}">{{.Name}}</a>
108+
<a class="ui label" href="{{$.Link}}?type={{$.ViewType}}&state={{$.State}}&labels={{.ID}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}" style="color: {{.ForegroundColor}}; background-color: {{.Color}}">{{.Name | Sanitize}}</a>
109109
{{end}}
110110

111111
{{if .NumComments}}
@@ -116,7 +116,7 @@
116116
{{$.i18n.Tr "repo.issues.opened_by" $timeStr .Poster.HomeLink .Poster.Name | Safe}}
117117
{{if .Milestone}}
118118
<a class="milestone" href="{{$.Link}}?type={{$.ViewType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{.Milestone.ID}}&assignee={{$.AssigneeID}}">
119-
<span class="octicon octicon-milestone"></span> {{.Milestone.Name}}
119+
<span class="octicon octicon-milestone"></span> {{.Milestone.Name | Sanitize}}
120120
</a>
121121
{{end}}
122122
{{if .Assignee}}

Diff for: templates/repo/issue/milestones.tmpl

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
<div class="milestone list">
2727
{{range .Milestones}}
2828
<li class="item">
29-
<i class="octicon octicon-milestone"></i> <a href="{{$.RepoLink}}/issues?state={{$.State}}&milestone={{.ID}}">{{.Name}}</a>
29+
<i class="octicon octicon-milestone"></i> <a href="{{$.RepoLink}}/issues?state={{$.State}}&milestone={{.ID}}">{{.Name | Sanitize}}</a>
3030
<div class="ui right green progress" data-percent="{{.Completeness}}">
3131
<div class="bar" {{if not .Completeness}}style="background-color: transparent"{{end}}>
3232
<div class="progress"></div>

Diff for: templates/repo/issue/view_content.tmpl

+4-4
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@
263263
<span class="no-select item {{if .HasSelectedLabel}}hide{{end}}">{{.i18n.Tr "repo.issues.new.no_label"}}</span>
264264
{{range .Labels}}
265265
<div class="item">
266-
<a class="ui label {{if not .IsChecked}}hide{{end}}" id="label_{{.ID}}" href="{{$.RepoLink}}/issues?labels={{.ID}}" style="color: {{.ForegroundColor}}; background-color: {{.Color}}">{{.Name}}</a>
266+
<a class="ui label {{if not .IsChecked}}hide{{end}}" id="label_{{.ID}}" href="{{$.RepoLink}}/issues?labels={{.ID}}" style="color: {{.ForegroundColor}}; background-color: {{.Color}}">{{.Name | Sanitize}}</a>
267267
</div>
268268

269269
{{end}}
@@ -285,7 +285,7 @@
285285
{{.i18n.Tr "repo.issues.new.open_milestone"}}
286286
</div>
287287
{{range .OpenMilestones}}
288-
<div class="item" data-id="{{.ID}}" data-href="{{$.RepoLink}}/issues?milestone={{.ID}}"> {{.Name}}</div>
288+
<div class="item" data-id="{{.ID}}" data-href="{{$.RepoLink}}/issues?milestone={{.ID}}"> {{.Name | Sanitize}}</div>
289289
{{end}}
290290
{{end}}
291291
{{if .ClosedMilestones}}
@@ -295,7 +295,7 @@
295295
{{.i18n.Tr "repo.issues.new.closed_milestone"}}
296296
</div>
297297
{{range .ClosedMilestones}}
298-
<a class="item" data-id="{{.ID}}" data-href="{{$.RepoLink}}/issues?milestone={{.ID}}"> {{.Name}}</a>
298+
<a class="item" data-id="{{.ID}}" data-href="{{$.RepoLink}}/issues?milestone={{.ID}}"> {{.Name | Sanitize}}</a>
299299
{{end}}
300300
{{end}}
301301
</div>
@@ -304,7 +304,7 @@
304304
<span class="no-select item {{if .Issue.Milestone}}hide{{end}}">{{.i18n.Tr "repo.issues.new.no_milestone"}}</span>
305305
<div class="selected">
306306
{{if .Issue.Milestone}}
307-
<a class="item" href="{{.RepoLink}}/issues?milestone={{.Issue.Milestone.ID}}"> {{.Issue.Milestone.Name}}</a>
307+
<a class="item" href="{{.RepoLink}}/issues?milestone={{.Issue.Milestone.ID}}"> {{.Issue.Milestone.Name | Sanitize}}</a>
308308
{{end}}
309309
</div>
310310
</div>

0 commit comments

Comments
 (0)