Advisory Database
  • Advisories
  • Dependency Scanning
  1. npm
  2. ›
  3. @tiptap/core
  4. ›
  5. GHSA-cp6q-959q-f8rh

GHSA-cp6q-959q-f8rh: Tiptap: mergeAttributes() turns an own __proto__ key into inherited executable DOM attributes

September 2, 2026

@tiptap/core’s public mergeAttributes() helper uses ordinary bracket assignment on keys returned by Object.entries(). An own __proto__ key from JSON therefore invokes the legacy prototype setter on the fresh merged object. The function returns an object whose prototype is attacker-controlled, while Object.keys() and ordinary own-property checks show no attacker attributes.

When that result is used as a ProseMirror DOMOutputSpec attribute object, prosemirror-model’s DOMSerializer.renderSpec() enumerates it with for...in and applies inherited values with setAttribute(). In a browser proof, inherited src and onerror values were copied to an <img> and the error handler executed once. This is per-object prototype manipulation; the proof does not modify global Object.prototype.

References

  • github.com/advisories/GHSA-cp6q-959q-f8rh
  • github.com/ueberdosis/tiptap/commit/01d7af8c983ee5954c63734f4fa46cb23ae3246d
  • github.com/ueberdosis/tiptap/releases/tag/v3.30.4
  • github.com/ueberdosis/tiptap/security/advisories/GHSA-cp6q-959q-f8rh

Code Behaviors & Features

Detect and mitigate GHSA-cp6q-959q-f8rh with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →

Affected versions

All versions starting from 2.0.0-alpha.0 before 3.30.4

Fixed versions

  • 3.30.4

Solution

Upgrade to version 3.30.4 or above.

Impact 8.1 HIGH

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N

Learn more about CVSS

Weakness

  • CWE-1321: Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution')
  • CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Source file

npm/@tiptap/core/GHSA-cp6q-959q-f8rh.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Sun, 08 Nov 2026 00:16:04 +0000.