← Backend y Fullstack

Backend & Fullstack Daily — 7 Oct 2026: Payload CMS publica 15 advisories (SQLi crítica), shell-quote y el SDK de MCP

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

Seguridad

Payload CMS: 15 advisories de una, con SQL injection en Postgres/SQLite y bypass de field access control (críticos)

El 6 de octubre se publicó una tanda enorme para payload y sus plugins. Lo más grave: SQL injection en los adapters de Postgres y SQLite cuando usuarios no confiables pueden mandar filtros dinámicos o joins (fix en 3.88.0; MongoDB no está afectado), bypass del field access control en auth collections (CVSS 9.3, fix en 3.90.0) y prototype pollution en @payloadcms/plugin-import-export (CVSS 9.3). Hay más: API keys que se filtran en lecturas normales de documentos, campos ocultos expuestos vía joins polimórficos y sort, ReDoS en el Content-Type multipart, control de acceso flojo en el plugin de MCP y en el proxy REST de Stripe, y PBKDF2 con pocas iteraciones. Si tenés Payload en producción, subí a 3.90.x YA — los fixes ya estaban publicados, ahora Dependabot te va a empezar a gritar.

06 Oct 2026
github.com/advisories →
Seguridad

shell-quote: quote() permite command injection con un salto de línea después de un token de comentario (CVSS 9.2)

quote() emite un token { comment } como # + texto, que comenta el resto de la línea — incluida la comilla de apertura del string siguiente. Si ese string trae un \n, el comentario termina y el resto se ejecuta como shell. El caso peligroso real: quote(parse(untrusted).concat(arg)), porque parse() genera comentarios con cualquier # a mitad de palabra (pensá en una URL con fragmento). Es un residuo del fix de CVE-2026-9277. Afecta 1.8.4 a 1.10.x; actualizá a 1.11.0, que tira TypeError. Y de paso: si armás comandos de shell con strings, usá execFile/spawn con array de args y listo.

06 Oct 2026
github.com/advisories →
Seguridad

SDK de MCP para TypeScript: un servidor MCP malicioso podía elegir a qué authorization server mandar tus refresh tokens

En @modelcontextprotocol/sdk 1.12.0–1.30.1 las credenciales OAuth no estaban atadas al authorization server al que pertenecen. Un servidor MCP comprometido podía nombrar su propio AS y el cliente, sin interacción del usuario, le mandaba el refresh_token y el client_secret guardados. Te afecta si usás authProvider, withOAuth() o llamás a auth()/fetchToken() contra servidores que no controlás. Fix en 1.31.0 y @modelcontextprotocol/client 2.2.0. Lección de arquitectura: un token sin issuer binding es un cheque al portador.

06 Oct 2026
github.com/advisories →
Seguridad

sharp 0.35.5: bug de memoria en librsvg puede dar RCE en Linux glibc (CVSS 8.9)

El upstream librsvg tenía un bug de memoria que, bajo ciertas condiciones, permite RCE en Linux con glibc. sharp 0.35.5 trae librsvg 2.63.2. Si procesás SVGs subidos por usuarios (avatares, thumbnails, next/image), actualizá YA. Workaround: sharp.block({ operation: ['VipsForeignLoadSvg'] }). Ojo al detalle del advisory: los binarios oficiales de Node.js no se compilan como PIE, así que la mitigación de ASLR no te cubre.

06 Oct 2026
github.com/advisories →
🧩

Frameworks & Libraries

Seguridad

Socket.IO: prototype pollution en @socket.io/cluster-engine vía lookup de sesión del cliente (high)

El engine para correr Socket.IO en cluster (Node cluster o multi-proceso) buscaba la sesión del cliente con una clave controlada por el request sin protegerse de __proto__. Si escalás websockets horizontalmente con @socket.io/cluster-engine, subí a 0.1.1. Usá Map u objetos con Object.create(null) para cualquier lookup por clave del cliente: es la regla de siempre.

05 Oct 2026
github.com/advisories →
Seguridad

pbkdf2: re-hashea passwords largos en cada iteración y abre la puerta a DoS

El polyfill pbkdf2 (el que usa crypto-browserify y mucho bundling legacy) re-hasheaba la password en cada iteración cuando superaba el block size del HMAC. Con passwords gigantes y muchas iteraciones, un endpoint de login se convierte en un ventilador de CPU. Fix en 3.1.7. Igual, poné un límite de longitud a la password antes de hashear — siempre.

