← Backend & Fullstack

Backend & Fullstack Daily — 9 Oct 2026: fast-jwt falls again, critical Handlebars and Hono v5 RC

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

fast-jwt: 7 advisories, incluido un patch incompleto que reabre RSA→HS256 (CVSS 9.8)

El fix de CVE-2026-34950 solo hacía key.trim() antes de detectar el header PEM, así que cualquier byte inicial que no sea whitespace (zero-width, #, headers) manda la clave pública RSA al camino HMAC: algorithm confusion RSA→HS256 otra vez (CVE-2026-107722, CVSS 9.8). En el mismo lote: JWK público tratado como secreto HMAC, tokens sin firmar aceptados con key vacía, clockTolerance: Infinity que saltea exp/nbf y validators salteados si el payload es un array. Todo se arregla en 6.3.0. Ojo que fast-jwt está debajo de @fastify/jwt: revisá tu lockfile y actualizá YA.

08 Oct 2026
github.com/advisories →
Seguridad

Handlebars 4.7.10: dos JavaScript injection críticas en compile (CVSS 9.2 y 9.8)

Toda la rama 4.0.0–4.7.9 es vulnerable: un bypass del own-property check (CVE-2026-106445, CVSS v4 9.2) y una AST type confusion en compile que esquiva el fix de CVE-2026-33937 (CVE-2026-106446, CVSS 9.8), más una tercera media por embeber templates precompilados inline. Si compilás templates que vienen de usuarios (emails, CMS, reportes), esto es RCE en tu server. Actualizá a 4.7.10 y buscá Handlebars transitivo con pnpm why handlebars.

08 Oct 2026
github.com/advisories →
Beta

Hono v5.0.0-rc.0: ESM-only, Node 22.12+ y los adapters se van a @hono/*

Primera RC de la v5 con breaking changes en serio: se elimina el build CommonJS (en Node necesitás 22.12+, donde require() de ESM igual funciona), hono/bun, hono/aws-lambda, hono/vercel y compañía pasan a paquetes @hono/*, y hono/cloudflare-pages desaparece. En tipos: c.req.json() devuelve unknown y c.req.query() puede traer undefined. Además, un throw que no es Error ahora cae en onError. Golazo para el type safety; leé el migration guide antes de subir.

08 Oct 2026
github.com/honojs →
Beta

Prisma 8.0.0-rc.17: las migraciones ya no pierden datos sin que lo digas explícitamente

--confirm ya no consiente pérdida de datos: prisma migration plan y prisma db update preguntan por cada modelo o campo que se dropearía, y respondés con --delete o con el nuevo --rename User.name:User.fullName que conserva las filas. Bajar una policy de RLS también pide --allow; en CI falla con CLI.CONSENT_REQUIRED. Suma row locks en el client y renombra apply/scope a with/fragment. Si ya probás la 8, cambiá los --confirm de tus pipelines.

08 Oct 2026
github.com/prisma →
🔒

Security

Seguridad

MariaDB Connector/Node.js: dos SQL injection y leak de memoria del proceso

El paquete mariadb trae SQLi por keys de objetos en la expansión de SET con permitSetMultiParamEntries (CVE-2026-107384, CVSS 8.1) y otra en el protocolo de texto cuando la sesión usa NO_BACKSLASH_ESCAPES (CVE-2026-107385). Encima, parámetros GeoJSON malformados exponen memoria no inicializada. Parches en 3.2.5, 3.3.4, 3.4.7 y 3.5.4: placeholders no te salvan si el bug está en el driver.

08 Oct 2026
github.com/advisories →
Seguridad

Hazelcast: un client con pocos privilegios lee memoria arbitraria del miembro (CVSS 9.3)

CVE-2026-107726 (CVSS v4 9.3) más un bypass de autorización en la Predicates API de IMap (8.7). Afecta 5.6.0, 5.5.x antes de 5.5.10 y anteriores a 5.4.5; el fix está en 5.7.0. Si usás Hazelcast como cache distribuida con clients multi-tenant, esto es prioridad.

08 Oct 2026
github.com/advisories →
Seguridad

JHipster: SQLi en el parámetro sort de apps reactivas WebFlux + R2DBC generadas

CVE-2026-107375 (CVSS 8.8): el código que genera generator-jhipster 7.x–9.3 arma el ORDER BY con el parámetro sort sin whitelist. Actualizar el generador a 9.4.0 no arregla las apps que ya generaste: tenés que regenerar o parchear a mano. Lección de siempre: los nombres de columna nunca van parametrizados, van whitelisteados.

08 Oct 2026
github.com/advisories →
Seguridad

Coraza WAF: 11 advisories, varios bypass de OWASP CRS

El WAF en Go recibió un lote grande: colisión de keys JSON (propiedades con puntos que pisan otras en ARGS_POST), Content-Type urlencoded con parámetros que saltea la inspección del body, off-by-one en jsDecode, y varios DoS por recursión. Fix en 3.8.1. Si tu WAF es la única defensa frente a una API vieja, este es un buen recordatorio de que no alcanza.

08 Oct 2026
github.com/advisories →
🧩

Frameworks & Libraries

Seguridad

AdonisJS http-server: route params sin encodear generan open redirects

Si el primer segmento de una ruta es dinámico (/:page) y le pasás input del usuario al generar la URL, un valor que empieza con / produce una URL scheme-relative tipo //evil.com (CVE-2026-107718, CVSS 6.1). Fix en 9.3.0 y 8.2.3.

08 Oct 2026
github.com/advisories →
Patch

Drizzle ORM 0.45.4: postgres-js vuelve a usar prepared statements

Patch chiquito pero con impacto en performance: con el driver postgres-js, un .prepare(name) explícito no estaba generando una prepared query real. Si contabas con eso para hot paths, actualizá.

08 Oct 2026
github.com/drizzle-team →
🗄️

Databases & Data

Release

pgx_bm25 1.0: full-text search con ranking BM25 como índice nativo de PostgreSQL

La extensión de PGX guarda todo el índice en las páginas de la propia relación, así que hereda WAL, crash recovery y replicación física del core. Usa los diccionarios Snowball de Postgres por índice, y las queries complejas se arman con builders que generan un árbol jsonb, así el input del usuario nunca entra como sintaxis. Una alternativa seria a sumar Elasticsearch solo para búsqueda relevante.

07 Oct 2026
postgresql.org →
☁️

Cloud & DevOps

Destacado

Cloudflare Clef: modelos open-weight que deciden en vez de generar texto, en el edge

Clef (27B) y Clef-Flash (9B) reciben un estado y un schema de preguntas tipadas y devuelven una probabilidad por opción permitida en un solo forward pass, sin parsear texto libre. Clef-Flash promedia 38.8 ms de mediana. Para backends con agentes, esto es routing/escalado tipado en el hot path desde Workers AI, sin el clásico JSON.parse rezando.

08 Oct 2026
infoq.com →
🏗️

Architecture & Best Practices

Destacado

Akka probó delivery con IA guiada por specs en 65 proyectos open source

Portando 65 proyectos, Akka vio que specs estructuradas con claims, evidencia y comportamiento tipado mejoran la primera implementación, mientras que los context files fallan en decisiones cross-component. Validaron con los tests originales más auditores de serialización, seguridad, PII, idempotencia y límites arquitectónicos. Dato jugoso: el modelo chico seguía la spec y el grande improvisaba. Spec + tests > prompt largo, otra vez.

05 Oct 2026
infoq.com →
Destacado

Lección JWT: una firma válida no valida el payload

Uno de los advisories de fast-jwt (CVE-2026-107723, CVSS 8.1) muestra el patrón: si el payload firmado es un array JSON, createVerifier saltea exp, aud, iss y compañía y reporta éxito. Buen recordatorio arquitectónico: fijá algorithms explícitos, separá las claves por algoritmo y validá la forma del payload con un schema en tu capa de auth, no confíes solo en la librería.

08 Oct 2026
github.com/advisories →
🔥

Top Stories

Security

fast-jwt: 7 advisories, including an incomplete patch that reopens RSA→HS256 (CVSS 9.8)

The CVE-2026-34950 fix only called key.trim() before PEM header detection, so any non-whitespace leading byte (zero-width chars, #, headers) sends the RSA public key down the HMAC path: RSA→HS256 algorithm confusion all over again (CVE-2026-107722, CVSS 9.8). Same batch: public JWK treated as an HMAC secret, unsigned tokens accepted with an empty key, clockTolerance: Infinity bypassing exp/nbf, and claim validators skipped for array payloads. Everything is fixed in 6.3.0. fast-jwt sits under @fastify/jwt, so check your lockfile and upgrade now.

08 Oct 2026
github.com/advisories →
Security

Handlebars 4.7.10: two critical JavaScript injections in compile (CVSS 9.2 and 9.8)

The whole 4.0.0–4.7.9 line is affected: an own-property check bypass (CVE-2026-106445, CVSS v4 9.2) and an AST type confusion in compile that bypasses the CVE-2026-33937 fix (CVE-2026-106446, CVSS 9.8), plus a medium one for inline-embedded precompiled templates. If you compile user-supplied templates (emails, CMS, reports), that is server-side RCE. Upgrade to 4.7.10 and hunt transitive copies with pnpm why handlebars.

08 Oct 2026
github.com/advisories →
Beta

Hono v5.0.0-rc.0: ESM-only, Node 22.12+ and adapters move to @hono/*

The first v5 RC brings real breaking changes: the CommonJS build is gone (Node needs 22.12+, where require() of ESM still works), hono/bun, hono/aws-lambda, hono/vercel and friends move to @hono/* packages, and hono/cloudflare-pages is removed. On types: c.req.json() returns unknown and c.req.query() may hold undefined. Non-Error throws now land in onError. A clear type-safety win; read the migration guide before bumping.

08 Oct 2026
github.com/honojs →
Beta

Prisma 8.0.0-rc.17: migrations no longer lose data unless you say so

--confirm no longer consents to data loss: prisma migration plan and prisma db update ask about each model or field a plan would drop, answered with --delete or the new --rename User.name:User.fullName, which keeps the rows. Dropping an RLS policy needs --allow; in CI it fails with CLI.CONSENT_REQUIRED. The client also gains row locks, and apply/scope are renamed to with/fragment. Testing v8 already? Replace every --confirm in your pipelines.

08 Oct 2026
github.com/prisma →
🔒

Security

Security

MariaDB Connector/Node.js: two SQL injections and a process memory leak

The mariadb package has SQLi through object keys in SET expansion with permitSetMultiParamEntries (CVE-2026-107384, CVSS 8.1) and another in the text protocol when the session uses NO_BACKSLASH_ESCAPES (CVE-2026-107385). Malformed GeoJSON parameters also expose uninitialized memory. Patched in 3.2.5, 3.3.4, 3.4.7 and 3.5.4: placeholders do not save you when the bug lives in the driver.

08 Oct 2026
github.com/advisories →
Security

Hazelcast: low-privileged client can read arbitrary member memory (CVSS 9.3)

CVE-2026-107726 (CVSS v4 9.3) plus an authorization bypass in the IMap Predicates API (8.7). Affects 5.6.0, 5.5.x before 5.5.10 and anything before 5.4.5; fixed in 5.7.0. If Hazelcast is your distributed cache with multi-tenant clients, prioritize this.

08 Oct 2026
github.com/advisories →
Security

JHipster: SQLi in the sort parameter of generated WebFlux + R2DBC apps

CVE-2026-107375 (CVSS 8.8): code produced by generator-jhipster 7.x–9.3 builds ORDER BY from the sort parameter without a whitelist. Bumping the generator to 9.4.0 does not fix apps you already generated: regenerate or patch by hand. The usual lesson: column names cannot be parameterized, they must be whitelisted.

08 Oct 2026
github.com/advisories →
Security

Coraza WAF: 11 advisories, several OWASP CRS bypasses

The Go WAF got a big batch: JSON key collision (dotted property names overwriting others in ARGS_POST), urlencoded Content-Type parameters skipping body inspection, an off-by-one in jsDecode, and several recursion DoS bugs. Fixed in 3.8.1. If a WAF is the only thing in front of a legacy API, this is your reminder that it is not enough.

08 Oct 2026
github.com/advisories →
🧩

Frameworks & Libraries

Security

AdonisJS http-server: unencoded route params produce open redirects

When a route's first segment is dynamic (/:page) and user input feeds URL generation, a value starting with / yields a scheme-relative URL like //evil.com (CVE-2026-107718, CVSS 6.1). Fixed in 9.3.0 and 8.2.3.

08 Oct 2026
github.com/advisories →
Patch

Drizzle ORM 0.45.4: postgres-js uses prepared statements again

Small patch with a performance angle: with the postgres-js driver, an explicit .prepare(name) was not producing a real prepared query. If your hot paths relied on it, upgrade.

08 Oct 2026
github.com/drizzle-team →
🗄️

Databases & Data

Release

pgx_bm25 1.0: BM25-ranked full-text search as a native PostgreSQL index

PGX's extension keeps the whole index inside the relation's own pages, so it inherits WAL, crash recovery and physical replication from core. It uses Postgres's Snowball dictionaries per index, and complex queries are composed with builders that emit a jsonb query tree, so user input never arrives as query syntax. A serious alternative to bolting on Elasticsearch just for relevance search.

07 Oct 2026
postgresql.org →
☁️

Cloud & DevOps

Notable

Cloudflare Clef: open-weight models that decide instead of generating text, at the edge

Clef (27B) and Clef-Flash (9B) take a state plus a schema of typed questions and return a probability for each allowed option in a single forward pass, with no free-text parsing. Clef-Flash has a 38.8 ms median latency. For agent-heavy backends, that is typed routing/escalation in the hot path from Workers AI, without the hopeful JSON.parse.

08 Oct 2026
infoq.com →
🏗️

Architecture & Best Practices

Notable

Akka tested spec-driven AI delivery across 65 open-source projects

Porting 65 projects, Akka found that structured specs with claims, evidence and typed behavior improve first-pass implementations, while context files fall short on cross-component decisions. Validation used the original tests plus auditors for serialization, security, PII, idempotency and architectural boundaries. Telling detail: the smaller model followed the spec while the larger one improvised. Spec plus tests beats a long prompt, again.

05 Oct 2026
infoq.com →
Notable

JWT lesson: a valid signature does not validate the payload

One fast-jwt advisory (CVE-2026-107723, CVSS 8.1) shows the pattern: when the signed payload is a JSON array, createVerifier skips exp, aud, iss and friends and reports success. A good architectural reminder: pin explicit algorithms, keep keys separate per algorithm, and schema-validate the payload shape in your auth layer instead of trusting the library alone.

08 Oct 2026
github.com/advisories →
🔥

Top Stories

Sécurité

fast-jwt : 7 advisories, dont un correctif incomplet qui rouvre RSA→HS256 (CVSS 9.8)

Le correctif de CVE-2026-34950 se contentait d'un key.trim() avant la détection du header PEM : tout octet initial non blanc (zero-width, #, headers) envoie la clé publique RSA sur le chemin HMAC, d'où une nouvelle confusion d'algorithme RSA→HS256 (CVE-2026-107722, CVSS 9.8). Dans le même lot : JWK publique traitée comme secret HMAC, tokens non signés acceptés avec une clé vide, clockTolerance: Infinity qui ignore exp/nbf, et validateurs ignorés pour un payload tableau. Tout est corrigé en 6.3.0. fast-jwt est sous @fastify/jwt : vérifiez votre lockfile et mettez à jour.

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

Handlebars 4.7.10 : deux injections JavaScript critiques dans compile (CVSS 9.2 et 9.8)

Toute la branche 4.0.0–4.7.9 est touchée : un contournement du contrôle own-property (CVE-2026-106445, CVSS v4 9.2) et une confusion de type d'AST dans compile qui contourne le correctif de CVE-2026-33937 (CVE-2026-106446, CVSS 9.8), plus une moyenne sur les templates précompilés intégrés inline. Si vous compilez des templates fournis par des utilisateurs, c'est du RCE côté serveur. Passez en 4.7.10 et traquez les copies transitives avec pnpm why handlebars.

08 Oct 2026
github.com/advisories →
Bêta

Hono v5.0.0-rc.0 : ESM-only, Node 22.12+ et adapters déplacés vers @hono/*

Première RC de la v5 avec de vrais breaking changes : le build CommonJS disparaît (Node 22.12+ requis, où require() d'ESM fonctionne), hono/bun, hono/aws-lambda, hono/vercel et les autres passent dans des paquets @hono/*, et hono/cloudflare-pages est supprimé. Côté types : c.req.json() renvoie unknown et c.req.query() peut contenir undefined. Les throws non-Error vont désormais dans onError. Lisez le guide de migration avant de monter.

08 Oct 2026
github.com/honojs →
Bêta

Prisma 8.0.0-rc.17 : les migrations ne perdent plus de données sans accord explicite

--confirm ne vaut plus consentement à la perte de données : prisma migration plan et prisma db update demandent pour chaque modèle ou champ supprimé, avec --delete ou le nouveau --rename User.name:User.fullName qui conserve les lignes. Supprimer une policy RLS exige --allow ; en CI, échec avec CLI.CONSENT_REQUIRED. Le client gagne des row locks, et apply/scope deviennent with/fragment.

08 Oct 2026
github.com/prisma →
🔒

Security

Sécurité

MariaDB Connector/Node.js : deux injections SQL et une fuite de mémoire du processus

Le paquet mariadb présente une SQLi via les clés d'objet dans l'expansion SET avec permitSetMultiParamEntries (CVE-2026-107384, CVSS 8.1) et une autre dans le protocole texte quand la session utilise NO_BACKSLASH_ESCAPES (CVE-2026-107385). Des paramètres GeoJSON malformés exposent aussi de la mémoire non initialisée. Corrigé en 3.2.5, 3.3.4, 3.4.7 et 3.5.4.

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

Hazelcast : un client peu privilégié peut lire la mémoire arbitraire d'un membre (CVSS 9.3)

CVE-2026-107726 (CVSS v4 9.3) plus un contournement d'autorisation dans l'API Predicates d'IMap (8.7). Touche 5.6.0, 5.5.x avant 5.5.10 et tout ce qui précède 5.4.5 ; corrigé en 5.7.0.

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

JHipster : SQLi dans le paramètre sort des apps WebFlux + R2DBC générées

CVE-2026-107375 (CVSS 8.8) : le code produit par generator-jhipster 7.x–9.3 construit l'ORDER BY depuis le paramètre sort sans liste blanche. Passer le générateur en 9.4.0 ne corrige pas les apps déjà générées : régénérez ou patchez à la main.

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

Coraza WAF : 11 advisories, plusieurs contournements d'OWASP CRS

Le WAF en Go reçoit un gros lot : collision de clés JSON (propriétés à points écrasant d'autres entrées dans ARGS_POST), paramètres de Content-Type urlencoded qui contournent l'inspection du body, off-by-one dans jsDecode et plusieurs DoS par récursion. Corrigé en 3.8.1.

08 Oct 2026
github.com/advisories →
🧩

Frameworks & Libraries

Sécurité

AdonisJS http-server : des paramètres de route non encodés créent des open redirects

Si le premier segment d'une route est dynamique (/:page) et que l'entrée utilisateur alimente la génération d'URL, une valeur commençant par / donne une URL scheme-relative comme //evil.com (CVE-2026-107718, CVSS 6.1). Corrigé en 9.3.0 et 8.2.3.

08 Oct 2026
github.com/advisories →
Patch

Drizzle ORM 0.45.4 : postgres-js réutilise les prepared statements

Petit patch avec un impact perf : avec le driver postgres-js, un .prepare(name) explicite ne produisait pas de vraie requête préparée. Si vos hot paths en dépendaient, mettez à jour.

08 Oct 2026
github.com/drizzle-team →
🗄️

Databases & Data

Release

pgx_bm25 1.0 : recherche plein texte classée BM25 comme index PostgreSQL natif

L'extension de PGX stocke tout l'index dans les pages de la relation, et hérite donc du WAL, de la crash recovery et de la réplication physique du core. Elle utilise les dictionnaires Snowball de Postgres par index, et les requêtes complexes passent par des builders qui produisent un arbre jsonb. Une vraie alternative à Elasticsearch pour la recherche pertinente.

07 Oct 2026
postgresql.org →
☁️

Cloud & DevOps

Notable

Cloudflare Clef : des modèles open-weight qui décident au lieu de générer du texte, en edge

Clef (27B) et Clef-Flash (9B) prennent un état et un schéma de questions typées et renvoient une probabilité par option autorisée en un seul forward pass, sans parsing de texte libre. Clef-Flash affiche 38,8 ms de latence médiane. Pour des backends à agents, c'est du routage typé dans le hot path via Workers AI.

08 Oct 2026
infoq.com →
🏗️

Architecture & Best Practices

Notable

Akka a testé une livraison IA pilotée par specs sur 65 projets open source

En portant 65 projets, Akka a constaté que des specs structurées avec affirmations, preuves et comportement typé améliorent la première implémentation, tandis que les context files échouent sur les décisions transverses. La validation combinait les tests d'origine et des auditeurs sérialisation, sécurité, PII, idempotence et frontières architecturales. Le petit modèle suivait la spec ; le grand improvisait.

05 Oct 2026
infoq.com →
Notable

Leçon JWT : une signature valide ne valide pas le payload

Un des advisories fast-jwt (CVE-2026-107723, CVSS 8.1) illustre le schéma : si le payload signé est un tableau JSON, createVerifier ignore exp, aud, iss et consorts et renvoie un succès. Rappel d'architecture : fixez des algorithms explicites, séparez les clés par algorithme et validez la forme du payload par schéma dans votre couche d'auth.

08 Oct 2026
github.com/advisories →