Given the appropriate XSS vulnerability, an attacker can hijack somebody's session with the data that's passed to and from the server.
Why aren't sessions always exclusive to the IP they were started on? i.e., when would a website/service need to persist an authenticated session across multiple IP addresses? I'm not sure why sessions permit this, thus I don't understand how this is ever a feasible route for an attacker.