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

Users without "execute_sql" can potentially view dashboards, but can't see a list of them #142

Open
toolness opened this issue Aug 6, 2021 · 0 comments

Comments

@toolness
Copy link
Contributor

toolness commented Aug 6, 2021

So I was a bit surprised when @simonw mentioned the following in #133 (comment):

This is deliberate, because the "export all" operation is potentially quite expensive - I don't want to accidentally open that up to anyone on a public dashboard, since that could potentially be used for a denial of service attack.

It hadn't actually occurred to me that dashboards could be completely public... I think this was because, as I was reading the source code, I saw that the dashboard_index page, which listed all the dashboards, required both login and execute_sql permission. My assumption was then that the whole dashboard (everything "under" it in the URL structure) would require similar permissions. But this is not the case, since e.g. /dashboard/my-funky-dashboard could have public visibility!

So it seems the dashboard index page actually serves two purposes:

  1. Showing users a list of dashboards they can view.
  2. Allowing users to dynamically execute SQL queries.

It seems like (1) doesn't really have any security restrictions, since some dashboards can even be public, while (2) clearly has lots of restrictions.

Maybe the index page should be modified so that it supports (1) better? This could mean, for instance, that it always shows a list of viewable dashboards (or tells the user they can't view any, if that's the case), and only shows the SQL interface and list of tables if the user has execute_sql permission?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant