[cosmo-dev] options to fix security hole
Mimi Yin
mimi at osafoundation.org
Thu Feb 21 07:31:28 PST 2008
Hi Randy,
Thanks for re-explaining some of this stuff to me...more in-line below:
On Feb 20, 2008, at 8:28 AM, Randy Letness wrote:
> Mimi Yin wrote:
>> Here's a much more complicated solution...
>>
>> + When a collection is deleted on Chandler Hub or unpublished from
>> Chandler Desktop, only delete items that have *not* been manually
>> added to other collections
>
> This is how it works today on the server. If an item was added to
> another collection, then that item will not be removed. An item is
> only deleted if it only exists in a single collection, and that
> collection was deleted, or if it only exists in a single collection
> and the item was removed from that collection.
Risking tedium in order to be exceedingly clear, in Chandler Desktop,
there is a distinction between an item that exists in multiple
collections and an item that has been manually (via Drag and Drop)
added to multiple collections. This is because the out-of-the-box
collections (Dashboard, In and Out) automatically collect items based
on certain 'rules'.
So, the desired behavior is items should only be spared deletion only
if they have been *manually* added to other collections.
Currently, can the server tell the difference between items that
belong in multiple collections by virtue of rules versus manual drag
and drop?
>
>
>> + However, *do* revoke all tickets associated with that collection
>> which results in the following:
>> - (T1) Users who *only* have access to items in the deleted/
>> unpublished collection by virtue of that collection will lose that
>> access - Do the items get deleted for these users?
>
> These users will lose access to the items if they are accessed
> through the deleted collection because the ticket is no longer
> valid and the collection doesn't exist. If the items were added to
> other collections, the items are still present, but require a
> different ticket/user to access them.
Got it.
>
>
>> - Any users who are 'downstream' of the T1 users also lose access
>> to items in the deleted / unpublished collection - Is this possible?
>>
>
> This is possible, and is the complicated solution I described. The
> server would basically have to store a "chain" of tickets each time
> an item is added to a collection. For example.
> 1. User A publishes item X in collection 1, shares with rw ticket
> T1 (no ticket stored with this)
> 2. User B adds item X to collection 2 using rw ticket T1, shares
> with rw ticket T2 (T1 stored with this)
> 3. User C adds item X to collection 3 using rw ticket T2 (T1, and
> T2 strored with this)
> 4. etc/etc
>
> Now if User A or User B unpublishes their collection, User C would
> lose access to X because in order for User C to have access to X,
> both T1 and T2 must be valid.
>
> This is a lot more work than was planned (implementation, testing,
> migration), so we need to decide if its worth supporting. One
> option is to do the basic security fixes now(fix the know the uuid/
> gain read-write access problem), and implement this later so that
> we can move on to other things. Or we could spend time on this
> now, but there is still the case of existing items that were added
> to multiple collections. These items don't have any "ticket chain"
> and can't really be controlled by revoking a ticket.
I think it's totally reasonable to defer fixing the 'revoke access'
problem until later. Basically for now, if you unpublish a
collection, there's a chance that you will continue sharing some of
the items in that collection with others, even though you don't
actually share any collections with those subscribers. Is that correct?
Should I log a separate bug to keep track of this issue for later?
>
>> *Question:* What if you gained access to the same items by virtue
>> of a different collection? Are there any situations where you
>> might be able to hold on to your access? Here's an example:
>>
>> 1. User A publishes a collection and shares it with Users B and C
>> with Ticket A-B.
>>
>> 2. User B adds some items from that collection to a different
>> collection and shares that second collection with User C with
>> Ticket B-C.
>>
>> 3. User B unpublishes the 2nd collection, thereby revoking all
>> Ticket B-Cs.
>>
>> Can Users A, B and C still see the items that User B manually
>> added from the 1st collection to the 2nd collection by virtue of
>> Ticket A-B?
>
> Yes because the item still exists in the first collection. Now any
> item that User B adds from the 2nd collection to the 1st
> collection using Ticket B-C would be removed.
Uh-oh, I don't understand this last sentence. Perhaps it's best to
ping you on IRC.
>
> -Randy
> _______________________________________________
> cosmo-dev mailing list
> cosmo-dev at lists.osafoundation.org
> http://lists.osafoundation.org/mailman/listinfo/cosmo-dev
More information about the cosmo-dev
mailing list