06 Oct 2026
github.com/advisories →
🗄️

Databases & Data

GA

Spanner Omni llega a GA: Spanner on-prem, en otras clouds o en tu laptop, sin relojes atómicos

Google sacó a GA la versión deploy-anywhere de Spanner: corre en un solo server, una zona, multi-zona o multi-cluster. Reemplazaron TrueTime por sincronización de tiempo por software con error acotado y Colossus por file systems locales expuestos por red, con splitting y rebalanceo de shards automático. Soporta PostgreSQL además de GoogleSQL y Spanner Graph. Hay Developer Edition gratis para no-producción y una Commercial Edition por vCPU. Para quien necesitaba consistencia externa fuera de GCP, esto cambia la conversación frente a CockroachDB y YugabyteDB.

07 Oct 2026
infoq.com →
☁️

Cloud & DevOps

Breaking

OpenTelemetry: el Kubernetes Attributes Processor llega a v1.0.0 y renombra atributos

El processor que enriquece logs, métricas y traces con metadata de pods, namespaces, nodos y workloads es estable. El precio: adoptar las semantic conventions nuevas, con breaking changes como k8s.pod.labels → k8s.pod.label (y equivalentes en node y namespace). Revisá dashboards, alertas y queries ANTES de actualizar el Collector; hay feature gates para emitir ambos nombres durante la transición.

06 Oct 2026
infoq.com →
Minor

AWS Certificate Manager: emisión ACME por PrivateLink

El tráfico ACME hacia ACM ahora puede ir por VPC interface endpoints, sin tocar la config de tus clientes ACME existentes. Útil para workloads en subredes privadas sin salida a internet que renuevan certificados solos.

06 Oct 2026
aws.amazon.com →
🏗️

Architecture & Best Practices

Destacado

Cloudflare mete modelos frontier en un harness para atacar su propio WAF: 49 hallazgos validados

1.107 intentos de mutación sobre 45 escenarios, 49 hallazgos validados por humanos y tres detecciones nuevas en el Managed Ruleset (SSRF ofuscado, manejo de protocolos restringidos). Lo valioso es el diseño: un harness en Python se queda con todo lo que no querían delegar — estado del escenario, límites de ejecución, construcción del request, reproducibilidad — y el modelo solo propone mutaciones. Separar exploración probabilística de validación determinística es el patrón que tenés que copiar si metés agentes en tu pipeline de seguridad.

07 Oct 2026
infoq.com →
Seguridad

simple-git: el guard de operaciones inseguras no bloquea trailer.<token>.cmd ni includes de config (CVSS 9.2)

Cuatro advisories para simple-git y @simple-git/argv-parser: trailer.<token>.cmd no se considera inseguro, los includes de config de Git tampoco, VISUAL se escapa de la detección de editores y abreviaturas de long options (--receive-p) saltean el plugin — residuo de CVE-2026-28291. Si tu backend o tu CI deja que valores no confiables lleguen a SimpleGitOptions.config o a -c key=value, tenés RCE. Fix en 4.0.1. Una denylist sobre argv de Git es una batalla perdida: no le pases config del usuario, punto.

05 Oct 2026
github.com/advisories →
Minor

OpenTelemetry JS 2.12: StackContextManager en @opentelemetry/sdk-trace

Release chica pero útil: StackContextManager pasa a vivir en @opentelemetry/sdk-trace, y el proyecto ahora puede publicar desde ramas de mantenimiento sin pisar la documentación de main. Salió junto con los paquetes experimentales 0.223.0.

06 Oct 2026
github.com →
🔥

Top Stories

Security

Payload CMS: 15 advisories at once, including SQL injection on Postgres/SQLite and a field access control bypass (critical)

On October 6 a huge batch landed for payload and its plugins. The worst: SQL injection in the Postgres and SQLite adapters when untrusted users can send dynamic filters or joins (fixed in 3.88.0; MongoDB is not affected), a field access control bypass on auth collections (CVSS 9.3, fixed in 3.90.0), and prototype pollution in @payloadcms/plugin-import-export (CVSS 9.3). There is more: API keys disclosed through ordinary document reads, hidden fields exposed via polymorphic joins and sort queries, ReDoS in multipart Content-Type validation, weak access control in the MCP plugin and the Stripe REST proxy, and too few PBKDF2 iterations. If you run Payload in production, move to 3.90.x now — the fixes were already shipped, Dependabot is just catching up.

