In terms of mitigation, it seems like at a minimum custom cursors should never be rendered outside the bounds of the page content.
In terms of mitigation, it seems like at a minimum custom cursors should never be rendered outside the bounds of the page content.
At least on Windows, i'm reasonably sure all the API does is tell the OS which image to render as cursor and the cursor is rendered entirely by the OS; meaning there's no control over whether the cursor is being rendered partially outside the viewport or not.
Solutions where the browser would have enough control would likely require rendering the cursor by itself, which would impart it noticable input latency.
Edit: Quick addition of a bounding box to the demo: https://wchristian.github.io/cursory-hack/
In this case the browser could create a clipped version of the cursor image and set it as the new cursor.
It would also break the case where pages have legit uses for crosshair style cursors, or cursors that are rotated 180° in order to not overlay contents.