Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FIX(client): Only allow "http" and "https" schemes in ConnectDialog for web page #4733

Merged

Conversation

davidebeatrici
Copy link
Member

Our public server list registration script doesn't have an URL scheme whitelist for the website field.

Turns out a malicious server can register itself with a dangerous URL in an attempt to attack a user's machine.

User interaction is required, as the URL has to be opened by right-clicking on the server entry and clicking on Open Webpage.

This PR introduces a client-side whitelist, which only allows http and https schemes. We will also implement it in our public list.

In future we should probably add a warning QMessageBox informing the user that there's no guarantee the URL is safe (regardless of the scheme).

Thanks a lot to https://positive.security for reporting us the RCE vulnerability privately.

src/mumble/ConnectDialog.cpp Outdated Show resolved Hide resolved
@Krzmbrzl Krzmbrzl force-pushed the connectdialog-url-scheme-filter branch from e03d947 to c745397 Compare February 6, 2021 09:15
davidebeatrici and others added 2 commits February 6, 2021 11:45
Our public server list registration script doesn't have an URL scheme
whitelist for the website field.

Turns out a malicious server can register itself with a dangerous URL in
an attempt to attack a user's machine.

User interaction is required, as the URL has to be opened by
right-clicking on the server entry and clicking on "Open Webpage".

This commit introduces a client-side whitelist, which only allows "http"
and "https" schemes. We will also implement it in our public list.

In future we should probably add a warning QMessageBox informing the
user that there's no guarantee the URL is safe (regardless of the
scheme).

Thanks a lot to https://positive.security for reporting the RCE
vulnerability to us privately.
Scanning directory './src'...
Scanning directory './src/mumble'...
Updating 'src/mumble/mumble_en.ts'...
    Found 1929 source text(s) (3 new and 1926 already existing)
@Krzmbrzl Krzmbrzl force-pushed the connectdialog-url-scheme-filter branch from c745397 to 0364272 Compare February 6, 2021 10:46
@Krzmbrzl Krzmbrzl merged commit 817d2c1 into mumble-voip:master Feb 6, 2021
Krzmbrzl added a commit that referenced this pull request Feb 6, 2021
…ttps" for URLs in ConnectDialog"

Our public server list registration script doesn't have an URL scheme
whitelist for the website field.

Turns out a malicious server can register itself with a dangerous URL in
an attempt to attack a user's machine.

User interaction is required, as the URL has to be opened by
right-clicking on the server entry and clicking on "Open Webpage".

This commit introduces a client-side whitelist, which only allows "http"
and "https" schemes. We will also implement it in our public list.

In future we should probably add a warning QMessageBox informing the
user that there's no guarantee the URL is safe (regardless of the
scheme).

Thanks a lot to https://positive.security for reporting the RCE
vulnerability to us privately.

This is a backport of #4733
Krzmbrzl added a commit to Krzmbrzl/mumble that referenced this pull request Mar 28, 2021
The previous dialog was simply a message box with a bunch of HTML in
order to give a little structure to the contents. This approach is very
limiting in terms of UI flexibility though and therefore this commit
replaces the old HTML approach with a dedicated dialog class that uses
proper UI elements instead.

While doing so, the ordering and grouping of information was also
changed in order to make it more suitable for the every-day-user.

Fixes mumble-voip#4733
Krzmbrzl added a commit to Krzmbrzl/mumble that referenced this pull request Mar 28, 2021
The previous dialog was simply a message box with a bunch of HTML in
order to give a little structure to the contents. This approach is very
limiting in terms of UI flexibility though and therefore this commit
replaces the old HTML approach with a dedicated dialog class that uses
proper UI elements instead.

While doing so, the ordering and grouping of information was also
changed in order to make it more suitable for the every-day-user.

Fixes mumble-voip#4733
Krzmbrzl added a commit that referenced this pull request Mar 28, 2021
…on dialog

The previous dialog was simply a message box with a bunch of HTML in
order to give a little structure to the contents. This approach is very
limiting in terms of UI flexibility though and therefore this commit
replaces the old HTML approach with a dedicated dialog class that uses
proper UI elements instead.

While doing so, the ordering and grouping of information was also
changed in order to make it more suitable for the every-day-user.

Fixes #4733
frelon pushed a commit to frelon/mumble that referenced this pull request May 3, 2021
The previous dialog was simply a message box with a bunch of HTML in
order to give a little structure to the contents. This approach is very
limiting in terms of UI flexibility though and therefore this commit
replaces the old HTML approach with a dedicated dialog class that uses
proper UI elements instead.

While doing so, the ordering and grouping of information was also
changed in order to make it more suitable for the every-day-user.

Fixes mumble-voip#4733
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants