Backend et Fullstack

Backend & Fullstack Daily — 21 mai 2026

Lo nuevo hoy

Today's highlights

Points forts du jour

Click en cualquiera para ir al detalle

Click any item to jump to the full section

Cliquez un élément pour aller à la section complète

🔥

Top Stories

Breaking

GitHub confirma robo de 3.800 repos internos vía extensión VS Code de TeamPCP

Un empleado de GitHub instaló una versión envenenada de una extensión de VS Code y TeamPCP (UNC6780) usó ese endpoint para exfiltrar ~3.800 repos internos. GitHub aisló la máquina, removió la extensión maliciosa y confirma que no hay impacto en datos de clientes almacenados fuera de los repos internos. El grupo intenta vender el dump por 50.000 USD y amenaza con publicarlo si no aparece comprador. Este es el cuarto golpe de TeamPCP en mayo (después de durabletask en PyPI y la oleada AntV en npm). Ojo: si tu org instala extensiones de VS Code sin allowlist firmada, sos el próximo. Activá extensions.allowedExtensions y revisá publisher.verified.

20 May 2026
helpnetsecurity.com →
Breaking

Mini Shai-Hulud arrasa AntV: 317 paquetes npm, 637 versiones maliciosas en 22 minutos

El 19 de mayo, entre las 01:39 y 02:18 UTC, atacantes comprometieron la cuenta npm atool y publicaron 637 versiones maliciosas a través de 317 paquetes (~16M de descargas semanales combinadas): size-sensor (4.2M/mes), echarts-for-react (3.8M), @antv/scale (2.2M), timeago.js (1.15M) y todo el ecosistema @antv/*. El payload es un script Bun ofuscado de 498KB que matchea la toolkit de Mini Shai-Hulud: barre AWS (env, config, IMDS, ECS, Secrets Manager), Kubernetes service accounts, Vault, GitHub PATs, tokens npm, SSH keys y 1Password/Bitwarden/pass. Microsoft Security confirmó la atribución a TeamPCP. Si corriste npm install contra cualquier paquete afectado en esa ventana, tratá el host como comprometido y rotá TODO.

19 May 2026
microsoft.com/security →
Breaking

SDK oficial Microsoft durabletask en PyPI: wiper de disco + ladrón multi-cloud (v1.4.1-1.4.3)

El SDK oficial de Azure Durable Functions en Python (400k+ descargas/mes) recibió tres versiones maliciosas (1.4.1, 1.4.2, 1.4.3) publicadas directamente a PyPI en una ventana de 35 minutos el 19 de mayo, bypasseando el pipeline de build. El payload de 28KB roba credenciales de AWS, Azure, GCP, Kubernetes, password managers y 90+ herramientas de dev, después se propaga lateral por la infra cloud. La variante para Linux incluye un disk wiper. Si tenés 1.4.1-1.4.3, el host está comprometido — pinneá a 1.4.0, rotá tokens cloud y arrancá incident response. Ataque atribuído a TeamPCP (misma campaña Mini Shai-Hulud).

19 May 2026
stepsecurity.io →
Destacado

pgBackRest revive: coalición Percona + AWS + Supabase + Tiger Data + pgEdge + Eon.io

Después de que David Steele anunciara que dejaba pgBackRest (la herramienta de backup más usada en PostgreSQL) por falta de financiamiento sostenible — Crunchy Data se vendió y se quedó sin sponsor — una coalición de seis empresas (Percona, AWS, Supabase, Tiger Data/Timescale, pgEdge, Eon.io) lo trae de vuelta a full-time. Cubre fixes, features y onboarding de un nuevo maintainer vía equipo de ingeniería de Percona. Esto es un caso de estudio de cómo sostener open source crítico antes de que se prenda fuego (mirá core-js, xz-utils). Si dependés de pgBackRest en prod, podés respirar — y si tu org puede sumarse al sponsorship, es momento.

19 May 2026
theregister.com →
Release

Drizzle ORM v1.0.0-rc.3: porting de cambios PG a MySQL, mappers optimizados

El equipo de Drizzle (ahora bancado por PlanetScale) lanzó v1.0.0-rc.3 el 18 de mayo, enfocado en portar a MySQL los cambios que ya hicieron en PostgreSQL: removieron RQBv1, refactorearon las sesiones internas de MySQL y habilitaron mappers non-jit optimizados para queries regulares. Esto va al hilo de rc.2 (5 de mayo) que ya había roto compat moviendo la casing API desde la instancia de DB hacia las definiciones de table/view/schema. Si seguís en 0.x y querés migrar, leé la guía de upgrade antes de lanzar el bundle a prod.

18 May 2026
orm.drizzle.team →

Runtimes

Deprecación

GitHub Actions: Node24 será default desde el 16 de junio, Node20 muere en otoño

GitHub confirmó (actualización del 19 de mayo) que los runners pasan a usar Node24 por default a partir del 16 de junio de 2026, con Node20 totalmente removido en otoño. Para testear antes: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true. Para opt-out post-cutoff: ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true (ojo al naming: unsecure implica que no hay parches de seguridad). Si publicás actions tuyas con runs.using: node20, actualizá YA. Mismo día GitHub removió el campo code_scanning_upload de la respuesta del endpoint REST de rate limit.

19 May 2026
github.blog/changelog →
🧩

Frameworks & Libraries

Patch

Vitest v4.1.7: fixes y estabilidad sobre Vitest 4.1 (test tags, aroundEach/All, AI agent reporter)

Vitest publicó v4.1.7 el 21 de mayo, una patch de estabilidad sobre la línea 4.1. Si todavía no migraste a 4.1 (anunciada en marzo y ya pulida), tenés: test tags para filtrar y configurar grupos, modo experimental que bypassea el module runner de Vite, nuevos lifecycle hooks aroundEach / aroundAll (envolvé tests en transacciones de DB o tracing spans), inferencia de tipos mejorada en fixtures vía test.extend builder, y un reporter dedicado para AI coding agents. Combo perfecto con la migración a Drizzle rc.3 si querés ahora correr los tests adentro de una transacción Postgres y descartar al final.

21 May 2026
github.com/vitest-dev →
☁️

Cloud & DevOps

Deprecación

Cloudflare Wrangler corta `dev --remote` para KV-backed Durable Objects

Desde el 18 de mayo Wrangler ya no soporta el flag legacy dev --remote para Durable Objects que usan KV como backend — ahora devuelve error. El flag nunca soportó el storage backend SQLite (que es el recomendado). Para todos los Durable Objects, usá wrangler dev local. Bonus: el Developer Platform sumó soporte de Cloudflare Tunnel para compartir sesiones locales desde Wrangler o el plugin Vite, dándote una URL pública para previews, webhooks y testing cross-device. Adiós a ngrok para muchos casos.

18 May 2026
releasebot.io/cloudflare →
🏗️

Architecture & Best Practices

Destacado

Defensa de supply chain 2026: lockfile diffs, allowlist de extensiones VS Code, scoped tokens npm

Tres oleadas TeamPCP en mayo (durabletask, AntV/atool, GitHub-via-VSCode-extension) dejan el playbook claro: (1) bloqueá publicación de versiones nuevas sin firma vía npm publish --provenance + Sigstore + verificación en CI; (2) bajá a scoped tokens por package (cada token con permiso a un solo paquete) — los automation tokens globales son el agujero; (3) en VS Code, configurá extensions.allowedExtensions a una allowlist firmada y prohibí instalación arbitraria por usuario; (4) en CI corré npm ci con --ignore-scripts por default y allowlist explícita de paquetes que sí pueden correr postinstall. El blog de Microsoft Security sobre AntV explica el flujo end-to-end de robo desde IMDS hasta Vault.

20 May 2026
snyk.io →
🔥

Top Stories

Breaking

GitHub confirms 3,800 internal repos exfiltrated via TeamPCP VS Code extension

A GitHub employee installed a poisoned VS Code extension and TeamPCP (UNC6780) pivoted from that endpoint to exfiltrate ~3,800 internal repos. GitHub isolated the device, pulled the malicious extension and confirms no customer data outside the internal repos is affected. The group is shopping the dump for $50,000 and threatens to leak it if no buyer shows up. This is TeamPCP's fourth wave in May (after the durabletask PyPI compromise and the AntV npm wave). If your org installs VS Code extensions without a signed allowlist, you're next — lock down extensions.allowedExtensions and audit publisher.verified.

20 May 2026
helpnetsecurity.com →
Breaking

Mini Shai-Hulud devours AntV: 317 npm packages, 637 malicious versions in 22 minutes

On May 19, between 01:39 and 02:18 UTC, attackers compromised the atool npm account and pushed 637 malicious versions across 317 packages (~16M combined weekly downloads): size-sensor (4.2M/mo), echarts-for-react (3.8M), @antv/scale (2.2M), timeago.js (1.15M) and the full @antv/* ecosystem. The payload is a 498KB obfuscated Bun script matching the Mini Shai-Hulud toolkit: scrapes AWS (env, config, IMDS, ECS, Secrets Manager), Kubernetes SA tokens, HashiCorp Vault, GitHub PATs, npm tokens, SSH keys and 1Password/Bitwarden/pass vaults. Microsoft Security attributes it to TeamPCP. If you ran npm install against any affected package in that window, treat the host as compromised and rotate everything.

19 May 2026
microsoft.com/security →
Breaking

Microsoft durabletask PyPI SDK ships disk wiper + multi-cloud credential stealer (v1.4.1-1.4.3)

Microsoft's official Azure Durable Functions Python SDK (400k+ downloads/mo) got three malicious versions (1.4.1, 1.4.2, 1.4.3) pushed directly to PyPI in a 35-minute window on May 19, bypassing the build pipeline entirely. The 28KB payload steals credentials from AWS, Azure, GCP, Kubernetes, password managers and 90+ dev tools, then pivots laterally through cloud infra. The Linux variant adds a disk wiper. If you're on 1.4.1-1.4.3 treat the host as compromised — pin to 1.4.0, rotate cloud tokens and start incident response. Attributed to TeamPCP (same Mini Shai-Hulud campaign).

19 May 2026
stepsecurity.io →
Notable

pgBackRest saved by Percona + AWS + Supabase + Tiger Data + pgEdge + Eon.io coalition

After David Steele announced he was stepping away from pgBackRest (PostgreSQL's most widely-used backup tool) due to lack of sustainable funding — Crunchy Data was sold, leaving him without sponsor — a six-company coalition (Percona, AWS, Supabase, Tiger Data/Timescale, pgEdge, Eon.io) is bringing him back full-time. Funding covers fixes, features and Percona engineering involvement to onboard a new maintainer. This is a case study in sustaining critical open source before it ignites (see core-js, xz-utils). If you rely on pgBackRest in prod, exhale — and if your org can chip in, now's the time.

19 May 2026
theregister.com →
Release

Drizzle ORM v1.0.0-rc.3: PG changes ported to MySQL, optimized mappers

The Drizzle team (now PlanetScale-backed) shipped v1.0.0-rc.3 on May 18, focused on porting the PostgreSQL changes to MySQL: RQBv1 removed, MySQL internal sessions refactored and optimized non-jit mappers enabled for regular queries. This follows rc.2 (May 5) which already broke compat by moving the casing API from the DB instance into table/view/schema definitions. If you're still on 0.x and want to migrate, read the upgrade guide before pushing the bundle to prod.

18 May 2026
orm.drizzle.team →

Runtimes

Deprecation

GitHub Actions: Node24 becomes default on June 16, Node20 dies in the fall

GitHub confirmed (May 19 update) that runners switch to Node24 as default on June 16, 2026, with Node20 fully removed in the fall. Test early via FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true. Opt out post-cutoff with ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true (note the naming: unsecure means no security patches). If you publish actions with runs.using: node20, update now. Same day GitHub also removed the code_scanning_upload field from the rate-limit REST endpoint response.

19 May 2026
github.blog/changelog →
🧩

Frameworks & Libraries

Patch

Vitest v4.1.7: stability fixes on top of Vitest 4.1 (test tags, aroundEach/All, AI agent reporter)

Vitest shipped v4.1.7 on May 21, a stability patch on top of the 4.1 line. If you haven't migrated to 4.1 yet (announced in March, now polished), you get: test tags for filtering and configuring groups, experimental mode that bypasses Vite's module runner, new aroundEach / aroundAll lifecycle hooks (wrap tests in DB transactions or tracing spans), improved type inference in fixtures via test.extend builder, and a dedicated reporter for AI coding agents. Pairs nicely with the Drizzle rc.3 migration if you want tests to run inside a Postgres transaction and roll back at teardown.

21 May 2026
github.com/vitest-dev →
☁️

Cloud & DevOps

Deprecation

Cloudflare Wrangler removes `dev --remote` for KV-backed Durable Objects

From May 18 Wrangler no longer supports the legacy dev --remote flag for KV-backed Durable Objects — it now errors out. The flag never supported the recommended SQLite storage backend. For all Durable Objects, use local wrangler dev. Bonus: the Developer Platform added Cloudflare Tunnel support to share local dev sessions from Wrangler or the Vite plugin, giving you a public URL for previews, webhooks and cross-device testing. Bye ngrok for many use cases.

18 May 2026
releasebot.io/cloudflare →
🏗️

Architecture & Best Practices

Notable

Supply chain defense 2026: lockfile diffs, VS Code extension allowlists, scoped npm tokens

Three TeamPCP waves in May (durabletask, AntV/atool, GitHub-via-VSCode-extension) make the playbook obvious: (1) block unsigned publishes via npm publish --provenance + Sigstore + CI verification; (2) migrate to scoped tokens per package (one token, one package permission) — global automation tokens are the hole; (3) in VS Code, set extensions.allowedExtensions to a signed allowlist and block arbitrary per-user installs; (4) in CI run npm ci with --ignore-scripts by default plus an explicit allowlist of packages permitted to run postinstall. Microsoft Security's AntV writeup walks the full IMDS-to-Vault credential theft chain.

20 May 2026
snyk.io →
🔥

Top Stories

Breaking

GitHub confirme l'exfiltration de 3 800 repos internes via une extension VS Code TeamPCP

Un employé de GitHub a installé une extension VS Code empoisonnée et TeamPCP (UNC6780) a pivoté depuis ce poste pour exfiltrer ~3 800 repos internes. GitHub a isolé la machine, retiré l'extension et confirme qu'aucune donnée client hors des repos internes n'est touchée. Le groupe brade le dump pour 50 000 USD et menace de le publier sans acheteur. C'est la quatrième vague de TeamPCP en mai. Verrouillez extensions.allowedExtensions et auditez publisher.verified.

20 May 2026
helpnetsecurity.com →
Breaking

Mini Shai-Hulud dévaste AntV : 317 paquets npm, 637 versions malveillantes en 22 minutes

Le 19 mai, entre 01:39 et 02:18 UTC, des attaquants ont compromis le compte npm atool et publié 637 versions malveillantes sur 317 paquets (~16M téléchargements hebdo cumulés). Le payload est un script Bun obfusqué de 498KB qui aspire les credentials AWS, Kubernetes, Vault, GitHub PATs, npm tokens, SSH et coffres 1Password/Bitwarden. Microsoft Security attribue à TeamPCP. Si vous avez fait npm install dans cette fenêtre, traitez l'hôte comme compromis et rotez tout.

19 May 2026
microsoft.com/security →
Breaking

SDK officiel Microsoft durabletask sur PyPI : wiper disque + voleur multi-cloud (v1.4.1-1.4.3)

Le SDK officiel Azure Durable Functions Python (400k+ téléchargements/mois) a reçu trois versions malveillantes (1.4.1, 1.4.2, 1.4.3) poussées directement sur PyPI en 35 minutes le 19 mai, en bypassant le pipeline de build. Le payload de 28KB vole les credentials AWS, Azure, GCP, Kubernetes. La variante Linux ajoute un wiper disque. Épinglez 1.4.0 et faites une incident response complète. Attribué à TeamPCP.

19 May 2026
stepsecurity.io →
Notable

pgBackRest sauvé par la coalition Percona + AWS + Supabase + Tiger Data + pgEdge + Eon.io

Après que David Steele a annoncé son retrait de pgBackRest faute de financement (Crunchy Data revendu, sans sponsor), une coalition de six entreprises (Percona, AWS, Supabase, Tiger Data, pgEdge, Eon.io) le ramène à plein temps. Couvre les fixes, features et onboarding d'un nouveau maintainer via Percona. Cas d'école sur la maintenance d'open source critique avant l'incendie.

19 May 2026
theregister.com →
Release

Drizzle ORM v1.0.0-rc.3 : portage PG vers MySQL, mappers optimisés

L'équipe Drizzle (désormais soutenue par PlanetScale) a livré v1.0.0-rc.3 le 18 mai, axée sur le portage des changements PG vers MySQL : RQBv1 retiré, sessions internes refactorées, mappers non-jit optimisés activés. Suit rc.2 qui déplaçait l'API casing depuis l'instance DB vers les définitions table/view/schema. Migrez via le guide officiel.

18 May 2026
orm.drizzle.team →

Runtimes

Dépréciation

GitHub Actions : Node24 par défaut le 16 juin, Node20 meurt à l'automne

GitHub a confirmé (mise à jour du 19 mai) que les runners passent à Node24 par défaut le 16 juin 2026, Node20 totalement retiré à l'automne. Test anticipé via FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true. Opt-out post-cutoff via ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. Si vous publiez des actions avec runs.using: node20, mettez à jour maintenant.

19 May 2026
github.blog/changelog →
🧩

Frameworks & Libraries

Patch

Vitest v4.1.7 : fixes et stabilité sur Vitest 4.1 (test tags, aroundEach/All, AI agent reporter)

Vitest a publié v4.1.7 le 21 mai, patch de stabilité sur la ligne 4.1. Si vous n'avez pas migré : test tags, mode bypass du module runner Vite, hooks aroundEach/aroundAll, inférence de types via test.extend, reporter dédié pour agents IA.

21 May 2026
github.com/vitest-dev →
☁️

Cloud & DevOps

Dépréciation

Cloudflare Wrangler retire `dev --remote` pour les Durable Objects KV

Depuis le 18 mai, Wrangler ne supporte plus le flag legacy dev --remote pour les Durable Objects backed-KV — il renvoie une erreur. Utilisez wrangler dev en local. Bonus : support de Cloudflare Tunnel pour partager une session locale via URL publique.

18 May 2026
releasebot.io/cloudflare →
🏗️

Architecture & Best Practices

Notable

Défense supply chain 2026 : diffs de lockfile, allowlist d'extensions VS Code, tokens npm scopés

Trois vagues TeamPCP en mai rendent le playbook évident : (1) bloquez les publishes non signés via npm publish --provenance + Sigstore + vérification CI ; (2) migrez vers des tokens scopés par package ; (3) dans VS Code, allowlist signée d'extensions ; (4) en CI, npm ci --ignore-scripts par défaut.

20 May 2026
snyk.io →