Zum Hauptinhalt springen
tsecurity.de LIVE
Echtzeit-Radar & Feeds
Alle RSS Feeds
👥 Community & Social
Sicherheitslücken (CVE)CVE-2024-0244 – A heap buffer overflow in the Canon MF753Cdw printer(23.09.2026 um 21:03 Uhr)
Malware / Trojaner / VirenNew Galago Ransomware Operation Emerges With Links to Panzer Extortion Group(24.09.2026 um 08:06 Uhr)
Sicherheitslücken (CVE)Hackers Exploit Check Point VPN RCE and Management Zero-Day in Attacks(24.09.2026 um 11:41 Uhr)
Sicherheitslücken (CVE)Check Point Fixes a New Actively Exploited Critical Security Flaw(22.09.2026 um 21:31 Uhr)
Sicherheitslücken (CVE)CVE-2026-87902: how close is your WordPress to remote code execution?(23.09.2026 um 09:36 Uhr)
Sicherheitslücken (CVE)ShinyHunters claims FBI breach after alleged PeopleSoft zero-day attack(23.09.2026 um 15:56 Uhr)
Sicherheitslücken (CVE)CVE-2024-0244 – A heap buffer overflow in the Canon MF753Cdw printer(23.09.2026 um 21:03 Uhr)
Malware / Trojaner / VirenNew Galago Ransomware Operation Emerges With Links to Panzer Extortion Group(24.09.2026 um 08:06 Uhr)
Sicherheitslücken (CVE)Hackers Exploit Check Point VPN RCE and Management Zero-Day in Attacks(24.09.2026 um 11:41 Uhr)
Sicherheitslücken (CVE)Check Point Fixes a New Actively Exploited Critical Security Flaw(22.09.2026 um 21:31 Uhr)
Sicherheitslücken (CVE)CVE-2026-87902: how close is your WordPress to remote code execution?(23.09.2026 um 09:36 Uhr)
Sicherheitslücken (CVE)ShinyHunters claims FBI breach after alleged PeopleSoft zero-day attack(23.09.2026 um 15:56 Uhr)
Intelligence View
⚡ tsecurity.de Intelligence

Cutting Vercel Fluid CPU with Next.js Server-Side Caching

Cutting Vercel Fluid CPU with Next.js Server-Side Caching Got an email from Vercel about reaching limits and checked to see Fluid Active CPU spiking for worldcuppicks.co. Obviously I don't want to go to premium, so I implemented certain…

0
↗ Quelle (dev.to)
Reagiere als Erste:r — dein Feedback zählt!




Cutting Vercel Fluid CPU with Next.js Server-Side Caching



Got an email from Vercel about reaching limits and checked to see Fluid Active CPU spiking for worldcuppicks.co. Obviously I don't want to go to premium, so I implemented certain measures to bring it down. We are in the knockout rounds now, so I wanted to get it sorted before things got worse.






First identification



Going to the Vercel Observability tab, I was able to see which page was causing the heavy load. The home page function was clocking nearly 3 minutes of active CPU time per billing window while every other route measured in seconds. That pointed me straight at the problem: the home page was doing two full database fetches on every single visit, for every user, with no caching in between.




// This ran on every page visit, for every user
const [matches, predictions] = await Promise.all([
getAllMatches(),
getAllMatchPredictions(),
]);






getAllMatches joins across three tables. getAllMatchPredictions pulls aggregate pick stats. Both were uncached, so every visit hit the database from scratch.



The second culprit was Sentry. I had it configured with a tunnelRoute that proxies Sentry events through a Vercel function at /monitoring. Every page load was generating an extra function invocation. I disabled Sentry entirely for now and that brought the baseline down.






The fix: unstable_cache



Next.js ships a function called unstable_cache that wraps any async function with a server-side cache. The result is shared across all users and all requests, not per session. The first request after a cache miss hits the database, and every subsequent request gets the cached result.



For matches I set revalidate: false, meaning the cache never expires on a timer:




export const getAllMatches = unstable_cache(
async (): Promise<Match[]> => {
const supabase = getOrCreateAdminClient();
const { data } = await supabase
.from("matches")
.select(`*, home_team:teams!home_team_id(...), away_team:teams!away_team_id(...)`)
.order("match_date", { ascending: true });
return (data as Match[]) ?? [];
},
["all-matches"],
{ revalidate: false, tags: ["matches"] }
);






Match data only changes when I update it from the admin panel, so a time-based TTL adds nothing. The admin server action calls revalidateTag("matches") the moment a match is saved, which busts the cache immediately:




const { error } = await supabase.from("matches").update(update).eq("id", matchId);
if (error) throw new Error("Failed to update match");
revalidatePath("/admin");
revalidateTag("matches");
revalidateTag("predictions");






For prediction stats I went with a one-hour TTL as a fallback:




export const getAllMatchPredictions = unstable_cache(
async (): Promise<MatchPredictionStats[]> => {
const supabase = getOrCreateAdminClient();
const { data } = await supabase.from("match_predictions").select("*");
return (data ?? []) as MatchPredictionStats[];
},
["all-match-predictions"],
{ revalidate: 3600, tags: ["predictions"] }
);









