Ticket #6007 (reopened defect)
Security compromise - Restricted svn areas accessible through changeset browsing
| Reported by: | dan@… | Owned by: | cboos |
|---|---|---|---|
| Priority: | high | Milestone: | 0.13 |
| Component: | version control/browser | Version: | 0.10.4 |
| Severity: | critical | Keywords: | browser security changeset |
| Cc: | dan@… |
Description
Here is my auth file:
[groups] dev = a, b [repos:/] @dev = rw [repos:/project] @dev = rw [repos:/secretproject] * = a = rw
The repository looks like this:
/
+- project
|
+- secretproject
|
+- src
|
+- secretfile.cpp
I checked in secretproject in changeset 10
User a has full access to everything as expected. User b when clicking on the Browse Source button does not see secretproject. This is also expected.
In the Timeline, user b can see that changeset 10 happened. When viewing changeset 10, user b sees the following:
Files: src/secretfile.cpp
I would expect user b to not see any of the files under the secretproject directory.
If user b clicks on this file, the change set IS displayed, and the following URL is what gets this user to the file:
https://server.mycompany.com/trac/tracproject/browser/src/secretfile.cpp?rev=10
Once I have clicked on this link and viewed the file at changeset 10, an unexpected thing happens when I click back to Browse Source. At this point, the compromised directory shows up and I can browse down the src tree:
/ +- project | +- src | +- secretfile.cpp


