← Actus Dev

Dev News : tsrs, un portage Rust de TypeScript, et six CVE undici

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

Cloudflare y VoidZero presentan tsrs, un port del compilador de TypeScript a Rust

Cloudflare anunció tsrs, un port experimental del compilador de TypeScript a Rust que desarrolla con VoidZero y Max Schwenk, incubado dentro del toolchain de Oxc y en colaboración con el equipo de TypeScript. Aclaran que no es un fork: el diseño del lenguaje sigue en manos de Microsoft. Prometen hasta 8x de velocidad en el type checking, sigue a TypeScript 7 y trae un build tsrs/wasm para chequear tipos en el browser o en Workers sin arrastrar un garbage collector. Ojo con esto: tsrs sale con código 2 ante errores de tipos, donde tsc sale con 1, y eso te rompe un script de CI sin avisar. Si seguís en TS 5 o 6, primero pasá por el port nativo en Go (tsgo). Licencia Apache-2.0.

27 Oct 2026
infoq.com →
Seguridad

undici: seis advisories, incluido un bypass de validación TLS y cache poisoning

El cliente HTTP que está detrás del fetch de Node publicó seis advisories en GHSA el mismo día. Los pesados: CVE-2026-109383 (CVSS 7.4), donde las opciones tls pasadas a un Agent se descartan y se saltea la validación del certificado; CVE-2026-109829 (7.4), cache poisoning y fuga entre usuarios por redirects cross-origin; y CVE-2026-87018, DoS por renegociación TLS 1.2. Hay dos DoS más en el cliente WebSocket y uno en la descompresión. Los fixes ya estaban en 6.29.1, 7.30.1 y 8.12.2 desde el 15 de octubre: si tu lockfile tiene undici directo (o vía tooling de SSR), actualizá ya.

27 Oct 2026
GitHub Advisory →
Seguridad

better-auth CVE-2026-114607 (CVSS 9.1): el state de OAuth funciona como magic link

La librería de auth favorita de los stacks Next.js/TanStack tuvo tres advisories juntas. La crítica: el valor state de OAuth se podía usar como magic link para iniciar sesión como otro usuario, en >= 1.4.0-beta.18, < 1.7.7. Además, el OAuth Proxy permitía otro login ajeno (high) y la aprobación de device login no mostraba qué cliente ni qué permisos pedía. Si estás en una 1.7.x vieja, subí a la última ya: esto no es para dejarlo para el sprint que viene.

27 Oct 2026
GitHub Advisory →
⚛️

React

Destacado

React Router 8.5.1: <Await unstable_promise> sobre el use() de React

En Data y Framework mode (incluidas las variantes RSC), los client components pueden usar el use() de React con <Await unstable_promise>, manteniendo render-prop children, useAsyncValue y useAsyncError. Pasás resolve o unstable_promise, nunca los dos. El patch además acota el procesamiento del route manifest en el server para paths con expansión cara, arregla un URIError con percent-encoding malformado en dev con ssr: false, y hace que los errores de revalidación de fetchers caigan en el boundary correcto. Salió en paralelo 7.18.5.

27 Oct 2026
github.com/remix-run →
Seguridad

Satori CVE-2026-94545: escape incompleto en el SVG generado

Satori, el motor que convierte JSX en SVG detrás de las imágenes Open Graph de Vercel, no escapaba ciertos valores, así que contenido manipulado podía interpretarse como markup SVG. Afecta >= 0.0.27, < 0.33.5 y no hay workaround completo: o actualizás, o no le pasás contenido del usuario. Si generás OG images con títulos que vienen de un form, revisá tu árbol de dependencias.

27 Oct 2026
GitHub Advisory →
📱

React Native

Release

React Native 0.88.1: Release en iOS con -O2 y SwiftPM que no toca el pbxproj

