--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CANpA1Z2kJG8HBW6ZO272jEb4kXHGDMP9s_w%3D47G5QNjw1dVU2Q%40mail.gmail.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CAFwScO_kHt-0ZCPoMHgriNP_rV5ZE9VwP9_iv%2B7WDNGX2rmN%2BA%40mail.gmail.com.
As William said, basically just use some kind of map and designate
resources by name.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CACTLOFpcAzDNw2nJjsZ3qFrRpD_t176h-gBHdHWm%2BHSYFDiidA%40mail.gmail.com.
Please give an example.--------------
Alan KarpOn Tue, Jul 21, 2026 at 9:52 PM David Nicol <david...@gmail.com> wrote:Absolutely not, as counterexamples are easy to describe.On Tue, Jul 21, 2026 at 7:26 PM Alan Karp <alan...@gmail.com> wrote:Is there a proof that it's impossible to express a confused deputy vulnerability in a capability system?(Asking for a colleague)--------------
Alan Karp
Short of getting rid of all forms of equality, how is one to prevent
designation by name? There is no prevention, just a convention which
shuns that.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CACTLOFqotB-%3DtuNiyqH0NN8p3u0NDokHzUJ9QLFURdgrNDU-%3DA%40mail.gmail.com.
The claim that is asked to be proven is "it's impossible to express a confused deputy vulnerability in a capability system."
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CAFwScO8X%3Dtk1JyraPPyRspc6LHzv2%2Bf57gP2iGO2AEFZcaq2cA%40mail.gmail.com.
On Wed, Jul 22, 2026 at 7:56 PM David Nicol <david...@gmail.com> wrote:The claim that is asked to be proven is "it's impossible to express a confused deputy vulnerability in a capability system."My bad. I stated the condition poorly. It should have been something like, "it's impossible to express a confused deputy vulnerability in a system that only allows designation by capability."
So this might not be considered confused deputy. Using the key analogy, you might give a ring full of keys to a deputy, and a bunch of doors. Then you tell the deputy not to unlock a door with the hungry tiger behind it, without any designations, no identification or labeling of any door with a hungry tiger behind it. I think the only way for the deputy to remain non-confused and alive is by not opening any doors, leaving the keys unusable. So a capability system without anyone wanting to use it, unless a resource is provided to feed the tiger. Okay, someone can put this in fancy terminology.
There really are very few systems able to isolate data channels from
capability channels to such a degree as to achieve this.
The only ones I know of being based upon concurrent separation logic
and running in theorem provers, not systems people run programs on.
Do any systems used in practice achieve the ability to forbid
designation by name via isolation of data channels from side-effects
or other means?
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CACTLOFoT_cLHhABdUo7D%3D-wJoNjcmiNX0W6%3Dt%2BjOwC4u8mggHA%40mail.gmail.com.
allows designation by capability."Separate from the naming issues, problems can arise from correct designation and delegation of too large a grain of authority.
Without getting formal about it, it seems that the power to deputize creates the power to create confusable deputies. Is Godel's incompleteness theorem a confused deputy vulnerability?
So this might not be considered confused deputy. Using the key analogy, you might give a ring full of keys to a deputy, and a bunch of doors. Then you tell the deputy not to unlock a door with the hungry tiger behind it, without any designations, no identification or labeling of any door with a hungry tiger behind it. I think the only way for the deputy to remain non-confused and alive is by not opening any doors, leaving the keys unusable. So a capability system without anyone wanting to use it, unless a resource is provided to feed the tiger. Okay, someone can put this in fancy terminology.
The other thing I should note is that I don't know how effective such
a thing would be in practice,
the mingling of data and authority is pretty strong. It is entirely
possible that it also prevents all useful
computation. Anyhow my point is what system achieves this, how does it
make it impossible to express?
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CACTLOFpDLYDf%3DFMMD7BP1wOhfCAarfMrcMEjgC1cRLiHx8goDQ%40mail.gmail.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CACTLOFpHSrGM9SQKN0B0%3DurKvT5Rb8Eq%3D7p_6sAJ6EnNW-gQoA%40mail.gmail.com.
How does one enforce this? If your system is entirely devoid of all
forms of data and can only invoke capabilities for their effects it
isn't useful.
If you're using certificates, rather than a shared map structure maybe
the confused deputy involves credential sharing. These are logical
errors as a consequence of
using the system wrong. They cannot be solved by describing the rules
unless those rules can be actually enforced.
One of the important distinctions when comparing these kinds of
systems should be, how difficult is it to get the rules wrong.
How much effort must one put in to do the wrong thing, compared to how
easy it is to do the right thing.
In the capability model it's generally been much easier to just do the
right thing, than to build a contraption which does
the wrong thing. I have zero intuition on where that balance sits on
certificate systems because I care little about them.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CACTLOFrPHHMbWksLoWyAiFan05mrdEdmxOwX%3DqGQQT1bEw-nKA%40mail.gmail.com.
Yes, but granting too much authority is a different problem.
Is it? Is this not the "principle of least authority" mailing list?
Does not "confused deputy vulnerability" arise from "granting too much authority" ?
Thanks for letting me be part of this discussion, I'm going to try to shut up and lurk now.
On Thu, Jul 23, 2026 at 11:00 AM David Nicol <david...@gmail.com> wrote:
>
>
>
> On Thu, Jul 23, 2026 at 12:13 PM Alan Karp <alan...@gmail.com> wrote:
>>
>>
>>
>> Yes, but granting too much authority is a different problem.
>
>
>
> Is it? Is this not the "principle of least authority" mailing list?
>
> Does not "confused deputy vulnerability" arise from "granting too much authority" ?
>
> Thanks for letting me be part of this discussion, I'm going to try to shut up and lurk now.
>
This is exactly the point I was trying to make in the comparing
credential sharing in certificate systems to
granting too much authority in capability systems:
If we take a really dumb example of the `store capabilities in a map`,
we're basically saying
```
map.insert("bob.secret", "...");
map.insert("alice.secret", "...")
alice.grant(map);
bob.grant(map);
alice.tell("I put a secret in the map alice.secret");
bob.tell("I put a secret in the map bob.secret");
// Expect alice and bob not to check for files with the others name.
```
>
> --
> "The profit motive is often in conflict with the aims of art." -- Ursula K. Le Guin
>
> --
> You received this message because you are subscribed to the Google Groups "cap-talk" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
> To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CAFwScO8YcW856qr%2Bo2e_rrdZYs8_3OLePJcGL79nNV-WHF4vrg%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CACTLOFq%2BoTd5K7EzQRNJDqoQqa8TMxfQMFaCygrDw2ad84yeFA%40mail.gmail.com.
Perhaps instead of "granting too much authority", we could replace that with
"unintended sharing of excess authority", since granting pretty much
implies authorization?
It isn't clear to me in this case whether you are talking about a
general purpose system, or a complete system with a fixed set of
capabilities.
I agree that you can design a complete system, with a fixed set of
capabilities where there is no confused deputy.
The problems I think we've been discussing are whether you can provide
a base capability system, onto which you deploy programs and processes
composed of capabilities written by a third party,
where the base system somehow keeps the 3rd party capabilities from
introducing confused deputies.
I'm of the there is nothing the base system can provide which allows
it to be used as a general purpose system which doesn't also open
itself up to being misused by introducing
a confused deputy via a 3rd party downstream programmer writing some
nonsense (This doesn't have to be any of the parties involved in the
usage of the system).
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CACTLOFqz7jz4%2B0AnXjjmZoG0Hd%3DH%2BQM%2BHUnpZc%2BFqR4N6-UOyw%40mail.gmail.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CACTLOFpBMzNw9mZWM2X7%2Bi66o4Fn05koR-KchesNp-N1V6k0Bg%40mail.gmail.com.

