Veille Angular, semaine 36
Sécurité
- GHSA-f6mr-pjwc-34m4 (27 août, CVSS 8.6, élevée) :
@angular/platform-serverretire les espaces Unicode (comme l'espace insécable U+00A0) viaString.prototype.trim()lors de la résolution d'URL en SSR, alors que le parsing WHATWG conservant ces caractères les laisse passer une validation same-origin faite avecnew URL(input, trustedOrigin). Une URL relative validée comme same-origin peut ainsi devenir une URL protocol-relative pointant vers un domaine attaquant, avec fuite des identifiants attachés à la requête serveur. - GHSA-j3r3-mxqp-r2p4 (27 août, CVSS 8.6, élevée) : la sérialisation des noeuds d'instruction de traitement (
<?...?>) en SSR n'inspectait pas les tags ancêtres de repli (noscript,iframe,noembed,noframes). Une donnée non fiable passée dans un tel noeud peut injecter une séquence de fermeture (</noscript) et faire exécuter le contenu suivant comme du HTML actif. - GHSA-v3p8-whq6-r5jg (27 août, CVSS 8.6, élevée) : même famille de bug, cette fois la traversée des ancêtres du sérialiseur ne franchissait pas les limites de
DocumentFragmentcréées par un élément<template>, laissant du contenu non échappé dans les mêmes éléments de repli. - Les trois failles ci-dessus touchent
@angular/platform-serverde 20.0.0 à 22.1.3 et sont corrigées dans 22.1.4, 21.2.22 et 20.3.30 ; la ligne 19 est en fin de support et ne reçoit pas de correctif. - CVE-2026-14257 (CVSS 7.5, élevée) dans
brace-expansion: la fonctionexpand()borne le nombre de résultats mais pas la longueur de chaque chaîne, ce qui permet un épuisement mémoire par enchaînement de groupes d'accolades. Nx embarque le correctif via la mise à jour versbrace-expansion5.0.9 dans Nx 23.1.2.
Releases Angular core, CLI et Material
- Angular 22.1.4 (26-27 août) : les trois correctifs de sécurité SSR ci-dessus, plus la protection contre la pollution de prototype de
TransferState, l'usage du symbole NaN de la locale dans le formatage des nombres, et le remplacement de crashs par desRuntimeErrortypées quand l'hydratation ne retrouve pas le noeud DOM attendu. - Angular 22.2.0-next.4 (26-27 août) : reprend les correctifs de 22.1.4, avec en plus la déduplication des imports différés partagés entre plusieurs blocs
@deferet le type-checking des blocs@deferavec clé. - Angular 21.2.22 et 20.3.30, lignes LTS (26-27 août) : portage des trois correctifs de sécurité SSR.
- Angular CLI 22.1.6 (26 août) : dans
@angular/build, regroupement des routes prérendues avec partage en mémoire des bundles serveur, exclusion des annotations side-effect dans les builds de tests unitaires ; dans@angular/ssr, propagation du signal d'abandon d'une requête web quand la requête Node correspondante est abandonnée. - Angular CLI 22.2.0-next.5 (26 août) : reprend les correctifs de 22.1.6 avec une prévention de fuite mémoire supplémentaire dans la compilation parallèle et ses caches.
- Angular CLI 21.2.22 et 20.3.35 (26 août) : mise à jour de
webpack-dev-serververs 5.2.6. - Angular Components 22.1.4 (26 août) : correction du sidenav qui restait bloqué lors de bascules rapides, message d'erreur explicite plutôt qu'un crash quand une colonne de table CDK est manquante.
- Angular Components 22.2.0-next.3 (26 août) : reprend les deux correctifs ci-dessus et ajoute l'input
disabledInteractivesurMatMenuItem.
Nx et outillage
- Nx 23.1.2 (26 août), release stable : plus de 60 correctifs, dont la résolution des dépendances peer optionnelles webpack pour Angular, la détection de changement de template/style fiabilisée sous Windows, et la mise à jour de
brace-expansionpour CVE-2026-14257. - Nx 23.2.0-beta.10 (26 août) et 23.2.0-beta.11 (27 août) : sortie pnpm pruned rendue installable et exécutable avec ses modules de workspace, filtrage de la sortie des tâches statiques, cohérence Vitest entre générateurs.
Testing et migration
- Vitest v5.0.0-rc.3 (28 août) :
parseSpecificationssort du statut expérimental, la couverture de code bascule sur les packages@vitest/istanbuljs, correction de la combinaison des filtres de projet et d'un blocage de l'UI navigateur. - Jest v30.5.0 (28 août) :
whenCalledWith()configure une valeur de retour par liste d'arguments sur les mocks,jest.retryTimes()peut désormais rejouer un blocdescribeentier, réécriture du file watcher sur@parcel/watcheretfdir, coût de résolution des modules réduit d'environ 66 %. - Playwright n'a publié aucune nouvelle version cette semaine : la dernière reste la 1.62.1 (30 juillet).
Écosystème et libs communautaires
- NgRx 22.0.0 (24 août), première stable de la série alignée sur Angular 22.
- AnalogJS v2.7.1 (26 août) : passage en stable de l'échappement HTML dans le renderer de code
markedet dans la sortie Mermaid annoncé en beta la semaine dernière. v2.7.1-beta.4 (31 août) : résolution des ancres de fragment (#...) contre le document courant plutôt que dans le vide. - spartan-ng v1.3.4 (27 août) : propagation de l'input de stratégie de scroll à travers les wrappers d'overlay helm, le combobox ne referme plus le popover quand un item est sélectionné à la touche Entrée.
Découvertes
- ng-brutalism (102 étoiles, v0.2.0) : bibliothèque de primitives UI Angular neo-brutalist, API directive-first, signals et zoneless, Tailwind v4, compatible Angular 21. Pourquoi tester : livre un système de composition complet (Surface, Section, Stack, Cluster, Split) pour un style visuel marqué que ni Material ni les kits headless généralistes ne couvrent.
- semantic-components (21 étoiles) : bibliothèque de composants Angular sur Tailwind CSS 4, Angular CDK et Angular Aria, inspirée de shadcn/ui, compatible Angular 21 et plus. Pourquoi tester : porte l'approche shadcn/ui (composants copiés dans le projet plutôt qu'installés en dépendance) sur la pile Angular CDK/Aria native plutôt qu'un portage React.