### Impact A stored XSS affecting RichText fields. RichTextValue.output returns the raw, unsanitized stored value whenever the stored mimeType equals the outputMimeType. Because the safe-HTML output type (`text/x-html-safe`) is the type that signifies "already sanitized", any value whose stored mimeType equals it bypasses the safe_html transform entirely on render. The transform itself is sound — it correctly strips `on*` event-handler attributes and `javascript:/data:` URIs; the defect is that it is never invoked for these values. The unsanitized value is then emitted via `tal:content="structure ..."`, which performs no escaping, so the payload executes in the viewer's browser. This can be a problem when a RichText field is wrongly defined in code with a `mimeType` and `outputMimeType` that are the same, or when the REST API is used to the same effect. ### Patches The problem has been patched: * For Plone 6.0, upgrade `plone.app.textfield` to 2.0.2. * For Plone 6.1, upgrade `plone.app.textfield` to 3.0.2. * For Plone 6.2, upgrade `plone.app.textfield` to 4.0.1. ### Workarounds There is no known workaround.
### Impact A stored XSS affecting RichText fields. RichTextValue.output returns the raw, unsanitized stored value whenever the stored mimeType equals the outputMimeType. Because the safe-HTML output type (`text/x-html-safe`) is the type that signifies "already sanitized", any value whose stored mimeType equals it bypasses the safe_html transform entirely on render. The transform itself is sound — it correctly strips `on*` event-handler attributes and `javascript:/data:` URIs; the defect is that it is never invoked for these values. The unsanitized value is then emitted via `tal:content="structure ..."`, which performs no escaping, so the payload executes in the viewer's browser. This can be a problem when a RichText field is wrongly defined in code with a `mimeType` and `outputMimeType` that are the same, or when the REST API is used to the same effect. ### Patches The problem has been patched: * For Plone 6.0, upgrade `plone.app.textfield` to 2.0.2. * For Plone 6.1, upgrade `plone.app.textfield` to 3.0.2. * For Plone 6.2, upgrade `plone.app.textfield` to 4.0.1. ### Workarounds There is no known workaround.
Update plone.app.textfield to 2.0.2; plone.app.textfield to 3.0.2; plone.app.textfield to 4.0.1 if you use the affected versions. Test the change in a non-production environment first.
Local check
hol-guard supply-chain scanplone.app.textfield: Stored XSS by spoofing mime type affects plone.app.textfield (pip), plone.app.textfield (pip), plone.app.textfield (pip). Severity is medium. ### Impact A stored XSS affecting RichText fields. RichTextValue.output returns the raw, unsanitized stored value whenever the stored mimeType equals the outputMimeType. Because the safe-HTML output type (`text/x-html-safe`) is the type that signifies "already sanitized", any value whose stored mimeType equals it bypasses the safe_html transform entirely on render. The transform itself is sound — it correctly strips `on*` event-handler attributes and `javascript:/data:` URIs; the defect is that it is never invoked for these values. The unsanitized value is then emitted via `tal:content="structure ..."`, which performs no escaping, so the payload executes in the viewer's browser. This can be a problem when a RichText field is wrongly defined in code with a `mimeType` and `outputMimeType` that are the same, or when the REST API is used to the same effect. ### Patches The problem has been patched: * For Plone 6.0, upgrade `plone.app.textfield` to 2.0.2. * For Plone 6.1, upgrade `plone.app.textfield` to 3.0.2. * For Plone 6.2, upgrade `plone.app.textfield` to 4.0.1. ### Workarounds There is no known workaround.
AI coding agents often install or upgrade packages automatically in pip. A medium vulnerability in a dependency can be pulled into a project through a normal install or update without a human reviewing the change, expanding the blast radius from a single package to every agent workspace that depends on it.
| Package | Affected range | Fixed version |
|---|---|---|
| plone.app.textfieldpip | <2.0.2 | 2.0.2 |
| plone.app.textfieldpip | >=3.0.0,<3.0.2 | 3.0.2 |
| plone.app.textfieldpip | =4.0.0 | 4.0.1 |
Fixed versions are reported by the source feed; confirm compatibility before updating.
Reported by GitHub Security Advisories (ghsa).
HOL Guard can help your team review package activity against supported protection paths.
Explore HOL GuardUpdate plone.app.textfield to 2.0.2; plone.app.textfield to 3.0.2; plone.app.textfield to 4.0.1 if you use the affected versions. Test the change in a non-production environment first.
Local check
hol-guard supply-chain scanplone.app.textfield: Stored XSS by spoofing mime type affects plone.app.textfield (pip), plone.app.textfield (pip), plone.app.textfield (pip). Severity is medium. ### Impact A stored XSS affecting RichText fields. RichTextValue.output returns the raw, unsanitized stored value whenever the stored mimeType equals the outputMimeType. Because the safe-HTML output type (`text/x-html-safe`) is the type that signifies "already sanitized", any value whose stored mimeType equals it bypasses the safe_html transform entirely on render. The transform itself is sound — it correctly strips `on*` event-handler attributes and `javascript:/data:` URIs; the defect is that it is never invoked for these values. The unsanitized value is then emitted via `tal:content="structure ..."`, which performs no escaping, so the payload executes in the viewer's browser. This can be a problem when a RichText field is wrongly defined in code with a `mimeType` and `outputMimeType` that are the same, or when the REST API is used to the same effect. ### Patches The problem has been patched: * For Plone 6.0, upgrade `plone.app.textfield` to 2.0.2. * For Plone 6.1, upgrade `plone.app.textfield` to 3.0.2. * For Plone 6.2, upgrade `plone.app.textfield` to 4.0.1. ### Workarounds There is no known workaround.
AI coding agents often install or upgrade packages automatically in pip. A medium vulnerability in a dependency can be pulled into a project through a normal install or update without a human reviewing the change, expanding the blast radius from a single package to every agent workspace that depends on it.
| Package | Affected range | Fixed version |
|---|---|---|
| plone.app.textfieldpip | <2.0.2 | 2.0.2 |
| plone.app.textfieldpip | >=3.0.0,<3.0.2 | 3.0.2 |
| plone.app.textfieldpip | =4.0.0 | 4.0.1 |
Fixed versions are reported by the source feed; confirm compatibility before updating.
Reported by GitHub Security Advisories (ghsa).
HOL Guard can help your team review package activity against supported protection paths.
Explore HOL Guard