this post was submitted on 06 Dec 2025
63 points (95.7% liked)

Programming

23856 readers
210 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 2 years ago
MODERATORS
 

I got an email from Vercel urging to upgrade Next.js based project 3 days ago. POC was published 2 days ago. Today I've checked my logs and I could already see attack attempts.

top 7 comments
sorted by: hot top controversial new old
[–] Mikina@programming.dev 4 points 4 days ago (2 children)

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.

[–] Mikina@programming.dev 6 points 4 days ago* (last edited 4 days ago) (1 children)

Well, Element seems to still be running at the unupdated version even after update, so I'm just shutting the server down.

I'm bummed that it took me 5 days to learn about it, does anyone have some tips how to get early warnings for techs you're using? I'm guessing there's a way with npm.

Also, anyone has some tips how to properly compromise-check your server? I'm guessing there are logs to check for compromise, and audit your startup scripts for persistence? Any tools that could help with that?

[–] GammaGames@beehaw.org 3 points 4 days ago* (last edited 4 days ago)

Renovate can flag CVEs in its pull requests, if you just want to check versions

[–] pupbiru@aussie.zone 3 points 4 days ago* (last edited 4 days ago) (1 children)

it looks like this only applies react server components, and it doesn’t look like element uses react server components

but i only had a quick skim; could be wrong, but personally i wouldn’t shut it down - not that im running a server myself

[–] Mikina@programming.dev 2 points 4 days ago (1 children)

I have no experience with React, so I couldn't tell. Thanks for the info, I'll keep it in mind.

I think I've seen it mentioned that in case RSC isn't used, it might be vulnerable but it's not really confirmed, but you're right that it probably doesn't warrant shutting down the server.

I don't really need it that much, though, so I'll just wait for the update, take a scour through logs and use it as a learning opportunity for forensics, and skip the reinstall.

[–] pupbiru@aussie.zone 2 points 4 days ago* (last edited 4 days ago) (1 children)

the vuln afaik is for remote code execution via basically a mechanism that’s kinda like a transparent RPC to the server (think like you just write frontend code with like a “getUsers” and it just automatically retrieves and deserializes the results so you can render the UI without worrying about how that data exists in the browser)

i’m not a front end engineer, and haven’t used react server components, but i am a principal software engineer, i do react for personal projects, and have written react professionally

i can’t think of a way it’d be exploitable via purely client-side means

i THINK what they mean is that you can use some of the RSC stuff without the RPC-style interfaces, and in that case they say the server component is still vulnerable, but you still need react things running on your server

a huge majority of react code is client-side only, with server-side code written in other languages/frameworks and interfaces with something like REST or GraphQL (or even RPC of course)

[–] TehPers@beehaw.org 1 points 3 days ago

Any website using CSR only can't have a RCE because the code runs on the client. Any code capable of RSC that runs server and client side may be vulnerable.

From what I've seen, the exploit is a special request from a client that functionally lets you exec anything you want (via Function's constructor). If your server is unpatched and recognizes the request, it may be (likely is) vulnerable.

I'm sure we'll get more details over time and tools to manually check if a site is compromised.