The video player based on Flash (not the HTML5 one), shows the captions/subtitles without escaping. This allows to upload a file with captions/subtitles with HTML code, because the content of the file is not escaped when it's stored.
The way to force the use of the Flash player is using the widget Hubnut, because on Chrome for example the default player is the HTML5 one.
Proof of concept
- For easy reproduction of the proof of concept, create a new account or delete every video in your account or make every video private.
- Upload a video or use an existing video.
- Go to the Settings of the video.
- Click on the tab Advanced.
- Download the file English.vtt that I attached to the report.
- In the section "Add Captions & Subtitles", click on Choose file.
- Select the file you downloaded in step 5.
- When the file is uploaded, click on OFF in the column Status. The value should change to ON.
- Select English in the column Language.
- Select Captions in the column Type.
- Click on Save Changes.
- Using other account, go to https://player.vimeo.com/hubnut/user/[user_url] (like https://player.vimeo.com/hubnut/user/user36690798).
- Click on Play.
- Click on CC (at the right bottom of the player) and click on English, to activate the captions.
alert(document.domain) is executed.
You can reproduce the issue using this link https://player.vimeo.com/hubnut/user/user36690798.