You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Lock root contains the parent folder name: "public.php/webdav/abc" which leaks the parent folder names and itself isn't even a valid folder since there is no "abc" in "test".
The used storage is just Home, so no URL rewriting to be done on storage layer.
Idea to explore: make the FileLocksBackend aware of whether we are on a public endpoint or not.
We might even need to expose the original share info there to be able to verify whether the lock URL is actually inside the share or outside. If outside, we set the absoluteDavUri to "/".
The $view is only available inside the viewCallback() which initializes the ObjectTree->init().
But the lock backend is receiving a non-initialized tree object. We currently seem to assume that the tree is properly initialized once the locks are queried.
For public link shares, the attached $view is the one of the share owner and its path is set to the share root. We could read it using $view->getFakeRoot() or $view->getRelativePath() to find out the subpath relative to the public webdav root.
Steps
Expected result
Lock root is always "public.php/webdav/"
Actual result
Lock root contains the parent folder name: "public.php/webdav/abc" which leaks the parent folder names and itself isn't even a valid folder since there is no "abc" in "test".
Versions
Observed on master while fixing #34224
Making that p2 as this would introduce a security issue about information disclosure.
@DeepDiver1975 @davitol FYI
The text was updated successfully, but these errors were encountered: