From what I can see, CAS is a form of OAuth2 authentication, although they don't use that term on their system.
To make OAuth2 secure, the service using it has to have a set of keys (it's more like having a secret login and password.) Without such keys, it would be very easy to send the user directly to the CAS server with an ID so the attacker knows exactly what ID you're going to use.
+------------------+ +----------------------+
| | | |
| Your Server +-------+---------->| CAS Server |
| | | | |
+------------------+ | +--------+-------------+
| |
+------------------+ | |
| | | |
| Hacker Server +-------+ |
| | v
+---------+--------+ +----------------------+
. | |
+...........................>| Back to Your Server |
| |
+----------------------+
Without some secrets from your computer, we have a very simple way of knowing what the session identifier as a hacker. We just generate said ID and send you to the CAS Server. Wait a little and then access the concerned server.
I would imagine that CAS has the necessary secrets so this wouldn't work.
Now, if I can create an XSS attack which sets a cookie with the session ID then I can also gain the necessary knowledge to connect to the server once the user is logged in.
With the XSS they would likely be exploiting an issue on your systems. So the hacker has a link to your server which does something wrong and executes the hacker's code (JavaScript or a meta tag). That code sets the session ID or checks the existing session ID and POSTs it to one of the hacker's computer.
+------------------+ +----------------------+
| | | |
| Your Server +------------------>| CAS Server |
| | | |
+------------+-----+ +--------+-------------+
^ | |
| | |
| v v
+--------+---------+ +----------------------+
| | | |
| Hacker Server +..................>| Back to Your Server |
| | | |
+------------------+ +----------------------+
In this case, since the session ID won't change, they will have access to your server for 15 to 20 minutes once the user is logged in. An XSS attack is rather easy to avoid, but I've heard of many such attacks (I worked on Drupal for a while and discovered quite a few from programmers who don't think out of the box and use possibly tainted data as is.)
An example of such is to hit a 404 page using code in the URI:
http://example.com/<script>document.cookie = "JSESSIONID=123";</script>
A programmer who creates a 404 page and shows the <script>
tag as is (i.e. without replacing the <
with <
and >
with >
) allows for a cross-site attack as the rogue JavaScript will be executed on your site.
Note that with a Man In The Middle (MITM) attack, you don't even need an XSS or a bad OAuth2 like implementation. But it's harder to execute an MITM and in most cases requires a public place so people at work are less likely to have a hacker colleague who knows how to be an MITM.