06 Oct 2026
github.com/advisories →
Security

shell-quote: quote() allows command injection via a line terminator after a comment token (CVSS 9.2)

quote() emits a { comment } token as # plus text, which comments out the rest of the line — including the opening quote of the next string. If that string contains a \n, the comment ends and the rest runs as shell input. The realistic danger: quote(parse(untrusted).concat(arg)), since parse() emits comments for any mid-word # (think URLs with fragments). It is a residual of the CVE-2026-9277 fix. Affects 1.8.4 through 1.10.x; upgrade to 1.11.0, which throws a TypeError. Better yet, use execFile/spawn with an args array instead of building shell strings.

06 Oct 2026
github.com/advisories →
Security

MCP TypeScript SDK: a malicious MCP server could choose which authorization server receives your refresh tokens

In @modelcontextprotocol/sdk 1.12.0–1.30.1, OAuth credentials were not bound to the authorization server they belong to. A compromised MCP server could name its own AS and the client would, with no user interaction, send it the stored refresh_token and client_secret. You are affected if you use authProvider, withOAuth(), or call auth()/fetchToken() against servers you do not fully trust. Fixed in 1.31.0 and @modelcontextprotocol/client 2.2.0. Architecture lesson: a token without issuer binding is a bearer check.

06 Oct 2026
github.com/advisories →
Security

sharp 0.35.5: a librsvg memory bug can lead to RCE on glibc Linux (CVSS 8.9)

Upstream librsvg had a memory bug that, under certain runtime conditions, allows RCE on glibc-based Linux. sharp 0.35.5 ships librsvg 2.63.2. If you process user-uploaded SVGs (avatars, thumbnails, next/image), upgrade now. Workaround: sharp.block({ operation: ['VipsForeignLoadSvg'] }). Note from the advisory: official Node.js binaries are not built as PIE, so ASLR hardening does not save you there.

06 Oct 2026
github.com/advisories →
🧩

Frameworks & Libraries

Security

Socket.IO: prototype pollution in @socket.io/cluster-engine via client session lookup (high)

The engine for running Socket.IO in a cluster (Node cluster or multi-process) looked up client sessions with a request-controlled key without guarding against __proto__. If you scale websockets horizontally with @socket.io/cluster-engine, upgrade to 0.1.1. Use Map or Object.create(null) for any client-keyed lookup — the usual rule.

05 Oct 2026
github.com/advisories →
Security

pbkdf2: rehashes long passwords on every iteration, enabling DoS

The pbkdf2 polyfill (used by crypto-browserify and plenty of legacy bundling) rehashed the password on every iteration when it exceeded the HMAC block size. With huge passwords and high iteration counts, a login endpoint becomes a CPU heater. Fixed in 3.1.7. Regardless, cap password length before hashing — always.

06 Oct 2026
github.com/advisories →
🗄️

Databases & Data

GA

Spanner Omni reaches GA: Spanner on-prem, on other clouds, or on your laptop, without atomic clocks

Google made the deploy-anywhere Spanner generally available: it runs on a single server, single zone, multi-zone, or multi-cluster. TrueTime is replaced with software error-bounded time synchronization and Colossus with network-exposed local file systems, with automatic shard splitting and rebalancing. It supports PostgreSQL alongside GoogleSQL and Spanner Graph. There is a free Developer Edition for non-production and a vCPU-priced Commercial Edition. For teams needing external consistency outside GCP, it changes the comparison with CockroachDB and YugabyteDB.

07 Oct 2026
infoq.com →
☁️

Cloud & DevOps

Breaking

OpenTelemetry: the Kubernetes Attributes Processor reaches v1.0.0 and renames attributes

The processor that enriches logs, metrics, and traces with pod, namespace, node, and workload metadata is now stable. The cost: adopting newer semantic conventions, with breaking changes such as k8s.pod.labels → k8s.pod.label (and equivalents for node and namespace). Audit dashboards, alerts, and queries before upgrading the Collector; feature gates let you emit both names during the transition.

06 Oct 2026
infoq.com →
Minor

AWS Certificate Manager: ACME issuance over PrivateLink

ACME traffic to ACM can now flow through VPC interface endpoints, without reconfiguring existing ACME clients. Useful for workloads in private subnets with no internet egress that renew certificates automatically.

