-
Notifications
You must be signed in to change notification settings - Fork 269
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
Security bug report #220
Comments
Thanks but I don't think it would be a good idea to send a PR without discussion the problem with the core members first. I guess they want to prepare a release too. |
Hi @gregmolnar thanks a lot for you feedback. If you still do not agree with publishing it as a regular issue with PR, please send the report to me on [email protected] I will take care of it as one of the core team. best regards |
I believe users of rubycas are not looking at github everyday but they probably have some kinda of a monitoring of the new releases so I guess in case of a security fix, a new release should be published quickly. But if someone just submits a PR and for any reason the core members doesn't really have the time to review it and release a new version, the vulnerability can be public for a period without a released fix. |
The issue I am about to report been found in an older version of the gem. In that version it was possible to lock down the CAS server to a subdomain. Has that feature been removed? I made a simple app and had a play around but even if I set the |
I investigated this a little more and it looks like at my work someone patched rubycas-server to avoid an XSS token hijack vulnerability. I can't see any protection in rubycas master related to this. |
I wrote it that way to be more backwards compatible since there was previously no way to limit what services could grab potentially sensitive information as you described. And I didn't want everybody upgrading to suddenly have a broken CAS server. However, it might be a good idea to change to a more secure default of only allowing 127.0.0.1 or even treating an empty |
As far as I see the |
Oh sorry, I should have read that more carefully. You're right Maybe I'm missing something again but if you were to get a ticket for The code I'm referring to that does the service matching is here: https://github.com/rubycas/rubycas-server/blob/master/lib/casserver/cas.rb#L183. |
I guess it is a proxy ticket by default so it is not locked to a service. At least in my POC I can access the app on |
When I try it out on some of our real sites I get the following error.
We're not using rubycas-client though and our client doesn't do proxy tickets. So it could have something to do with that. |
Your setting is probably not the default. The app I linked is a default setup of casclient and casserver and that issues and validates a proxy ticket. A possible fix would be to add a whitelist of services to the server and don't redirect to anywhere else with a token in any setup. |
Any of the core members had a chance to look into this? I am happy to send a fix but not sure what solution would be accepted by the core team. |
@gregmolnar, just open the PR, and then will be able to discuss about proposed solution. |
What is the best way to report a vulnerability in rubycas-server and submit a fix? I can't see anything about this in the readme nor the wiki.
The text was updated successfully, but these errors were encountered: