Skip to content

Fix tenant leak in CuratorPanel search (3.x backport) - #714

Merged
awcodes merged 1 commit into
3.xfrom
fix/3x-tenant-search-leak
Jun 30, 2026
Merged

Fix tenant leak in CuratorPanel search (3.x backport)#714
awcodes merged 1 commit into
3.xfrom
fix/3x-tenant-search-leak

Conversation

@awcodes

@awcodes awcodes commented Jun 30, 2026

Copy link
Copy Markdown
Owner

Backport of the tenant search leak fix already shipped in 4.1.1 and 5.1.1.

Problem

CuratorPanel::updatedSearch() built its query without the tenant ownership scope that getFiles() applies, so in multitenant panels an authenticated user could retrieve media metadata belonging to other tenants via the picker search (CWE-284). The ungrouped orWhere chain also broke out of the isLimitedToDirectory filter.

The vulnerability dates back to v3.2.4 (when multitenancy support was added to the picker).

Fix

Apply the same tenant scope used by getFiles() and wrap the search terms in a nested group so they can't escape the directory/tenant constraints. Identical in behavior to the merged 4.x/5.x fix.

Note on tests

The 3.x branch has no Livewire/feature test infrastructure or tenancy fixtures (unlike 4.x/5.x), so this carries no new automated test. The change is syntax-checked and mirrors the regression-tested fix on the newer branches. Happy to build out the test harness if we want coverage here.

Security release to follow.

Backport of the 4.x/5.x fix. updatedSearch() built its query without the
tenant ownership scope applied in getFiles(), allowing an authenticated
panel user to retrieve media metadata belonging to other tenants via the
picker search (CWE-284). The ungrouped orWhere chain also broke out of
the isLimitedToDirectory filter.

Apply the tenant scope and group the search terms so they cannot escape
the directory/tenant constraints.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@awcodes
awcodes merged commit fdf36ff into 3.x Jun 30, 2026
1 of 4 checks passed
@awcodes
awcodes deleted the fix/3x-tenant-search-leak branch June 30, 2026 16:10
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.

1 participant