Skip to content

Verify fix for Guest Token IDOR vulnerability - #1

Draft
google-labs-jules[bot] wants to merge 6 commits into
masterfrom
verify-guest-token-idor-fix-7429293929104773877
Draft

google-labs-jules[bot] wants to merge 6 commits into
masterfrom
verify-guest-token-idor-fix-7429293929104773877

Conversation

@google-labs-jules

Copy link
Copy Markdown

The reported IDOR vulnerability involving guest tokens accessing charts outside of their authorized dashboard has been verified as fixed.

I confirmed the fix by:

  1. Locating the relevant test case test_raise_for_access__chart_not_on_dashboard in tests/integration_tests/security/guest_token_security_tests.py.
  2. Executing this test (and the full test suite in that file) and confirming it passes. The test specifically mocks a scenario where a guest user with access to one dashboard tries to access a chart from another dashboard, and asserts that a SupersetSecurityException is raised.
  3. Identifying the Pull Request that enabled this security check for guest users: fix: Allow embedded guest user datasource access with dashboard context apache/superset#25081 "fix: Allow embedded guest user datasource access with dashboard context".
  4. Noting that the underlying security logic was introduced in PR fix: Dashboard aware RBAC dataset permission apache/superset#24789 "fix: Dashboard aware RBAC dataset permission".

No code changes were required as the fix is already present in the codebase. This submission documents the verification process.


PR created automatically by Jules for task 7429293929104773877 started by @sha174n

This submission confirms that the Insecure Direct Object Reference (IDOR) vulnerability
in guest token chart access has been resolved.

- Verified that `tests/integration_tests/security/guest_token_security_tests.py` exists
  and contains `test_raise_for_access__chart_not_on_dashboard`.
- Ran the test successfully, confirming that attempting to access a chart not associated
  with the authorized dashboard raises a `SupersetSecurityException`.
- Identified PR apache#25081 as the one that enabled the secure logic for guest/embedded users.
- Confirmed that PR apache#24789 introduced the underlying security logic (Dashboard aware RBAC).

The vulnerability report is valid for older versions, but the issue is fixed in recent versions.
@google-labs-jules

Copy link
Copy Markdown
Author

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

- Confirmed that the IDOR vulnerability allowing guest tokens to access
  charts from unauthorized dashboards is fixed.
- The fix was introduced in PR apache#25081 and released in Apache Superset 3.0.0.
- Verified by running existing integration tests in `tests/integration_tests/security/guest_token_security_tests.py`
  which explicitly check for this unauthorized access scenario and raise a `SupersetSecurityException`.
- No code changes were needed as the fix is already present in the codebase.
Confirmed that the vulnerability is fixed and identified the specific versions
and Pull Requests that addressed different aspects of the issue:

- **Strict IDOR (Accessing unauthorized charts):**
  - **Fixed in Version:** 3.0.0
  - **PR:** apache#25081 ("fix: Allow embedded guest user datasource access with dashboard context")
  - **Mechanism:** `raise_for_access` now validates that the chart belongs to the dashboard.

- **Payload Tampering (Modifying metrics/columns):**
  - **Fixed in Version:** 4.0.0
  - **PR:** apache#27484 ("fix: check if guest user modified query")
  - **Mechanism:** Introduced `query_context_modified` check.

- **Information Disclosure (Schema Leaks):**
  - **Fixed in Version:** 5.0.0
  - **PR:** apache#30858 ("fix(chart data): removing query from /chart/data payload when accessing as guest user")

Verified by running existing integration tests in `tests/integration_tests/security/guest_token_security_tests.py`
and temporarily adding a test case to simulate payload tampering, which successfully triggered a security exception.
- Confirmed strict IDOR fix (accessing unauthorized charts) was in 3.0.0 (PR apache#25081).
- Confirmed payload tampering fix (modifying metrics) was in 4.0.0 (PR apache#27484).
- Confirmed schema leak fix was in 5.0.0 (PR apache#30858).
- Verified via integration tests.
This commit confirms the fix for the reported Guest Token IDOR vulnerability
and payload tampering issues.

Findings:
- **Strict IDOR (Accessing unauthorized charts):**
  - **Fixed in Version:** 3.0.0
  - **PR:** apache#25081
  - **Verification:** Verified with standalone PoC `poc_idor.py`. Attempting to
    access a chart belonging to Dashboard B while authorized for Dashboard A
    raises a security exception.

- **Payload Tampering (Modifying metrics/columns):**
  - **Fixed in Version:** 4.0.0
  - **PR:** apache#27484
  - **Verification:** Verified with standalone PoC `poc_idor.py`. Attempting to
    modify metrics for an authorized chart raises a security exception.

- **Schema Leak:**
  - **Fixed in Version:** 5.0.0
  - **PR:** apache#30858

Verification method:
- Created and executed a standalone Proof-of-Concept script (`poc_idor.py`)
  that bootstraps the Superset app context, creates temporary dashboards/charts,
  issues a guest token, and attempts the exploits. Both exploits were blocked.
- Ran existing integration tests in `tests/integration_tests/security/guest_token_security_tests.py`.

No code changes required as fixes are already present.
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

Successfully merging this pull request may close these issues.

0 participants