El código C/C++/Objective-C de React Native ahora compila con -O2 en vez de -Os en Release en iOS, igual que Android. Y spm add/spm update escriben los build settings en ReactNativeSPM/ReactNativeSPM.xcconfig, así un bump de versión ya no te ensucia el project.pbxproj. Ojo con esto: si tu configuración usa su propio xcconfig, tenés que hacer #include del generado, y los target settings que pisan el valor de RN necesitan $(inherited); spm te imprime el fix exacto. También hay fixes de Yoga (flex shrink) y nuevos forwards en JSI.

27 Oct 2026
github.com/facebook →
🧩

JS Frameworks

Beta

Solid 2.0.0-rc.19: hidratación de <Errored> y <Loading> mucho más sólida

Otra RC enfocada en streaming SSR. Un async memo que resuelve a un elemento ahora se rechaza con el diagnóstico nuevo ASYNC_MEMO_ELEMENT en vez de colgar la hidratación para siempre: devolvé datos del memo y renderizá el JSX afuera. Un <Errored> alrededor de un <Loading> que falla en un render streameado ya pinta el fallback en el HTML del server y el cliente lo adopta, y los boundaries hidratados en estado de error ahora se recuperan cuando cambian sus inputs. Se nota que 2.0 está cerca.

27 Oct 2026
github.com/solidjs →
🛠️

Developer Tools

Seguridad

XSS en TinyMCE (CVSS 8.5) y CKEditor 5 (CVSS 8.1) el mismo día

Los dos editores rich text más usados tuvieron XSS juntos. TinyMCE (CVE-2026-116675, CVSS v4 8.5) por la serialización de data-mce-object en el plugin media: arreglado en 8.9.3 y 7.9.4. CKEditor 5 (CVE-2026-116688, CVSS 8.1) por un prototype pollution en es-toolkit al procesar atributos style: arreglado en 47.7.4 y 48.5.1. Si tu CMS o backoffice acepta HTML pegado por usuarios, esto va primero en la lista.

27 Oct 2026
GitHub Advisory →
🔥

Top Stories

Breaking

Cloudflare and VoidZero introduce tsrs, a Rust port of the TypeScript compiler

Cloudflare announced tsrs, an experimental Rust port of the TypeScript compiler built with VoidZero and Max Schwenk, incubated inside the Oxc toolchain and developed with the TypeScript team. It is explicitly not a fork: Microsoft keeps control of the language design. Cloudflare claims up to 8x faster type checking; it tracks TypeScript 7 and ships a tsrs/wasm build so checks can run in a browser or on Workers without a garbage collector. Watch out: tsrs exits with code 2 on type errors where tsc exits 1, enough to quietly break a CI script. Teams on TS 5 or 6 should adopt Microsoft's native Go port (tsgo) first. Apache-2.0 licensed.

27 Oct 2026
infoq.com →
Security

undici: six advisories, including a TLS validation bypass and cache poisoning

The HTTP client behind Node's fetch landed six advisories in GHSA on one day. The heavy ones: CVE-2026-109383 (CVSS 7.4), where tls options passed to an Agent are dropped and certificate validation is skipped; CVE-2026-109829 (7.4), cache poisoning and cross-user disclosure via cross-origin redirects; and CVE-2026-87018, DoS via TLS 1.2 renegotiation. Two more DoS bugs hit the WebSocket client and one the decompressor. Fixes have been in 6.29.1, 7.30.1 and 8.12.2 since October 15: if your lockfile pulls undici directly (or through SSR tooling), upgrade now.

27 Oct 2026
GitHub Advisory →
Security

better-auth CVE-2026-114607 (CVSS 9.1): OAuth state works as a magic link

The go-to auth library for Next.js/TanStack stacks got three advisories at once. The critical one: the OAuth state value could be replayed as a magic link to sign in as another user, affecting >= 1.4.0-beta.18, < 1.7.7. The OAuth Proxy also allowed signing in as someone else (high), and device-login approval did not show the requesting client or permissions. If you are on an older 1.7.x, upgrade to the latest now.

27 Oct 2026
GitHub Advisory →
⚛️

React

Notable

React Router 8.5.1: <Await unstable_promise> on top of React's use()

