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

Potential security issues #8

Open
volodymyrdovhan opened this issue Dec 5, 2024 · 0 comments
Open

Potential security issues #8

volodymyrdovhan opened this issue Dec 5, 2024 · 0 comments

Comments

@volodymyrdovhan
Copy link

Hello,
I identified several security issues related to the implemented SSO approach that need to be addressed:

  1. Hard-Coded Credentials
    I found hard-coded secret keys in the code base:
    image
    Issue:

Secret keys should never be hard-coded. They should be stored securely in plugin settings.
If you need to change the secret key (e.g., for security reasons or rotation), all existing users will lose access to the service with the old key.
Recommendation:
Store the secret key as a configurable setting within the plugin.

  1. Single Secret Key Usage
    Using a single hard-coded secret key for all users and systems is insecure, especially with the current SSO mechanism. It could be exploited to overload the system. For example, a simple script could create thousands or even millions of users, potentially crashing the database if rate-limiting isn't in place.

Recommendation:
Implement individual keys per user or system and add rate-limiting mechanisms to prevent abuse.

  1. Unauthorized Access via SSO
    With the current SSO implementation, it’s possible to access the system using any email address, even without ownership. For instance, knowing an admin or manager's email could allow unauthorized access by simulating SSO redirect.

Recommendation:

  • Implement a robust registration logic where users generate a personal key and configure their LMS URL.
  • Use secure SSO methods like OAuth2, OpenID Connect, or at least JWT (JSON Web Tokens) for authentication.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant