Parcourir la source

deps(frontend): move the Tiptap stack to 3.31.1

GHSA-cp6q-959q-f8rh: @tiptap/core's mergeAttributes() copies keys out of
Object.entries() with plain bracket assignment, so an own __proto__ key
from JSON hits the legacy prototype setter rather than writing a
property. The result carries an attacker-controlled prototype while
Object.keys() and own-property checks show nothing, and ProseMirror's
DOMSerializer.renderSpec() enumerates attribute objects with for...in --
so inherited src and onerror land on a rendered <img> and execute.
Medium, CVSS 4.0 6.4, fixed in 3.30.4.

Not reachable here. The advisory needs an untrusted object arriving at
mergeAttributes(), or a custom or dynamic extension that preserves the
attribute object. Nothing under frontend/src calls mergeAttributes or
defines an extension, and RichTextEditor builds a fixed schema from
StarterKit plus six stock extensions whose HTMLAttributes are static
literals. Content crosses as an HTML string rather than JSON, so no own
__proto__ key reaches an attrs object at all -- the DOM parser only
fills attributes the schema declares -- and every read-only render is
sanitized.

Lockfile only: package.json already declared ^3.11.1, so the patched
line was inside the range and only the stale lock held 3.19.0. No
overrides entry needed.

@tiptap/pm has narrowed its dependency set, so prosemirror-markdown,
prosemirror-menu, prosemirror-collab, prosemirror-schema-basic,
prosemirror-trailing-node, markdown-it and linkify-it leave the tree --
16 packages, none imported by this repo. That retires the reachability
note carried for linkify-it in 1.2.5.

eslint, build with the Safari 16 baseline check, i18n parity and 3514
frontend tests across 256 files all pass. npm audit --omit=dev, which
is what CI gates on, reports zero vulnerabilities.
maziggy il y a 3 jours
Parent
commit
9321591158
4 fichiers modifiés avec 203 ajouts et 407 suppressions
  1. 0 0
      CHANGELOG.md
  2. 202 406
      frontend/package-lock.json
  3. 0 0
      static/assets/index-CH-LgsSx.js
  4. 1 1
      static/index.html

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
CHANGELOG.md


Fichier diff supprimé car celui-ci est trop grand
+ 202 - 406
frontend/package-lock.json


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
static/assets/index-CH-LgsSx.js


+ 1 - 1
static/index.html

@@ -26,7 +26,7 @@
 
 
     <!-- Splash screens for iOS -->
     <!-- Splash screens for iOS -->
     <link rel="apple-touch-startup-image" href="/img/android-chrome-512x512.png" />
     <link rel="apple-touch-startup-image" href="/img/android-chrome-512x512.png" />
-    <script type="module" crossorigin src="/assets/index-CQmjKcng.js"></script>
+    <script type="module" crossorigin src="/assets/index-CH-LgsSx.js"></script>
     <link rel="stylesheet" crossorigin href="/assets/index-DR-aOvsI.css">
     <link rel="stylesheet" crossorigin href="/assets/index-DR-aOvsI.css">
   </head>
   </head>
   <body>
   <body>

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff