/

CVE-2026-116688

Severity:

HIGH RISK

(8.1)

Prototype Pollution (CWE-79) in CKEditor 5 Rich Editor

CVE-2026-116688

Awaiting Analysis

Vulnerability type

Category:

Cross-Site Scripting via Prototype Pollution

CWE:

CWE-79

Impact:

Unauthorized JavaScript Execution

Severity:

HIGH RISK

(8.1)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

CKEditor 5 can process crafted style attribute values through a vulnerable prototype-pollution path in its es-toolkit dependency. When malicious editor content is processed in an affected browser context, an attacker may achieve unauthorized JavaScript execution.

CKEditor 5 can process crafted style attribute values through a vulnerable prototype-pollution path in its es-toolkit dependency. When malicious editor content is processed in an affected browser context, an attacker may achieve unauthorized JavaScript execution.

Affected context

The issue occurs in CKEditor 5 deployments using affected releases where incoming editor content can reach style attribute processing. Exploitation depends on crafted content being accepted and processed in a browser context where the resulting JavaScript execution can affect the editor application or its users. The vulnerable dependency path is present in releases before the relevant fixes in the 47.x and 48.x release lines.

The issue occurs in CKEditor 5 deployments using affected releases where incoming editor content can reach style attribute processing. Exploitation depends on crafted content being accepted and processed in a browser context where the resulting JavaScript execution can affect the editor application or its users. The vulnerable dependency path is present in releases before the relevant fixes in the 47.x and 48.x release lines.

Exploit preconditions

  • Attack surface: CKEditor 5 content processing in a web browser - Required access: Ability to submit, inject, or cause processing of crafted

editor content

  • Trigger point: Handling of incoming style attribute values - Why exploitation is possible: A prototype-pollution behavior in the

underlying toolkit can influence processing of attacker-controlled data and

lead to script execution

  • Attack surface: CKEditor 5 content processing in a web browser - Required access: Ability to submit, inject, or cause processing of crafted

editor content

  • Trigger point: Handling of incoming style attribute values - Why exploitation is possible: A prototype-pollution behavior in the

underlying toolkit can influence processing of attacker-controlled data and

lead to script execution

Why this happens

The underlying bug combines unsafe handling of attacker-influenced style attribute values with prototype-pollution behavior in a dependency used by the editor engine. Prototype pollution can modify object properties or inherited behavior in ways that later security-sensitive code does not expect. In this case, the resulting behavior can enable client-side script execution, mapping to CWE-79, Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting').

The underlying bug combines unsafe handling of attacker-influenced style attribute values with prototype-pollution behavior in a dependency used by the editor engine. Prototype pollution can modify object properties or inherited behavior in ways that later security-sensitive code does not expect. In this case, the resulting behavior can enable client-side script execution, mapping to CWE-79, Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting').

Potential impact

  • An attacker may execute JavaScript in a victim's browser context
  • Editor users' session information or accessible application data could be exposed
  • Application actions could be performed with the victim's permissions
  • Stored or reflected malicious content could affect other editor users
  • The issue could contribute to account compromise or content integrity loss
  • An attacker may execute JavaScript in a victim's browser context
  • Editor users' session information or accessible application data could be exposed
  • Application actions could be performed with the victim's permissions
  • Stored or reflected malicious content could affect other editor users
  • The issue could contribute to account compromise or content integrity loss

General mitigation guidance

Mitigation generally focuses on removing unsafe prototype-pollution paths and reducing trust in rich-text input. Use maintained dependencies with secure object-handling behavior, constrain style attributes through an allowlist, and sanitize content before rendering or persistence. Prefer safe-by-default editor configuration, avoid merging untrusted objects into privileged application state, and apply output encoding appropriate to the rendering context. Run the editor with least privilege and isolate sensitive operations from client-controlled content.

Mitigation generally focuses on removing unsafe prototype-pollution paths and reducing trust in rich-text input. Use maintained dependencies with secure object-handling behavior, constrain style attributes through an allowlist, and sanitize content before rendering or persistence. Prefer safe-by-default editor configuration, avoid merging untrusted objects into privileged application state, and apply output encoding appropriate to the rendering context. Run the editor with least privilege and isolate sensitive operations from client-controlled content.

How teams detect issues like this

Detection can include static analysis for unsafe object merging, dynamic property assignment, and dependency versions known to expose prototype-pollution behavior. Code review should examine style attribute handling, object construction, sanitizer configuration, and any path from submitted content to DOM updates. Content-security policies, dependency allowlists, and automated security review tools can provide additional policy enforcement and monitoring. Browser telemetry may also help identify unexpected script execution originating from editor content.

Detection can include static analysis for unsafe object merging, dynamic property assignment, and dependency versions known to expose prototype-pollution behavior. Code review should examine style attribute handling, object construction, sanitizer configuration, and any path from submitted content to DOM updates. Content-security policies, dependency allowlists, and automated security review tools can provide additional policy enforcement and monitoring. Browser telemetry may also help identify unexpected script execution originating from editor content.

Sources

SourceLink
github.comgithub.com/ckeditor/ckeditor5/commit/4d9c5bb34f63cd956d15ccafbe584e14280c86a0
github.comgithub.com/ckeditor/ckeditor5/commit/a750e38635db6a18c5b11599c09f4fd702850423
github.comgithub.com/ckeditor/ckeditor5/releases/tag/v47.7.4
github.comgithub.com/ckeditor/ckeditor5/releases/tag/v48.5.1
github.comgithub.com/ckeditor/ckeditor5/security/advisories/GHSA-rh54-vffm-5fvp

Frequently asked

questions

It can be, when a web application accepts attacker-controlled editor content

and processes that content in a browser using an affected CKEditor 5 release.

Exploitability depends on the application's content submission and rendering

flows.

The attacker generally needs a way to submit, inject, or influence content

containing crafted style attributes. This may require an authenticated editor

account, an exposed content-entry feature, or another application-specific

input path.

Use a release containing the vendor's security fixes, keep the underlying

dependency chain maintained, and enforce strict allowlisting and sanitization

for style attributes and other rich-text input.

Treat editor content as untrusted, avoid unsafe object merges, apply a

context-appropriate sanitizer before rendering, enforce a restrictive Content

Security Policy, and include dependency and browser-side security checks in

the development pipeline.

It can be, when a web application accepts attacker-controlled editor content

and processes that content in a browser using an affected CKEditor 5 release.

Exploitability depends on the application's content submission and rendering

flows.

The attacker generally needs a way to submit, inject, or influence content

containing crafted style attributes. This may require an authenticated editor

account, an exposed content-entry feature, or another application-specific

input path.

Use a release containing the vendor's security fixes, keep the underlying

dependency chain maintained, and enforce strict allowlisting and sanitization

for style attributes and other rich-text input.

Treat editor content as untrusted, avoid unsafe object merges, apply a

context-appropriate sanitizer before rendering, enforce a restrictive Content

Security Policy, and include dependency and browser-side security checks in

the development pipeline.

Find out what's already
exploitable in your codebase.