veilletech.fr
19 sept. Feed du jour
#01 PAYLOAD Article

Payload 3.90 : correctifs critiques et une migration

Quand l'éditeur tait les failles, votre seule mesure d'exposition, c'est votre numéro de version.

Payload 3.90.0, publiée le 18 septembre 2026, regroupe des correctifs de sécurité critiques que l'équipe demande d'installer au plus vite, même sans être concerné par les points listés. Les détails d'exploitation sont tus : les notes décrivent seulement ce que la mise à jour change chez vous — un champ ajouté aux utilisateurs, des uploads durcis, un plafond multipart, des clés d'API qui ne se relisent plus.

3 min de lectureintermédiairevidéo 1:20
Partager
Sommaire4 sections
  1. Ce qui se passe
  2. Ce qu'il faut faire après la mise à jour
  3. Les changements de comportement
  4. À retenir

Ce qui se passe

Payload publie v3.90.0 le 18 septembre 2026 avec un avertissement en tête : la version contient « un ensemble de correctifs de sécurité critiques », et l'équipe recommande de mettre à jour même si aucun des points listés ne vous concerne.

Les notes ne disent rien de l'exploitation ni de la gravité : c'est voulu. Les identifiants CVE et GHSA seront publiés séparément. Ce qui est documenté, c'est l'effet de la mise à jour sur un projet existant, point par point, avec pour chacun « concerné si » et « action requise ».

Ce qu'il faut faire après la mise à jour

Un champ resetPasswordRequestedAt apparaît sur les collections d'utilisateurs : la réinitialisation de mot de passe lève désormais le verrouillage du compte, et la demande de mot de passe oublié est limitée en fréquence. Sur une base relationnelle, il faut donc une migration :

Terminal
pnpm payload generate:types
pnpm payload migrate:create add-reset-password-requested-at
pnpm payload migrate

Les publications et dépublications programmées en attente au moment de la mise à jour sont à recréer. Le code qui met des jobs schedulePublish en file à la main doit passer user: { relationTo, value }.

Les changements de comportement

TypeScript
upload: {
  externalFileHeaderFilter: (headers, context) => {
    if (!context?.isSameOrigin) {
      delete headers.cookie
      delete headers.authorization
    }
    return headers
  },
}

La version embarque aussi une nouvelle version de Lexical : sans effet sur les fonctionnalités intégrées, mais une fonctionnalité d'éditeur maison doit être recompilée et testée. Les dépendances lexical ou @lexical/* installées à la main sont à retirer au profit des réexports de @payloadcms/richtext-lexical/lexical.

Source : Release v3.90.0, payloadcms/payload sur GitHub, 18 septembre 2026.