A lot to comment on, but I think I can summarize by saying that you can avoid the confused deputy vulnerability by only allowing a resource to be designated by a capability to it. It doesn't matter when, where, or how the capability was created. If you want to use that resource, you must designate it with one of the capabilities you hold.Now back to my original question. Is there a proof?--------------
Alan Karp
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CAFwScO-TpbtOKGfodWhssx2V7MhNKi%2BaTSJ6tarR0u%2BY8tbK1g%40mail.gmail.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CACTLOFrvfWF0e2ibDbHGo9oyr6ZH%3DioSwjHZi9o5Bf-iCEUixQ%40mail.gmail.com.
I feel like that is a universal cap "reductio" concern: One has to ask, how does any object (eg deputy) get instantiated, specifically where do its own caps come from?If you ignore that and assume they are safe/valid, and if the requirement is just that the deputy only use the luser's caps, that seems to me to boil down to plain old code inspection - that no silly mistakes exist in the deputy's code.
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CAJ7XQb68Vcd2t2amZ8XWUn_PCm1PEBW7nSQJeGLPu%3DRvhGqeuA%40mail.gmail.com.
Combining designation with authorization allows the deputy to use its permissions for resources the deputy designates and its client's permissions for the resources the client designates. My intuition says that's sufficient to enable you to code a deputy that will not use its permissions for a resource designated by one of its clients. My colleague is asking for something more formal.
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CAFwScO_9HXFjBnp9Uwi5Hh6HdqFe3WkKmqfRmOe2Y8UxJgHduA%40mail.gmail.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CACTLOFpXcMorvR1qxB5fH0s4LeZnU7z5_T%2BRbJwyFeGGwMftBw%40mail.gmail.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CACTLOFram6RE-hAFA0vAu4zcu_X-f-kUfVHZNNN%2BRQJQh2MV4g%40mail.gmail.com.
Is there a proof that it's impossible to express a confused deputy vulnerability in a capability system?(Asking for a colleague)
--------------
Alan Karp
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CANpA1Z2kJG8HBW6ZO272jEb4kXHGDMP9s_w%3D47G5QNjw1dVU2Q%40mail.gmail.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CAAP%3D3QMd%2Bqjy09AZtnJn%3DbHpcbH0h8L8erp0kcB2m5Az4qAR_Q%40mail.gmail.com.
I'm interested in the counterexample, but I don't understand why either confinement or side channels are relevant to confused deputy.
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CAAP%3D3QO9GP5ROx6tLqUnwr_wvcqnwvgqXEUeFUHW47qXGpE3cw%40mail.gmail.com.