- From: Yoav Weiss <yoav.weiss@shopify.com>
- Date: Mon, 24 Feb 2025 09:33:56 +0100
- To: HTTP Working Group <ietf-http-wg@w3.org>
- Cc: Patrick Meenan <patmeenan@gmail.com>, Anne van Kesteren <annevk@apple.com>, Steven Bingler <bingler@google.com>, רועי ברקאי <roybarkayyosef@gmail.com>, Watson Ladd <watsonbladd@gmail.com>, Yoav Weiss <yoav@yoav.ws>, Rory Hewitt <rory.hewitt@gmail.com>, Daniel Stenberg <daniel@haxx.se>, Colin Bendell <colin.bendell@shopify.com>
- Message-ID: <CALYmMaeOYYYTDoOT42SzAbqvhvmp+ZE_Crb=W69g+nU+0nSziw@mail.gmail.com>
I (belatedly) whipped together an I-D for this: https://yoavweiss.github.io/delete-cookie/draft-deletecookie-weiss-http.html I'd love y'all's thoughts (and issues). On Sun, Nov 3, 2024 at 6:41 PM Watson Ladd <watsonbladd@gmail.com> wrote: > Personally I don't think changes to the security model of cookies are a > good idea. This should just be a different way to name cookies that you > already could have set. > > On Sun, Nov 3, 2024 at 2:20 AM Patrick Meenan <patmeenan@gmail.com> wrote: > >> Specifically, the request was to use the same bounds already in place for >> set-cookie. Registerable domain 1 should not have access to registerable >> domain 2. >> >> Multiple domains within a given registerable domain where set-cookie can >> already access is the discussion point. >> >> On Sun, Nov 3, 2024 at 3:12 AM רועי ברקאי <roybarkayyosef@gmail.com> >> wrote: >> >>> So It shall be documented that domain1 should not have access to delete >>> domain2 . >>> >>> On Sun, Nov 3, 2024, 09:57 Yoav Weiss <yoav@yoav.ws> wrote: >>> >>>> >>>> >>>> On Sat, Nov 2, 2024, 21:41 רועי ברקאי <roybarkayyosef@gmail.com> wrote: >>>> >>>>> Hey Steven >>>>> >>>>> For special SaaS you as the provider don't know the coockie name, >>>>> same for wix for example. >>>>> >>>>> Secondly in regards to damain1.com on domain2.com the functionality >>>>> is desired by yoav , >>>>> >>>> >>>> It really isn't >>>> >>>> I wish to have a security feature for that to mitigate potential risk >>>>> >>>> >>>>> On Sat, Nov 2, 2024, 21:05 Steven Bingler <bingler@google.com> wrote: >>>>> >>>>>> > as a parent domain may...attempt to delete any other domain cookie >>>>>> >>>>>> This is already possible and is in fact nearly trivial if a human >>>>>> looks at their browser's developer tools to obtain the domain and path of >>>>>> the cookie they want to delete. No guessing required. >>>>>> >>>>>> > Also some enterprises hold domain1.com and domain2.com and might >>>>>> wish for domain1.com to delete domain2.com cookie this should be >>>>>> allowed with relevant security features >>>>>> >>>>>> It's not currently possible for one registrable domain to target and >>>>>> delete cookies of another registrable domain and I don't believe this >>>>>> proposal is advocating for that ability. >>>>>> >>>>>> - Steven >>>>>> >>>>>> >>>>>> On Fri, Nov 1, 2024 at 5:46 PM רועי ברקאי < >>>>>> roybarkayyosef@gmail.com> wrote: >>>>>> >>>>>>> well the thing is it does introduce new functionality as a parent >>>>>>> domain may/ any other domain attempt to delete any other domain cookie in >>>>>>> the current suggestion. >>>>>>> I believe the current edit rights are abusive and many supply chain >>>>>>> attack are carried with that. >>>>>>> by lowering the complexity the attack would be more common and the >>>>>>> options would larger for different domains. >>>>>>> Also some enterprises hold domain1.com and domain2.com and might >>>>>>> wish for domain1.com to delete domain2.com cookie this should be >>>>>>> allowed with relevant security features >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Fri, 1 Nov 2024 at 22:38, Steven Bingler <bingler@google.com> >>>>>>> wrote: >>>>>>> >>>>>>>> Hi All, >>>>>>>> >>>>>>>> Browsers will send any cookies that a given request has access to >>>>>>>> (i.e.: domain, path, secure-ness), meaning that any server that receives >>>>>>>> these cookies also already has write access to all those cookies. >>>>>>>> >>>>>>>> Since the purpose of this proposal is to target “cookie crust” then >>>>>>>> these are presumably cookies the server is receiving from the client. So, >>>>>>>> imo, it follows that a `Delete-Cookie: foo` request should delete any >>>>>>>> cookies that match the name “foo” regardless of their domain/path. Perhaps >>>>>>>> this could be made more precise and require both the cookie’s name and >>>>>>>> value to limit collateral damage? >>>>>>>> >>>>>>>> This isn’t dangerous as it doesn’t introduce new behavior, it’s >>>>>>>> just a convenience so the server doesn’t have to guess all applicable >>>>>>>> domain/path combinations (well, it could be a footgun). Any hosts worried >>>>>>>> about malicious sub/super-domains should consider the public suffix list as >>>>>>>> Yoav mentioned. >>>>>>>> >>>>>>>> But I question how useful this is and whether it’s worth the added >>>>>>>> complexity. 6265bis has a requirement that all UAs limit the longest >>>>>>>> specifiable expiry of a cookie to 400 days in the future. Chrome has had >>>>>>>> this behavior for a couple of years now meaning that any orphaned cookies >>>>>>>> with far-reaching expiry dates have since been deleted. It’s possible that >>>>>>>> some orphaned session cookies still exist but Chrome and other UAs have >>>>>>>> methods for deleting those as well. >>>>>>>> >>>>>>>> Given all that I believe it’s increasingly less likely for a server >>>>>>>> to see any “cookie cruft” after a ~year and so I’m leaning against the >>>>>>>> creation of a `Delete-Cookie` header given the complexity/usefulness >>>>>>>> tradeoff. >>>>>>>> >>>>>>>> - Steven >>>>>>>> >>>>>>>> On Thu, Oct 31, 2024 at 11:53 PM Yoav Weiss <yoav.weiss@shopify.com> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> It seems to me that it would make sense to mirror the domain-based >>>>>>>>> scope of cookies here. >>>>>>>>> That is - if you can get these cookies in requests to your origin, >>>>>>>>> you can also delete them. >>>>>>>>> >>>>>>>>> So, if b.example.com have set domain-wide cookies on example.com, >>>>>>>>> a.example.com would be able to delete them. But it wouldn't be >>>>>>>>> able to delete host-specific cookies for b.example.com. Does that >>>>>>>>> make sense? >>>>>>>>> >>>>>>>>> >>>>>>>>> On Thu, Oct 31, 2024 at 6:18 PM Rory Hewitt <rory.hewitt@gmail.com> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Yeah, the existing clear-site functionality has a big security >>>>>>>>>> risk and massive blast radius. >>>>>>>>>> >>>>>>>>>> My thinking on subdomains is that if you own " >>>>>>>>>> customer1.saasprovider.com" (and potentially own subdomains >>>>>>>>>> within that, e.g. "d999.customer1.saasprovider.com") then there >>>>>>>>>> is certainly the possibility that, for reasons fair or foul, your landlord >>>>>>>>>> ("saasprovider.com") may send "Delete-Cookie: >>>>>>>>>> abc;subDomains=true" and as a result *your* "abc" cookie in >>>>>>>>>> *your* "customer1.saasprovider.com" domain is deleted, along >>>>>>>>>> with the "abc" cookie in the "saasprovider.com" domain and maybe >>>>>>>>>> other subdomains. >>>>>>>>>> >>>>>>>>> >>>>>>>>> Arguably, saasprovider.com should be on the PSL >>>>>>>>> >>>>>>>>> >>>>>>>>>> >>>>>>>>>> But... >>>>>>>>>> >>>>>>>>>> Presumably your landlord isn't malicious, so either this scenario >>>>>>>>>> would happen because they're hacked or they make a stupid mistake. These >>>>>>>>>> things obviously do happen, but is that reason enough to not allow >>>>>>>>>> otherwise useful functionality. We're talking about cookies being deleted, >>>>>>>>>> which is a low-ish risk, no? >>>>>>>>>> >>>>>>>>>> We could, of course limit this to certain cookies - perhaps no >>>>>>>>>> "Sec-*" cookies or those without the "Secure" attribute or to those which >>>>>>>>>> have a domain implicitly (i.e. it wasn't included when the original >>>>>>>>>> Set-Cookie header was sent to create it.) >>>>>>>>>> >>>>>>>>>> To me, the benefits of allowing this subdomain functionality >>>>>>>>>> outweigh the drawbacks. But that's just me. >>>>>>>>>> >>>>>>>>>> On Thu, Oct 31, 2024 at 9:38 AM רועי ברקאי < >>>>>>>>>> roybarkayyosef@gmail.com> wrote: >>>>>>>>>> >>>>>>>>>>> A better mechanism for the clear-site-data would be >>>>>>>>>>> to >>>>>>>>>>> 1.delete only subdomains cookies that also hold that flag >>>>>>>>>>> (allow-parent domain-deletion=true) >>>>>>>>>>> 2.where the subdomain cookie has a list of domains allowed to >>>>>>>>>>> delete this cookie. >>>>>>>>>>> 3.a request should be sent to the subdomain web server to >>>>>>>>>>> approve that in which the approval logic would be on the subdomain server >>>>>>>>>>> side. >>>>>>>>>>> >>>>>>>>>>> The same 3 suggested solutions are also security architectures >>>>>>>>>>> for the feature you suggested (Yoav, Rory). >>>>>>>>>>> That way you may add a parent to subdomain deletion without the >>>>>>>>>>> risk of supply chain attack as that behavior is implemented by the >>>>>>>>>>> subdomain. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Thu, 31 Oct 2024 at 18:18, רועי ברקאי < >>>>>>>>>>> roybarkayyosef@gmail.com> wrote: >>>>>>>>>>> >>>>>>>>>>>> Dear Patrick, >>>>>>>>>>>> >>>>>>>>>>>> You are correct that risk is also available in that sense as >>>>>>>>>>>> well. >>>>>>>>>>>> But two wrongs don't make a right. Do you believe this >>>>>>>>>>>> supply chain risk is irrelevent? >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Thu, 31 Oct 2024 at 18:13, Patrick Meenan < >>>>>>>>>>>> patmeenan@gmail.com> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> I agree in principle to subdomains-only, but wouldn't the >>>>>>>>>>>>> risks called-out also be a problem with clear-site-data which wipes out all >>>>>>>>>>>>> cookies (including parent and horizontally to peers)? >>>>>>>>>>>>> >>>>>>>>>>>>> On Thu, Oct 31, 2024 at 12:02 PM רועי ברקאי < >>>>>>>>>>>>> roybarkayyosef@gmail.com> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Rory please read my response. >>>>>>>>>>>>>> >>>>>>>>>>>>>> I agree with Rorry on most of the solution. >>>>>>>>>>>>>> I believe an issue may be rissen when an authority >>>>>>>>>>>>>> example.com may delete a cookie for a.example.com may have >>>>>>>>>>>>>> supply chain attack vector possibilities therefore im against that solution. >>>>>>>>>>>>>> As a tennant of a domain (owner of a subdomain) I wouldnt >>>>>>>>>>>>>> want my landlord ie the domain the company I buy services from to delete >>>>>>>>>>>>>> the cookies of my users. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Take in mind that many subdomains that uses SAAS have their >>>>>>>>>>>>>> scripts run as well from the parent domain. therefore a supply chain/DOS >>>>>>>>>>>>>> attack may take place via removing access to users by deleting their >>>>>>>>>>>>>> cookies. >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Thu, 31 Oct 2024 at 17:45, Rory Hewitt < >>>>>>>>>>>>>> rory.hewitt@gmail.com> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> Since the "Delete-Cookie: abc, def" is a response header, >>>>>>>>>>>>>>> then if sent from a server at e.g. bob.example.com, I would >>>>>>>>>>>>>>> expect it to only delete the "abc" and "def" cookies in the >>>>>>>>>>>>>>> bob.example.com subdomain. Allowing even a higher iste >>>>>>>>>>>>>>> (i.e. clearing the "abc" and "def" cookies at the >>>>>>>>>>>>>>> example.com root domain seems very dangerous. In a >>>>>>>>>>>>>>> federated world, we have things like " >>>>>>>>>>>>>>> customer1.saasprovider.com" who is completely unrelated to " >>>>>>>>>>>>>>> customer2.saasprovider.com", and I wouldn't want either of >>>>>>>>>>>>>>> them to to be able to delete cookies at the " >>>>>>>>>>>>>>> saasprovider.com" root domain, since they could have been >>>>>>>>>>>>>>> placed there by either customer. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> However, allowing "Delete-Cookie: abc, def" sent from >>>>>>>>>>>>>>> bob.example.com to be able to delete those cookies from >>>>>>>>>>>>>>> both bob-example.com and all *.bob.example.com subdomains >>>>>>>>>>>>>>> seems more reasonable, IF one assumes that the >>>>>>>>>>>>>>> bob.example.com server in some way 'controls' its >>>>>>>>>>>>>>> subdomains. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> In short, the only thing that should be able to delete >>>>>>>>>>>>>>> cookies from a domain is a Delete-Cookie header sent from that domain or a >>>>>>>>>>>>>>> 'higher' (closer to root) domain. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Of course, the header could be enhanced in a similar way to >>>>>>>>>>>>>>> HSTS: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> "Delete-Cookie: abc, def;subDomains. ghi" >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> indicating that (if sent from bob.example.com), the >>>>>>>>>>>>>>> following cookies should be deleted: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> * "abc" if it has a Domain of bob.example.com domain >>>>>>>>>>>>>>> * "def" if it has a Domain of bob.example.com domain or >>>>>>>>>>>>>>> any subdomains of bob.example.com >>>>>>>>>>>>>>> * "ghi" if it has a Domain of bob.example.com domain >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> But that's getting into more complexity that maybe isn't >>>>>>>>>>>>>>> necessary. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Thu, Oct 31, 2024 at 4:55 AM Patrick Meenan < >>>>>>>>>>>>>>> patmeenan@gmail.com> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> I'm assuming the scope would be similar to clear-site-data: >>>>>>>>>>>>>>>> "cookies" where, at least in w3c land, it clears across all of the >>>>>>>>>>>>>>>> subdomains in the "registered domain" ( >>>>>>>>>>>>>>>> https://www.w3.org/TR/clear-site-data/#clear-cookies), >>>>>>>>>>>>>>>> just with the ability to target a specific name instead of nuking >>>>>>>>>>>>>>>> everything. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Should it be limited to the direct hierarchy or should it >>>>>>>>>>>>>>>> also impact same-level origins like clear-site-data does? i.e. >>>>>>>>>>>>>>>> bob.example.com clears from bob.example.com and example.com >>>>>>>>>>>>>>>> but should it be able to target deleting from >>>>>>>>>>>>>>>> alice.example.com? >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Thu, Oct 31, 2024 at 6:57 AM Yoav Weiss < >>>>>>>>>>>>>>>> yoav.weiss@shopify.com> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On Thu, Oct 31, 2024 at 11:49 AM רועי ברקאי < >>>>>>>>>>>>>>>>> roybarkayyosef@gmail.com> wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> As a first party coockie holder you may set an expiration >>>>>>>>>>>>>>>>>> date on the coockie you have created. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Sure, but since setting an expiration date requires >>>>>>>>>>>>>>>>> predicting the future, we need a way to correct past predictions that >>>>>>>>>>>>>>>>> didn't quite work out. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Allowing cross site coockie deletion would enable issues >>>>>>>>>>>>>>>>>> for users as an attacker may remove all mostly used coockie names >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Can you expand on that? I wouldn't expect a server to be >>>>>>>>>>>>>>>>> able to delete cookies that it can't receive, if that makes sense. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> On Thu, Oct 31, 2024, 12:39 Yoav Weiss < >>>>>>>>>>>>>>>>>> yoav.weiss@shopify.com> wrote: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> On Thu, Oct 31, 2024 at 11:15 AM Daniel Stenberg < >>>>>>>>>>>>>>>>>>> daniel@haxx.se> wrote: >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> On Thu, 31 Oct 2024, Yoav Weiss wrote: >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> > `Delete-Cookie: name1, name2` as an example syntax, >>>>>>>>>>>>>>>>>>>> which seems simple >>>>>>>>>>>>>>>>>>>> > enough and can get the job done. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Since cookies are hierchical, it should probably be >>>>>>>>>>>>>>>>>>>> noted that this list >>>>>>>>>>>>>>>>>>>> identifying 'name1' and 'name2' can in fact match >>>>>>>>>>>>>>>>>>>> numerous cookies (for >>>>>>>>>>>>>>>>>>>> different paths), not just two and there is no way for >>>>>>>>>>>>>>>>>>>> this syntax to delete >>>>>>>>>>>>>>>>>>>> just a subset of them. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> That's true. At the same time, the use case at hand is >>>>>>>>>>>>>>>>>>> one where we want to delete cookies when we have no knowledge of their path. >>>>>>>>>>>>>>>>>>> So I believe it's fine to delete all matching cookies. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> +Colin Bendell <colin.bendell@shopify.com> to keep me >>>>>>>>>>>>>>>>>>> honest, as he's closer to this work. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> / daniel.haxx.se >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>> Rory Hewitt >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> https://www.linkedin.com/in/roryhewitt >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Rory Hewitt >>>>>>>>>> >>>>>>>>>> https://www.linkedin.com/in/roryhewitt >>>>>>>>>> >>>>>>>>> > > -- > Astra mortemque praestare gradatim >
Received on Monday, 24 February 2025 08:34:12 UTC