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.
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.
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.
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.
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.
Tendencias Destacadas
La carrera por un TypeScript nativo ya tiene tres caballos: tsgo de Microsoft en Go, y tsrs y tsc-rs en Rust. Lo que más importa no es la velocidad, sino que sigan a TypeScript 7 sin divergir.
Día de lotes de advisories en el ecosistema JS: undici, better-auth, Nodemailer, CKEditor. Los fixes de undici salieron el 15; la publicación en GHSA llegó doce días después, así que tu scanner recién ahora los marca.
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.
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.
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.
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.
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.
Notable Trends
The native TypeScript race now has three runners: Microsoft's tsgo in Go, plus tsrs and tsc-rs in Rust. What matters most is not raw speed but tracking TypeScript 7 without diverging.
Batch-advisory day across JS: undici, better-auth, Nodemailer, CKEditor. undici's fixes shipped on the 15th but reached GHSA twelve days later, so your scanner is only flagging them now.
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.
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.
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.
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.
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.
Tendances Notables
La course au TypeScript natif compte désormais trois concurrents : tsgo de Microsoft en Go, tsrs et tsc-rs en Rust. L'essentiel n'est pas la vitesse brute mais de suivre TypeScript 7 sans diverger.
Journée d'avis groupés dans l'écosystème JS : undici, better-auth, Nodemailer, CKEditor. Les correctifs undici datent du 15, mais n'ont atteint GHSA que douze jours plus tard.