Просмотр исходного кода

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 5 дней назад
Родитель
Сommit
3e6896de2d
3 измененных файлов с 203 добавлено и 407 удалено
  1. 202 406
      frontend/package-lock.json
  2. 0 0
      static/assets/index-CH-LgsSx.js
  3. 1 1
      static/index.html

Разница между файлами не показана из-за своего большого размера
+ 202 - 406
frontend/package-lock.json


Разница между файлами не показана из-за своего большого размера
+ 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>

Некоторые файлы не были показаны из-за большого количества измененных файлов