In Data and Framework modes (including the RSC variants), client components can opt into React's use() with <Await unstable_promise>, keeping render-prop children, useAsyncValue and useAsyncError. Pass exactly one of resolve or unstable_promise. The patch also bounds server route-manifest processing for paths with expensive route expansion, fixes a URIError on malformed percent-encoding in ssr: false dev, and routes fetcher revalidation errors to the nearest boundary. 7.18.5 shipped alongside.

27 Oct 2026
github.com/remix-run →
Security

Satori CVE-2026-94545: improper escaping in generated SVG

Satori, the JSX-to-SVG engine behind Vercel's Open Graph images, did not escape certain values, so crafted input could be interpreted as SVG markup. It affects >= 0.0.27, < 0.33.5 and there is no complete workaround besides upgrading or not rendering attacker-controlled content. If your OG images render user-supplied titles, check your dependency tree.

27 Oct 2026
GitHub Advisory →
📱

React Native

Release

React Native 0.88.1: iOS Release builds with -O2 and SwiftPM stops touching pbxproj

React Native's C/C++/Objective-C code now compiles with -O2 instead of -Os in iOS Release builds, matching Android. spm add/spm update now write build settings to ReactNativeSPM/ReactNativeSPM.xcconfig, so a version bump no longer changes project.pbxproj. Heads up: a configuration with its own xcconfig must #include the generated file, and target settings that hide React Native's value need $(inherited); spm prints the exact fix. Plus Yoga flex-shrink fixes and new JSI forwards.

27 Oct 2026
github.com/facebook →
🧩

JS Frameworks

Beta

Solid 2.0.0-rc.19: much sturdier <Errored> and <Loading> hydration

Another RC focused on streaming SSR. An async memo resolving to an element is now rejected with the new ASYNC_MEMO_ELEMENT diagnostic instead of hanging hydration forever: return data from the memo and render the JSX from it. An <Errored> around a <Loading> that fails during a streamed render now draws its fallback in the server HTML and the client adopts it, and boundaries hydrated in the error state now recover when their inputs change.

27 Oct 2026
github.com/solidjs →
🛠️

Developer Tools

Security

XSS in TinyMCE (CVSS 8.5) and CKEditor 5 (CVSS 8.1) on the same day

The two most widely used rich-text editors got XSS fixes together. TinyMCE (CVE-2026-116675, CVSS v4 8.5) via data-mce-object serialization in the media plugin, fixed in 8.9.3 and 7.9.4. CKEditor 5 (CVE-2026-116688, CVSS 8.1) via prototype pollution in es-toolkit when processing style attributes, fixed in 47.7.4 and 48.5.1. If your CMS or back office accepts user-pasted HTML, put this first.

27 Oct 2026
GitHub Advisory →
🔥

Top Stories

Breaking

Cloudflare et VoidZero présentent tsrs, un portage Rust du compilateur TypeScript

Cloudflare a annoncé tsrs, un portage Rust expérimental du compilateur TypeScript développé avec VoidZero et Max Schwenk, incubé dans la chaîne Oxc en collaboration avec l'équipe TypeScript. Ce n'est pas un fork : Microsoft garde la main sur le langage. Cloudflare annonce une vérification des types jusqu'à 8x plus rapide ; tsrs suit TypeScript 7 et fournit un build tsrs/wasm pour vérifier dans le navigateur ou sur Workers. Attention : tsrs sort avec le code 2 en cas d'erreur de type, là où tsc sort avec 1, de quoi casser un script de CI. Sous TS 5 ou 6, passez d'abord par le portage Go (tsgo). Licence Apache-2.0.

27 Oct 2026
infoq.com →
Sécurité

undici : six avis, dont un contournement de validation TLS et un empoisonnement de cache

Le client HTTP derrière le fetch de Node a publié six avis GHSA le même jour. Les plus graves : CVE-2026-109383 (CVSS 7.4), où les options tls d'un Agent sont ignorées et la validation du certificat sautée ; CVE-2026-109829 (7.4), empoisonnement de cache et fuite entre utilisateurs via des redirections cross-origin ; et CVE-2026-87018, un DoS par renégociation TLS 1.2. Deux autres DoS touchent le client WebSocket et un la décompression. Les correctifs sont dans 6.29.1, 7.30.1 et 8.12.2 depuis le 15 octobre : mettez à jour.

