Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OAuth is broken #1445

Open
charmander opened this issue Oct 30, 2024 · 2 comments
Open

OAuth is broken #1445

charmander opened this issue Oct 30, 2024 · 2 comments
Assignees

Comments

@charmander
Copy link
Contributor

Unverified, but this looks like it’s critical to authentication and not compatible with the current version of Arrow:

bearer_token.expires_at = arrow.utcnow().replace(seconds=token['expires_in'])

Would help explain why there haven’t been any active OAuth clients since August 2018…

Luckily, if it’s already been broken for a long time, that gives us an opportunity to make breaking changes:

  • restricting which OAuth flows can be used
  • replacing the wholesite scope with narrower ones

#304 remains important.

@charmander charmander added the bug label Oct 30, 2024
@charmander charmander self-assigned this Oct 31, 2024
@charmander
Copy link
Contributor Author

Restoring OAuth to its former functionality is just a couple of quick fixes, but I’ve taken it down in production (503 with an error message) for a security review because it does a few things I’m uncomfortable with – so any upcoming pull requests and discussion that reveal weaknesses aren’t exploitable.

@charmander
Copy link
Contributor Author

Another issue with the current implementation: OAuth consumers aren’t revocable (or visible!) until the authorization code is exchanged for a token, the timing of which is controlled by a potentially malicious party up to 10 minutes from user approval.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant