Skip to content

Possible security issue with ACL clone API #1113

Closed
@gmr

Description

@gmr

If ACLs are enabled and an access token is not specified for the request and you make a PUT request to clone an ACL id, instead of getting a 403, Consul will first check to see if the ACL token exists and return a 404 if not.

I would expect that the security would be checked first as it is done with create or destroy.

For example, trying to destroy an invalid token:

"PUT /v1/acl/destroy/b9e6b84d HTTP/1.1" 403 17

But trying to clone an invalid token:

"PUT /v1/acl/clone/6e2acf0c HTTP/1.1" 404 20

An attacker could then try and brute force finding of an access token by issuing the clone request and logging all forbidden responses. Since ACL list provides a 403 error when you are not authorized, I believe the intent is to prevent the token list from being discovered.

This was tested against v0.5.2

Activity

ryanuber

ryanuber commented on Jul 17, 2015

@ryanuber
Member

Definitely agreed - we should hide token existence from prying eyes. Thanks @gmr!

added this to the 0.7.4 milestone on Nov 22, 2016
removed this from the Triaged milestone on Apr 18, 2017
added a commit that references this issue on Jul 15, 2017
efe8fec
added a commit that references this issue on Jul 15, 2017
872cf9f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    theme/aclsACL and token generationtype/bugFeature does not function as expected

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @gmr@slackpad@ryanuber

        Issue actions

          Possible security issue with ACL clone API · Issue #1113 · hashicorp/consul