27 Oct 2026
GitHub Advisory →
Sécurité

better-auth CVE-2026-114607 (CVSS 9.1) : l'état OAuth sert de magic link

La bibliothèque d'auth phare des stacks Next.js/TanStack reçoit trois avis d'un coup. Le critique : la valeur state OAuth pouvait servir de magic link pour se connecter en tant qu'un autre utilisateur, de 1.4.0-beta.18 à 1.7.7 exclu. L'OAuth Proxy permettait aussi une usurpation (high), et l'approbation du device login n'affichait ni le client ni les permissions. Mettez à jour vers la dernière version.

27 Oct 2026
GitHub Advisory →
⚛️

React

Notable

React Router 8.5.1 : <Await unstable_promise> basé sur use() de React

En modes Data et Framework (variantes RSC comprises), les client components peuvent utiliser use() de React via <Await unstable_promise>, en gardant les render-prop children, useAsyncValue et useAsyncError. Passez soit resolve, soit unstable_promise. Le patch borne aussi le traitement du route manifest côté serveur, corrige un URIError en dev avec ssr: false et remonte les erreurs de revalidation des fetchers au bon boundary. 7.18.5 sort en parallèle.

27 Oct 2026
github.com/remix-run →
Sécurité

Satori CVE-2026-94545 : échappement incorrect dans le SVG généré

Satori, le moteur JSX vers SVG derrière les images Open Graph de Vercel, n'échappait pas certaines valeurs : une entrée forgée pouvait être interprétée comme du balisage SVG. Versions >= 0.0.27, < 0.33.5 ; pas de contournement complet hormis la mise à jour ou l'absence de contenu non fiable. Vérifiez vos dépendances si vos images OG affichent des titres saisis par les utilisateurs.

27 Oct 2026
GitHub Advisory →
📱

React Native

Release

React Native 0.88.1 : builds iOS Release en -O2 et SwiftPM ne touche plus le pbxproj

Le code C/C++/Objective-C de React Native compile désormais en -O2 au lieu de -Os dans les builds Release iOS, comme sur Android. spm add/spm update écrivent les réglages dans ReactNativeSPM/ReactNativeSPM.xcconfig : un changement de version ne modifie plus project.pbxproj. Attention : un xcconfig personnalisé doit faire #include du fichier généré, et les réglages de target doivent ajouter $(inherited) ; spm affiche le correctif exact. Aussi : correctifs Yoga et nouveaux forwards JSI.

27 Oct 2026
github.com/facebook →
🧩

JS Frameworks

Bêta

Solid 2.0.0-rc.19 : hydratation de <Errored> et <Loading> bien plus robuste

Encore une RC centrée sur le SSR en streaming. Un memo async qui résout vers un élément est désormais rejeté avec le nouveau diagnostic ASYNC_MEMO_ELEMENT au lieu de bloquer l'hydratation : renvoyez des données et rendez le JSX à partir d'elles. Un <Errored> autour d'un <Loading> qui échoue en streaming affiche son fallback dans le HTML serveur, et le client l'adopte ; les boundaries hydratés en erreur se rétablissent quand leurs entrées changent.

27 Oct 2026
github.com/solidjs →
🛠️

Developer Tools

Sécurité

XSS dans TinyMCE (CVSS 8.5) et CKEditor 5 (CVSS 8.1) le même jour

Les deux éditeurs rich text les plus répandus corrigent un XSS le même jour. TinyMCE (CVE-2026-116675, CVSS v4 8.5) via la sérialisation de data-mce-object dans le plugin media, corrigé en 8.9.3 et 7.9.4. CKEditor 5 (CVE-2026-116688, CVSS 8.1) via une prototype pollution dans es-toolkit sur les attributs style, corrigé en 47.7.4 et 48.5.1. Priorité si votre CMS accepte du HTML collé par les utilisateurs.

27 Oct 2026
GitHub Advisory →