pnpm: pacquet crea symlinks fuera del proyecto
Segundo advisory de pnpm en el mismo día (CVSS 7.1): un alias fabricado en el lockfile llega a varios joins de filesystem del install. Con --trust-lockfile o lockfile congelado, los segmentos de traversal creaban links fuera del proyecto o del node_modules. El parche valida nombres de dependencia y cada slot del virtual store antes de crear directorios, links, bins o entradas hoisted.
Browserslist: cache sin eviction = OOM lento
CVE-2026-73089, CVSS 7.5. Los objetos cache y parseCache de index.js crecen sin límite: cada query distinta agrega una entrada que nunca se libera. En un servicio de larga vida que compila con queries dinámicas, el heap sube hasta el OOM. Parcheado en 4.28.7. Es un recordatorio clásico: un cache sin política de eviction es un memory leak con buen marketing.
Grafana saca patches de seguridad en cuatro ramas a la vez
Grafana publicó 13.2.1, 13.1.5, 13.0.8 y 12.4.10 el mismo día, todas con fixes para CVE-2026-12704 y CVE-2026-14199. Cuando un proyecto backportea a cuatro ramas en simultáneo, no es un patch de rutina: planificá la ventana de upgrade de tu stack de observabilidad.
Valkey 9.0.6: use-after-free en RDMA y un bypass de ACL en GEORADIUS
Release marcada SECURITY. GHSA-jcj7-v34w-v9vv: un cliente autenticado podía crashear el server con CLIENT KILL vía use-after-free en el manejo de conexiones RDMA (solo builds con USE_RDMA y listener RDMA). Encima viene un bypass de ACL en GEORADIUS/GEORADIUSBYMEMBER donde los STORE duplicados solo chequeaban la primera key destino, y ahora el RDB load y RESTORE validan payloads en profundidad siempre (sanitize-dump-payload queda como no-op deprecado).
CloudWatch Database Insights ahora ve tu PostgreSQL self-managed
AWS extendió Database Insights a PostgreSQL self-managed corriendo en EC2, vía el CloudWatch agent. Ahora ves RDS, Aurora y tus instancias propias en la misma consola: database load, análisis de wait events, estadísticas a nivel query y métricas de host. Disponible en todas las regiones comerciales. Si tenías dos herramientas de monitoreo porque la mitad de la flota no era managed, esto te unifica el workflow.
MWAA soporta Airflow 3.3.1: tasks con estado durable y SDK en Java/Go
Lo importante de 3.3 son las stateful tasks: una task persiste estado durable entre retries y reruns, lo que habilita cursor tracking y reconexión crash-safe a operaciones en curso. Sumale el Language Task SDK experimental para escribir la lógica en Java o Go manteniendo la orquestación en Python, más particionado de assets ampliado, retry policies customizables y operaciones bulk sobre DAG runs. Se puede lanzar nuevo o upgradear desde 3.2+.
BullMQ 6.3.4 actualiza croner a v4 por seguridad
Patch chiquito pero de dependencia: BullMQ sube el crate Rust croner a v4 por un fix de seguridad. Si tenés repeatable jobs con expresiones cron, es un bump de un renglón — hacelo y seguí.
Cloudflare: scopes OAuth opcionales, se acabó el todo-o-nada
Ahora el dueño del client puede marcar qué permisos el usuario puede deseleccionar en la pantalla de consentimiento. Antes había dos malas opciones: pedir permisos mínimos y romper los casos avanzados, o pedir todo y ver al usuario abandonar el consent screen. La contrapartida es de diseño: tu app tiene que inspectar los scopes concedidos en runtime y degradar features con elegancia, en vez de asumir acceso completo. Con agentes pidiendo permisos amplios que quizá nunca usen, esto pasa de nice-to-have a obligatorio.
workerd v1.20260902.1: container.inspect() sale de experimental
El runtime de Workers saca el flag experimental de container.inspect() y suma tryReadSync/tryWriteSync. Del lado de Durable Objects hay trabajo fuerte de correctitud: serialización de writes de WebSocket a través de la hibernación, retry loop para fetches al actor con propagación del estado del retry gate, y manejo elegante de code updates sobre WebSockets hibernados. Si operás DOs con conexiones largas, este release es de los que importan.
Kinesis Data Streams suma dry run para validar permisos
Ahora podés testear un request de API sin ejecutar la operación, para verificar permisos de forma segura. Chiquito, pero es exactamente lo que necesitás en pipelines de IaC y en scripts de migración donde el AccessDenied aparece a mitad de camino.
CloudWatch Alarms: período de warm-up contra el ruido
Se puede retrasar la evaluación de una alarma después de crearla, para que un recurso nuevo termine de inicializarse y empiece a publicar métricas antes de disparar. Menos falsos positivos en cada deploy con autoscaling. Si tu canal de on-call se llena de alarmas fantasma cada vez que escala el grupo, ponete las pilas con esto.
HashiCorp: el trabajo de plataforma ahora es construir los límites
HCP Terraform se posiciona como capa de gobernanza para infraestructura manejada por agentes: módulos aprobados, policy-as-code, identidades con scope de proyecto y audit trails. Más allá del anuncio, la tesis arquitectónica es la que vale: el equipo de plataforma deja de aprovisionar cada componente a mano y pasa a crear los límites dentro de los cuales la automatización puede operar sin romper los estándares. Es el mismo principio que un bounded context bien puesto — el valor no está en el código que escribís, sino en la frontera que definís.
DRF: el límite de upload de Django no aplica a request.data
CVE-2026-73228. Django levanta RequestDataTooBig cuando accedés a request.body o request.POST, pero el request.data de DRF parseaba igual bodies JSON y urlencoded gigantes, salteando DATA_UPLOAD_MAX_MEMORY_SIZE. Parcheado en 3.17.2. La lección va más allá de Django: cada capa de abstracción que agregás sobre el request puede evadir un control que creías global. Si tu framework envuelve el request, verificá que los límites viajen con él.
pnpm 12.2: los catalogs resuelven dependencias del workspace
La feature es corta pero jugosa: los catalogs ya resuelven dependencias del workspace a través del protocolo workspace:. Además pnpm deploy deja de exigir injectWorkspacePackages — la dependencia linkeada se reescribe como file: en el lockfile de deploy — y los installs en workspaces grandes se aceleran resolviendo cada workspace: una sola vez en lugar de por proyecto. Se sumaron fixes de pnpm audit --fix, de shims en Windows/WSL2 y de hashes del virtual store global en ciclos de dependencias. Nota: instalá directamente 12.2.1 o superior por el advisory de proxy de arriba.
Nx 23.2.0-rc.2: el linter atrapa imports prohibidos vía proyectos internos
El fix interesante del RC es de arquitectura, no de tooling: el linter ahora marca imports externos prohibidos que llegan atravesando proyectos internos. O sea, ya no podés lavar una dependencia baneada haciéndola pasar por una lib intermedia — que es exactamente el agujero por el que se filtran las violaciones de capas en un monorepo grande. Suma soporte de publish con config scoped para pnpm 11+ y coverage por target atomizado en Vitest.
Tendencias Destacadas
Tres de los cuatro top stories de hoy son del mismo tipo: <strong>una dependencia chiquita que rompe una garantía de seguridad enorme</strong>. nanoid tiene 20 líneas de lógica y te deja los session tokens en una constante; mysql2 obedece un auth switch sin mirar si hay TLS. El tamaño del paquete no predice el blast radius.
Dos advisories de pnpm en el mismo día, ambos sobre lo mismo: <strong>el manifiesto del repo es input no confiable</strong>. Un <code>pnpm-workspace.yaml</code> o un lockfile hostiles alcanzan para exfiltrar secrets o escribir symlinks fuera del proyecto. Si tu CI corre <code>install</code> sobre PRs de forks, ese runner es superficie de ataque, no infraestructura.
Los frames de 1 byte en gRPC-Go y el cache sin eviction de Browserslist son el mismo bug con distinta ropa: <strong>un límite que cuenta bytes cuando el costo real está en la cantidad de entradas</strong>. Cada vez que definas un rate limit o un flow control, preguntate qué recurso estás midiendo de verdad.
pnpm: pacquet creates symlinks outside the project
pnpm's second advisory of the day (CVSS 7.1): a crafted lockfile alias reaches several install-time filesystem joins. With --trust-lockfile or a frozen lockfile, traversal segments could create links outside the project or node_modules boundary. The patch validates dependency names and every virtual-store slot before creating directories, links, bins, or hoisted entries.
Browserslist: an unevicted cache means a slow OOM
CVE-2026-73089, CVSS 7.5. The cache and parseCache objects in index.js grow without bound: every distinct query adds an entry that is never released. In a long-lived service compiling with dynamic queries, the heap climbs to OOM. Fixed in 4.28.7. A cache with no eviction policy is a memory leak with good marketing.
Grafana ships security patches across four branches at once
Grafana shipped 13.2.1, 13.1.5, 13.0.8, and 12.4.10 on the same day, all carrying fixes for CVE-2026-12704 and CVE-2026-14199. A simultaneous four-branch backport is not routine maintenance: plan the upgrade window for your observability stack.
Valkey 9.0.6: an RDMA use-after-free and a GEORADIUS ACL bypass
Release flagged SECURITY. GHSA-jcj7-v34w-v9vv: an authenticated client could crash the server via CLIENT KILL through a use-after-free in RDMA connection handling (only builds with USE_RDMA and an RDMA listener). It also fixes an ACL bypass in GEORADIUS/GEORADIUSBYMEMBER where duplicate STORE options checked only the first destination key, and RDB load and RESTORE now always deep-validate payloads (sanitize-dump-payload becomes a deprecated no-op).
CloudWatch Database Insights now sees your self-managed PostgreSQL
AWS extended Database Insights to self-managed PostgreSQL on EC2 through the CloudWatch agent. RDS, Aurora, and your own instances now sit in one console: database load, wait event analysis, query-level statistics, and host metrics. Available in all commercial regions. If you ran two monitoring tools because half the fleet was unmanaged, this unifies the workflow.
MWAA supports Airflow 3.3.1: durable stateful tasks and a Java/Go SDK
The headline in 3.3 is stateful tasks: a task persists durable state across retries and reruns, enabling cursor tracking and crash-safe reconnection to in-flight operations. Add the experimental Language Task SDK for writing task logic in Java or Go while orchestration stays in Python, plus expanded asset partitioning, customizable retry policies, and bulk operations on DAG runs. Launch new or upgrade from 3.2+.
BullMQ 6.3.4 bumps croner to v4 for security
A small dependency patch: BullMQ moves the Rust croner crate to v4 for a security fix. If you run repeatable jobs on cron expressions, it is a one-line bump — take it and move on.
Cloudflare: optional OAuth scopes end the all-or-nothing consent
Client owners can now mark which permissions users may deselect on the consent screen. Previously there were two bad choices: request minimal permissions and break advanced use cases, or request everything and watch users bounce. The design cost is real: your app must inspect granted scopes at runtime and degrade gracefully instead of assuming full access. With agents requesting broad permission sets they may never use, this moves from nice-to-have to mandatory.
workerd v1.20260902.1: container.inspect() leaves experimental
The Workers runtime drops the experimental flag on container.inspect() and adds tryReadSync/tryWriteSync. On the Durable Objects side there is real correctness work: WebSocket writes serialized across hibernation, a retry loop for actor fetch requests with retry-gate state propagation, and graceful handling of code updates on hibernated WebSockets. If you run DOs with long-lived connections, this one matters.
Kinesis Data Streams adds a dry run to validate permissions
You can now test an API request without executing the operation to verify permissions safely. Small, but exactly what you want in IaC pipelines and migration scripts where AccessDenied surfaces halfway through.
CloudWatch Alarms: a warm-up period against the noise
You can delay alarm evaluation after creation so a new resource finishes initializing and starts publishing metrics before it can fire. Fewer false positives on every autoscaling deploy. If your on-call channel fills with phantom alarms whenever the group scales, this is the fix.
HashiCorp: platform work is now about building the boundaries
HCP Terraform positions itself as a governance layer for agent-driven infrastructure: approved modules, policy-as-code, project-scoped identities, and audit trails. Past the announcement, the architectural thesis is what counts: the platform team stops hand-provisioning every component and starts creating the boundaries within which automation can operate without breaking organizational standards. Same principle as a well-placed bounded context — the value is in the frontier you define, not the code you write.
DRF: Django's upload limit does not apply to request.data
CVE-2026-73228. Django raises RequestDataTooBig when you touch request.body or request.POST, but DRF's request.data happily parsed the same oversized JSON and urlencoded bodies, bypassing DATA_UPLOAD_MAX_MEMORY_SIZE. Fixed in 3.17.2. The lesson generalizes: every abstraction layer you stack on the request can route around a control you assumed was global. If your framework wraps the request, verify the limits travel with it.
pnpm 12.2: catalogs resolve workspace dependencies
Short but juicy: catalogs now resolve workspace dependencies through the workspace: protocol. Also, pnpm deploy no longer requires injectWorkspacePackages — a linked workspace dependency is rewritten as a file: dependency in the deploy lockfile — and large-workspace installs speed up by resolving each named workspace: dependency once instead of per project. Plus fixes to pnpm audit --fix, Windows/WSL2 shims, and global virtual-store hashes for dependency cycles. Note: install 12.2.1 or later given the proxy advisory above.
Nx 23.2.0-rc.2: the linter catches banned imports through internal projects
The interesting fix in this RC is architectural, not tooling: the linter now flags banned external imports reached through internal projects. You can no longer launder a banned dependency by routing it through an intermediate lib — which is exactly the hole layering violations slip through in a large monorepo. Also: scoped publish config for pnpm 11+, and per-target coverage directories for atomized Vitest tasks.
Notable Trends
Three of today's four top stories share one shape: <strong>a tiny dependency breaking an enormous security guarantee</strong>. nanoid has twenty lines of logic and can freeze your session tokens into a constant; mysql2 obeys an auth switch without checking whether TLS is up. Package size does not predict blast radius.
Two pnpm advisories on the same day, both making one point: <strong>the repository manifest is untrusted input</strong>. A hostile <code>pnpm-workspace.yaml</code> or lockfile is enough to exfiltrate secrets or write symlinks outside the project. If your CI runs <code>install</code> on fork PRs, that runner is attack surface, not infrastructure.
The 1-byte frames in gRPC-Go and Browserslist's unevicted cache are the same bug in different clothes: <strong>a limit that counts bytes when the real cost lives in the number of entries</strong>. Every time you define a rate limit or flow control, ask which resource you are actually measuring.
pnpm : pacquet crée des symlinks hors du projet
Deuxième advisory pnpm du jour (CVSS 7.1) : un alias forgé dans le lockfile atteint plusieurs joins filesystem à l'install. Avec --trust-lockfile ou un lockfile figé, des segments de traversée créaient des liens hors du projet ou de node_modules. Le correctif valide les noms de dépendance et chaque slot du virtual store.
Browserslist : un cache sans éviction, donc un OOM lent
CVE-2026-73089, CVSS 7.5. Les objets cache et parseCache de index.js croissent sans limite : chaque requête distincte ajoute une entrée jamais libérée. Dans un service longue durée compilant avec des requêtes dynamiques, le heap monte jusqu'à l'OOM. Corrigé en 4.28.7.
Grafana publie des correctifs de sécurité sur quatre branches
Grafana a publié 13.2.1, 13.1.5, 13.0.8 et 12.4.10 le même jour, toutes avec des correctifs pour CVE-2026-12704 et CVE-2026-14199. Un backport simultané sur quatre branches n'est pas de la maintenance de routine.
Valkey 9.0.6 : use-after-free RDMA et contournement d'ACL GEORADIUS
Release marquée SECURITY. GHSA-jcj7-v34w-v9vv : un client authentifié pouvait crasher le serveur via CLIENT KILL grâce à un use-after-free dans la gestion des connexions RDMA (uniquement builds USE_RDMA avec listener RDMA). S'y ajoute un contournement d'ACL sur GEORADIUS/GEORADIUSBYMEMBER où les options STORE dupliquées ne vérifiaient que la première clé de destination.
CloudWatch Database Insights voit désormais votre PostgreSQL auto-géré
AWS a étendu Database Insights à PostgreSQL auto-géré sur EC2 via l'agent CloudWatch. RDS, Aurora et vos propres instances dans une seule console : charge, analyse des wait events, statistiques par requête et métriques hôte. Disponible dans toutes les régions commerciales.
MWAA supporte Airflow 3.3.1 : tâches à état durable et SDK Java/Go
L'essentiel de 3.3 : les stateful tasks, qui persistent un état durable entre retries et reruns, permettant le suivi de curseur et la reconnexion crash-safe. S'ajoutent le Language Task SDK expérimental (Java ou Go, orchestration en Python), le partitionnement d'assets étendu, des retry policies personnalisables et des opérations bulk sur les DAG runs.
BullMQ 6.3.4 passe croner en v4 pour la sécurité
Petit patch de dépendance : BullMQ passe le crate Rust croner en v4 pour un correctif de sécurité. Si vous utilisez des repeatable jobs avec des expressions cron, c'est un bump d'une ligne.
Cloudflare : des scopes OAuth optionnels, fini le tout ou rien
Les propriétaires de client peuvent marquer les permissions que l'utilisateur peut désélectionner sur l'écran de consentement. Avant : demander le minimum et casser les cas avancés, ou tout demander et voir l'utilisateur fuir. Le coût de conception est réel : l'app doit inspecter les scopes accordés à l'exécution et se dégrader proprement.
workerd v1.20260902.1 : container.inspect() quitte l'expérimental
Le runtime Workers retire le flag expérimental de container.inspect() et ajoute tryReadSync/tryWriteSync. Côté Durable Objects : sérialisation des writes WebSocket à travers l'hibernation, boucle de retry pour les fetch d'acteur avec propagation de l'état du retry gate, et gestion propre des mises à jour de code sur WebSockets hibernés.
Kinesis Data Streams ajoute un dry run pour valider les permissions
Vous pouvez désormais tester une requête API sans exécuter l'opération afin de vérifier les permissions. Modeste, mais précisément ce qu'il faut dans les pipelines IaC et les scripts de migration.
CloudWatch Alarms : une période de warm-up contre le bruit
Vous pouvez retarder l'évaluation d'une alarme après sa création, le temps qu'une ressource neuve s'initialise et publie ses métriques. Moins de faux positifs à chaque déploiement avec autoscaling.
HashiCorp : le travail de plateforme consiste à bâtir les limites
HCP Terraform se positionne en couche de gouvernance pour l'infrastructure pilotée par agents : modules approuvés, policy-as-code, identités à portée projet et pistes d'audit. Au-delà de l'annonce, la thèse architecturale compte : l'équipe plateforme cesse de provisionner à la main et crée les limites dans lesquelles l'automatisation peut opérer.
DRF : la limite d'upload de Django ne s'applique pas à request.data
CVE-2026-73228. Django lève RequestDataTooBig sur request.body ou request.POST, mais request.data de DRF parsait les mêmes bodies JSON et urlencoded surdimensionnés, contournant DATA_UPLOAD_MAX_MEMORY_SIZE. Corrigé en 3.17.2. La leçon se généralise : chaque couche d'abstraction sur la requête peut contourner un contrôle supposé global.
pnpm 12.2 : les catalogs résolvent les dépendances du workspace
Court mais dense : les catalogs résolvent désormais les dépendances du workspace via le protocole workspace:. De plus, pnpm deploy n'exige plus injectWorkspacePackages, et les installs sur gros workspaces accélèrent en résolvant chaque dépendance workspace: une seule fois. Note : installez 12.2.1 ou plus récent au vu de l'advisory proxy ci-dessus.
Nx 23.2.0-rc.2 : le linter attrape les imports interdits via projets internes
Le correctif intéressant est architectural : le linter signale désormais les imports externes interdits atteints via des projets internes. Impossible de blanchir une dépendance bannie en la routant par une lib intermédiaire — précisément la faille des violations de couches dans un gros monorepo. Aussi : config de publish scoped pour pnpm 11+, et coverage par target atomisé sous Vitest.
Tendances Notables
Trois des quatre top stories du jour partagent une forme : <strong>une dépendance minuscule qui casse une garantie de sécurité énorme</strong>. nanoid tient en vingt lignes et peut figer vos tokens de session en une constante ; mysql2 obéit à un auth switch sans vérifier TLS. La taille du paquet ne prédit pas le rayon d'impact.
Deux advisories pnpm le même jour, avec le même message : <strong>le manifeste du dépôt est une entrée non fiable</strong>. Un <code>pnpm-workspace.yaml</code> ou un lockfile hostile suffit à exfiltrer des secrets ou à écrire des symlinks hors du projet. Si votre CI lance <code>install</code> sur des PR de forks, ce runner est une surface d'attaque.
Les frames d'un octet dans gRPC-Go et le cache sans éviction de Browserslist sont le même bug déguisé : <strong>une limite qui compte les octets alors que le coût réel tient au nombre d'entrées</strong>. Chaque fois que vous définissez un rate limit ou un flow control, demandez-vous quelle ressource vous mesurez vraiment.