The URL of the info page for an unknown dirnode should not grant authority to the containing directory #922
Labels
No Label
0.2.0
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.8.0
0.9.0
1.0.0
1.1.0
1.10.0
1.10.1
1.10.2
1.10a2
1.11.0
1.12.0
1.12.1
1.13.0
1.14.0
1.15.0
1.15.1
1.2.0
1.3.0
1.4.1
1.5.0
1.6.0
1.6.1
1.7.0
1.7.1
1.7β
1.8.0
1.8.1
1.8.2
1.8.3
1.8β
1.9.0
1.9.0-s3branch
1.9.0a1
1.9.0a2
1.9.0b1
1.9.1
1.9.2
1.9.2a1
LeastAuthority.com automation
blocker
cannot reproduce
cloud-branch
code
code-dirnodes
code-encoding
code-frontend
code-frontend-cli
code-frontend-ftp-sftp
code-frontend-magic-folder
code-frontend-web
code-mutable
code-network
code-nodeadmin
code-peerselection
code-storage
contrib
critical
defect
dev-infrastructure
documentation
duplicate
enhancement
fixed
invalid
major
minor
n/a
normal
operational
packaging
somebody else's problem
supercritical
task
trivial
unknown
was already fixed
website
wontfix
worksforme
No Milestone
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Reference: tahoe-lafs/trac-2024-07-25#922
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
For known cap types, the URL of the info page for a dirnode is specific to that directory entry, and does not grant any authority to the containing directory. This is as it should be.
For unknown caps, however, the URL of the info page does include the directory readcap (see the comment at source:src/allmydata/web/directory.py#737).
This grants excess authority -- a user might reasonably expect that info pages do not grant authority to read their containing directory, and it is surprising that this happens only for unknown nodes.
We could still display both the writecap and readcap URIs of the unknown dirnode, by stuffing both of them into the info page URL.
Note that this is quite difficult to reproduce at the moment because an UnknownNode is not allowed to be stored in a directory by a Tahoe 1.5 or earlier client. Tahoe 1.6 clients (if we finish and review #833 in time, which we're still on course to do) will allow storing unknown nodes. It's quite unlikely that they will be stored accidentally, though, because you will need to submit a JSON body containing an unknown cap (the operations that take a cap in the URL cannot be used for this).
I don't think this is sufficient reason to change the plan to allow adding unknown nodes to directories, because leakage of the directory readcap already happens in other (more likely) cases when you share a file URL that is relative to a directory.