Fuck, Element for Matrix is apparently build on React, and I was updating like 4 days ago after few months.
Well, time to update again, I hope it's fine. Never really learned how to properly compromise-check your server.
Fuck, Element for Matrix is apparently build on React, and I was updating like 4 days ago after few months.
Well, time to update again, I hope it's fine. Never really learned how to properly compromise-check your server.
This only affects sites that use the fancy new-fangled SSR rendering from what I've read. ReactJS (Client side) sites wouldn't be affected.
Are we still vulnerable if our app doesn’t use React Server Functions endpoints?
Potentially. According to the React Team, even if React Server Functions are not in-use, the vulnerability is still exploitable if React Server Components are supported.
I think their point was that CSR-only sites would be unaffected, which should be true. Exploiting it on a static site, for example, couldn't be RCE because the untrusted code is only being executed on the client side (and therefore is not remote).
Now, most people use, or at least are recommended to use, SSR/RSC these days. Many frameworks make SSR enabled by default. But using raw React with no Next.js, react-router, etc. to create a client-side only site does likely protect you from this vulnerability.
Now, most people use, or at least are recommended to use, SSR/RSC these days.
Why though?
I'm not the one recommending it lol.
If I had to guess, it's to improve page performance by prerendering as much as possible, but I find it overkill and prefer to just prerender as much of the page as I can at build time and do CSR for the rest, though this doesn't work if you have dynamic routes or some kind of server-side logic (good for blogs and such though).
We were very lucky that our usage was on the literal version before the affected version. Dodged a bullet.
all 7 comments