Why stale prediction stats are fine



The obvious concern is that cached prediction percentages go stale. Won't someone loading the page see wrong crowd percentages?



But the crowd percentage bar uses a Supabase realtime subscription on the client. The moment a pick is submitted, Supabase pushes the updated row to every connected browser over a WebSocket. The cached server data is only used for the initial SSR render. Within milliseconds of hydration, realtime takes over.



The user's own pick is handled via optimistic local state, so it's instant regardless:




async function handlePick(newPick: Pick) {
setPick(newPick); // instant, before the server action returns
await submitPrediction(matchId, newPick);
}









The key insight



unstable_cache is shared across all requests on the server, not per session. Without it, every page visit queries the database for the exact same data. With it, it's one query until the cache is busted. For match data that only changes when I update it from the admin panel, that's the right trade.



Happy coding!

SOC Incident Playbook: Remote Code Execution (RCE) Defense
title: Detect Exploitation - Cutting Vercel Fluid CPU with Next.js Server-Side Caching
id: 3c3b0dad-9c2d-4b8a-a978-ac3033ddee7e
status: experimental
description: Automatisch generierte SIEM-Erkennungsregel basierend auf CTI Intelligence
references:
  - https://tsecurity.de/
author: iShareStuff CTI Automated Detection Engine
date: 2026-09-24
logsource:
  category: network_connection
  product: any
detection:
  selection:
      CommandLine|contains:
        - 'exploit'
  condition: selection
falsepositives:
  - Legitime administrative Zugriffe oder Penetrationstests
level: high
tags:
  - attack.initial_access
rule CTI_Threat_Indicator {
    meta:
        author = "iShareStuff CTI Automated Detection Engine"
        date = "2026-09-24"
        description = "YARA Signature for "
    strings:
        $str = "Cutting Vercel Fluid CPU with " ascii wide
    condition:
        any of them
}
tsecurity.de Cognitive Threat RAG
Fokus-Vektor:

Kognitive Analyse für identifizierte Bedrohung: Erhöhte Bedrohungslage im Bereich Cutting Vercel Fluid CPU with Next.js Se.... Basierend auf 368k Vektor-Korrelationen werden sofortige Isolationsmaßnahmen für betroffene Endpunkte empfohlen.

🛡️ Angriffsfläche & Exposure

Netzwerk/Remote-Zugriff ohne Vorauthentifizierung möglich.

Empfohlene Sofortmaßnahmen
  • 1. Perimeter-Inspektion: Relevante Portfreigaben und exponierte Endpunkte unverzüglich scannen.
  • 2. Patch-Applikation: Hersteller-Hotfix einspielen oder betroffene Daemons in isolierte DMZ-Segmente überführen.
  • 3. Telemetrie & EDR-Alerts: Prozessaufrufe und Child-Processes auf anomale Shell-Spawns überwachen.
🔗 Semantisch verwandte Zero-Days MariaDB 11.7 VEC
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Cutting Vercel Fluid CPU with Next.js Server-Side Caching

Thematisch verwandte Begriffe: Cutting, Vercel, Fluid, with · 6 Treffer

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Zum Aktualisieren ziehen
ZERO-DAY CVE-2026-97360 | HFS2 version 2.4.0 and earlier contains an unauthenticated arbitrary fil…
Advisory →
TTS Reader • tsecurity.de Voice
tsecurity.de Icon
tsecurity.de App
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag
Themen-Radar & Intelligence Matrix
Echtzeit-Taxonomie nach Angriffsvektoren & Plattformen

tsecurity.de Live Threat Radar

🔴 LIVE RADAR
MONITORING
AKTIV
CVE-DATENBANK
LIVE
🔍
Community Radar & Live Chat
Sentinel Bot online • Live-Stream
Dein Cluster: Security Explorer
Match:
lädt…
Verbindung zum Community-Stream wird aufgebaut...
Bearbeitungsmodus — Senden überschreibt deine Nachricht
Community-Puls — was gerade passiert
lädt…
Aktivitäten deiner Analysten
lädt…
Neues Thema oder Eilmeldung einreichen

Reiche interessante Links, Zero-Days oder Debatten ein. Die Community entscheidet per Upvote über die Veröffentlichung.

Heiß diskutierte Einreichungen
🔖 Gespeicherte Artikel
📂 Keine gespeicherten Artikel vorhanden.
Zurück Ziehen Vor
Links: vorheriger Artikel Rechts: nächster Artikel unten: schließen
News NIS-2 Frühwarnung Tier-1 Intel TTP ⏱️ 3 Min vor 10 Min
Artikeldaten werden geladen...

Zurück: vorheriger Vor: nächster
↗ Original-Quelle
Social Reaktionen Deine Reaktion zählt
Einstufung & Relevanz-Poll 0 Stimmen
In sozialen Netzwerken teilen 1-Klick