06 Oct 2026
aws.amazon.com →
🏗️

Architecture & Best Practices

Notable

Cloudflare puts frontier models in a harness to attack its own WAF: 49 validated findings

1,107 mutation attempts across 45 scenarios, 49 human-validated findings, and three new detections in the Managed Ruleset (obfuscated SSRF, restricted protocol handling). The valuable part is the design: a Python harness keeps everything they did not want to delegate — scenario state, execution limits, request construction, reproducibility — while the model only proposes mutations. Separating probabilistic exploration from deterministic validation is the pattern to copy if you put agents in your security pipeline.

07 Oct 2026
infoq.com →
Security

simple-git: the unsafe-operations guard misses trailer.<token>.cmd and config includes (CVSS 9.2)

Four advisories for simple-git and @simple-git/argv-parser: trailer.<token>.cmd is not treated as unsafe, neither are Git config includes, VISUAL escapes editor detection, and long-option abbreviations (--receive-p) bypass the plugin — a residual of CVE-2026-28291. If your backend or CI lets untrusted values reach SimpleGitOptions.config or -c key=value, that is RCE. Fixed in 4.0.1. A denylist over Git argv is a losing battle: do not pass user-controlled config at all.

05 Oct 2026
github.com/advisories →
Minor

OpenTelemetry JS 2.12: StackContextManager in @opentelemetry/sdk-trace

Small but useful: StackContextManager now ships in @opentelemetry/sdk-trace, and the project can release from maintenance branches without overwriting the main API docs. Released alongside experimental packages 0.223.0.

06 Oct 2026
github.com →
🔥

Top Stories

Sécurité

Payload CMS : 15 advisories d'un coup, dont une SQL injection sur Postgres/SQLite et un contournement du field access control (critiques)

