Skip to content

[Security] Backend-driven RLS Filters Not Applied to Dashboard Filters and Reset After 30 Minutes #34013

Open
@Gyan-Chiraniya

Description

@Gyan-Chiraniya

Bug description

Bug: RLS Filter Not Applied to Dashboard Filter Section and Resets After 30 Minutes

Description

  1. Row Level Security (RLS) filters are not being applied to the dashboard filter section, potentially exposing restricted data.
  2. Additionally, RLS filters (which are backend-driven, not static) are being reset after approximately 30 minutes of dashboard inactivity, causing potential data exposure.

Expected Behavior

  1. RLS filters should be consistently applied to:
    • All queries made through dashboard filters
    • Filter dropdown values
    • All data displayed in filter components
  2. Backend-driven RLS filters should persist regardless of dashboard activity time.

Actual Behavior

  1. RLS filters are being ignored in the dashboard filter section.
  2. After ~30 minutes of dashboard inactivity, the RLS filters are reset, allowing users to see and filter by values they shouldn't have access to.

How to Reproduce

  1. Set up backend-driven RLS filters for a specific role/user.
  2. Create a dashboard with filters that could be affected by the RLS rules.
  3. Log in as a user with that role.
  4. Observe that:
    • The filter section shows values that should be restricted by RLS.
    • After 30 minutes of inactivity, the RLS filters are no longer applied.

Additional Context

  • The RLS filters are backend-driven (not static).
  • This issue affects all filter types in the dashboard.
  • No error messages are shown when the RLS filters reset.
  • The 30-minute timeout suggests a possible session or cache expiration issue.

Impact

This is a critical security issue as it can lead to unauthorized data access when:

  1. Users can see filter values they shouldn't have access to.
  2. After the timeout period, all RLS restrictions are lifted.

Suggested Priority

High - Security issue with data exposure risk.

Screenshots/recordings

No response

Superset version

master / latest-dev

Python version

3.9

Node version

16

Browser

Chrome

Additional context

No response

Checklist

  • I have searched Superset docs and Slack and didn't find a solution to my problem.
  • I have searched the GitHub issue tracker and didn't find a similar bug report.
  • I have checked Superset's logs for errors and if I found a relevant Python stacktrace, I included it here as text in the "additional context" section.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions