[Sum of Talk with Randy] Re: [cosmo-dev] options to fix security hole
Mimi Yin
mimi at osafoundation.org
Thu Feb 21 11:02:33 PST 2008
After chatting with Randy on the phone, here is my understanding of
how the security hole is going to be patched :)
Today, the server is happy to assign read-only *and* read-write
tickets to new collections, even if the items in those collections
already exist on the server and the user publishing this new
collection is neither the original 'creator' of the items; nor
received the items via a read-write share. In other words, the user
got a hold of the items via a read-only share and by virtue of re-
publishiing them in a different collection, is able to gain read-write.
In the new world, the server will only assign read-write and read-
only tickets to a new collection if ALL the items in the collection
are either entirely new (do not already exist on the server and
therefore were created by the publisher) OR already come with read-
write tickets.
This involves changes to both the server *and* the Desktop client
which will now have to understand about individual items inheriting
tickets from the collections they are a member of.
What is the short-term fall out of this change?
1. You can't put items you received via Email on the Server.
In the new world, items you receive via Email will fail to be added
to the server if they are included in collections that are on the
server. This is because emailed items don't include a read-write ticket.
Will log bug.
2. You might experience some Phantom Sharing.
We will continue to have Phantom Sharing where users who have not
established explicit sharing relationships via shared collections
will be mysteriously editing each other's items because they both
came by read-write tickets to those items. How could this happen?
- User-A publish Collection-A and shares it with RW Ticket-A with
User B.
- User-B adds items from Collection-A into Collection-B and shares it
with RW Ticket-B with User C.
- Users A and C are sharing items by virtue of User B, but A and C
never established an explicit sharing relationship and don't know
each other. (On the other hand, User A *could* just be another person
User B shared Collection-B with. User C has no way of knowing who
User B shared Collection B with.)
A weirder scenario might be:
- User-A publish Collection-A and shares it with RW Ticket-A with
User B.
- User-B adds items from Collection-A into Collection-B and shares it
with RW Ticket-B with User C.
- User-C adds Collection-A items from Collection-B to their own
Collection-C and publishes Collection-C to the server.
- User B unpublishes Collection-B, but the items that were also in
Collections-A and C don't get removed from the server.
- User-C and User-A are *still* sharing some items and User-C
occasionally sees that someone named User-A is editing items in
Collection-C. This might be odd if User-C knows they haven't shared
Collection-C with anyone else and is no longer sharing Collection-B
with User-B.
Will log bug.
3. You won't be able to add read-only items to other collections on
the server.
Today, the Desktop allows you to add items from read-only collections
to other collections, but won't let you edit those items. The Server
will also happily accept read-only items that show up in other
collections. Once the Server has done that, the web UI allows you to
edit those read-only items because the Server has no idea that
they're read-only, even though the Desktop does.
In the new world, this will no longer work. The Server is going to
reject read-only items that show up in other collections. Ultimately,
we would like to make this work, but for now, we're just going to
keep track of it as an issue.
Will log bug.
The 3 issues above I think are things we can 'live with' in the short-
term as we test out Randy's rather significant changes and
improvements to what we have today. I think they are mostly edge
cases, but we should address them sooner rather than later if they
turn out to be more common than we expect.
The only thing I think we might want to fix in parallel with Randy's
changes is to amend EIM so that we distinguish between item that have
been manually (via Drag and Drop) added to another collection versus
items that were automatically picked up by a rule and added to one of
the Out of the Box collections.
I think this is important because when users delete collections from
the Server, the Server is only going to delete items that *only*
exist in that one collection. This will be the surest way for users
to 'revoke access' to items they no longer want in circulation.
However, given that all messages are automatically added to the In/
Out collections and all collections (unless otherwise specified) have
all their items added to the Dashboard collection, assuming the user
has published their Out of the Box collections to the Server,
deleting collections from the Server won't actually delete their
member items off the Server (even though locally, the Desktop will
know to delete them from the Out of the Box collections).
Basically, we might end up with entire collections' worth of
'homeless' items that belong in no collections, but exist on the
Server anyway. Does anyone else have thoughts about whether this is
something we should fix in the short-term?
Will log bug.
Would it be productive to have a meeting with Randy and Grant to
review these issues on the phone?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osafoundation.org/pipermail/cosmo-dev/attachments/20080221/036a7a1a/attachment.html
More information about the cosmo-dev
mailing list