Le 6 octobre, un énorme lot est tombé pour payload et ses plugins. Le plus grave : une SQL injection dans les adapters Postgres et SQLite quand des utilisateurs non fiables peuvent envoyer des filtres dynamiques ou des joins (corrigé en 3.88.0 ; MongoDB n'est pas concerné), un contournement du field access control sur les auth collections (CVSS 9.3, corrigé en 3.90.0) et une prototype pollution dans @payloadcms/plugin-import-export (CVSS 9.3). Et aussi : fuite d'API keys via des lectures ordinaires, champs cachés exposés par joins polymorphes et tris, ReDoS sur le Content-Type multipart, access control faible dans le plugin MCP et le proxy REST Stripe, et trop peu d'itérations PBKDF2. Passez en 3.90.x sans attendre.

06 Oct 2026
github.com/advisories →
Sécurité

shell-quote : quote() permet une command injection via un saut de ligne après un token de commentaire (CVSS 9.2)

quote() émet un token { comment } sous la forme # + texte, ce qui commente le reste de la ligne — y compris le guillemet ouvrant de la chaîne suivante. Si cette chaîne contient un \n, le commentaire se termine et la suite est exécutée par le shell. Le cas réaliste : quote(parse(untrusted).concat(arg)), car parse() produit des commentaires pour tout # en milieu de mot. Résidu du fix de CVE-2026-9277. Versions 1.8.4 à 1.10.x ; passez en 1.11.0, ou mieux, utilisez execFile/spawn avec un tableau d'arguments.

06 Oct 2026
github.com/advisories →
Sécurité

SDK MCP TypeScript : un serveur MCP malveillant pouvait choisir l'authorization server qui reçoit vos refresh tokens

Dans @modelcontextprotocol/sdk 1.12.0–1.30.1, les credentials OAuth n'étaient pas liés à leur authorization server. Un serveur MCP compromis pouvait désigner son propre AS et le client lui envoyait, sans interaction, le refresh_token et le client_secret stockés. Concerné si vous utilisez authProvider, withOAuth() ou auth()/fetchToken() avec des serveurs non fiables. Corrigé en 1.31.0 et @modelcontextprotocol/client 2.2.0.

06 Oct 2026
github.com/advisories →
Sécurité

sharp 0.35.5 : un bug mémoire de librsvg peut mener à une RCE sur Linux glibc (CVSS 8.9)

Le librsvg upstream avait un bug mémoire permettant, sous certaines conditions, une RCE sur Linux glibc. sharp 0.35.5 embarque librsvg 2.63.2. Si vous traitez des SVG fournis par les utilisateurs, mettez à jour. Contournement : sharp.block({ operation: ['VipsForeignLoadSvg'] }). À noter : les binaires officiels de Node.js ne sont pas compilés en PIE.

06 Oct 2026
github.com/advisories →
🧩

Frameworks & Libraries

Sécurité

Socket.IO : prototype pollution dans @socket.io/cluster-engine via le lookup de session client (high)

Le moteur pour faire tourner Socket.IO en cluster recherchait les sessions client avec une clé contrôlée par la requête, sans protection contre __proto__. Si vous utilisez @socket.io/cluster-engine, passez en 0.1.1. Utilisez Map ou Object.create(null) pour tout lookup par clé client.

05 Oct 2026
github.com/advisories →
Sécurité

pbkdf2 : re-hache les mots de passe longs à chaque itération, ouvrant la voie à un DoS

Le polyfill pbkdf2 (utilisé par crypto-browserify) re-hachait le mot de passe à chaque itération quand il dépassait la taille de bloc HMAC. Avec des mots de passe énormes, un endpoint de login devient un radiateur CPU. Corrigé en 3.1.7. Limitez toujours la longueur du mot de passe avant hachage.

06 Oct 2026
github.com/advisories →
🗄️

Databases & Data

GA

Spanner Omni en GA : Spanner on-prem, sur d'autres clouds ou sur votre laptop, sans horloges atomiques

Google a rendu disponible la version deploy-anywhere de Spanner : un serveur, une zone, multi-zone ou multi-cluster. TrueTime est remplacé par une synchronisation logicielle à erreur bornée et Colossus par des file systems locaux exposés sur le réseau, avec splitting et rééquilibrage automatiques. PostgreSQL est supporté aux côtés de GoogleSQL et Spanner Graph. Developer Edition gratuite hors production, Commercial Edition facturée au vCPU.

07 Oct 2026
infoq.com →
☁️

Cloud & DevOps

Breaking

OpenTelemetry : le Kubernetes Attributes Processor passe en v1.0.0 et renomme des attributs

Le processor qui enrichit logs, métriques et traces avec les métadonnées de pods, namespaces, nœuds et workloads est stable. Le prix : adopter les nouvelles semantic conventions, avec des breaking changes comme k8s.pod.labels → k8s.pod.label. Vérifiez dashboards, alertes et requêtes avant de mettre à jour le Collector ; des feature gates permettent d'émettre les deux noms pendant la transition.

06 Oct 2026
infoq.com →
Mineur

AWS Certificate Manager : émission ACME via PrivateLink

Le trafic ACME vers ACM peut désormais passer par des VPC interface endpoints, sans reconfigurer les clients ACME existants. Utile pour les workloads en sous-réseaux privés sans accès internet.

06 Oct 2026
aws.amazon.com →
🏗️

Architecture & Best Practices

Notable

Cloudflare place des modèles frontier dans un harness pour attaquer son propre WAF : 49 découvertes validées

1 107 tentatives de mutation sur 45 scénarios, 49 découvertes validées par des humains et trois nouvelles détections dans le Managed Ruleset. L'essentiel est le design : un harness Python garde tout ce qui n'est pas délégué — état du scénario, limites d'exécution, construction des requêtes, reproductibilité — et le modèle ne propose que des mutations. Séparer exploration probabiliste et validation déterministe est le pattern à reprendre.

07 Oct 2026
infoq.com →
Sécurité

simple-git : le garde-fou des opérations dangereuses ignore trailer.<token>.cmd et les includes de config (CVSS 9.2)

Quatre advisories pour simple-git et @simple-git/argv-parser : trailer.<token>.cmd n'est pas considéré comme dangereux, pas plus que les includes de config Git, VISUAL échappe à la détection d'éditeurs et les abréviations d'options longues contournent le plugin — résidu de CVE-2026-28291. Si des valeurs non fiables atteignent SimpleGitOptions.config, c'est une RCE. Corrigé en 4.0.1.

05 Oct 2026
github.com/advisories →
Mineur

OpenTelemetry JS 2.12 : StackContextManager dans @opentelemetry/sdk-trace

Petite release utile : StackContextManager arrive dans @opentelemetry/sdk-trace, et le projet peut publier depuis des branches de maintenance sans écraser la doc de main. Publiée avec les paquets expérimentaux 0.223.0.

06 Oct 2026
github.com →