GHSA-2rqm-h6hv-g79v - odf-kit has HTML injection leading to XSS in odsToHtml() via unescaped style attribute values
### Summary
ODF style values are interpolated into `style="..."` attributes without HTML-escaping in odf-kit's ODS to-HTML renderer (`odsToHtml()`). A double-quote character inside an attacker-controlled style value breaks out of the attribute, allowing arbitrary HTML/attribute injection โ and therefore script execution (XSS) โ from a crafted `.ods` file wherever the rendered output is inserted as HTML, which is the documented purpose of the function.
### Details
Two emission sites in `src/ods/to-html/html-renderer.ts` (before 0.14.0, `src/ods-reader/html-renderer.ts`) write document-controlled values into a `style` attribute without escaping:
- **Cell style.** `buildInlineStyle()` assembles a CSS string from the cell's formatting properties (`fo:color`, `fo:font-size`, `fo:font-family`, `fo:background-color`, `fo:text-align`, etc.) with no escaping, and `renderCell` emits it raw as the cell's `style` attribute.
- **Row height.** `row.height` (from `style:row-height`) is emitted raw into the row element's `style` attribute.
The same defect in the ODT renderer (`odtToHtml()`) is tracked as GHSA-3cgg-c5pp-57h6 (CVE-2026-113787).
### Impact
Any consumer that renders `odsToHtml()` output as HTML gets XSS from a crafted `.ods` file they convert: untrusted file โ arbitrary tags and attributes โ script execution in the host page with the page's origin.
### Patches
Fixed in 0.14.2. Both sites now route document-controlled values through a shared attribute-escaping helper:
- [`1424227`](https://github.com/GitHubNewbie0/odf-kit/commit/1424227d1ca2716a249b623d1456575ff0331dcc): escape style attribute values in the ODS HTML renderer
- [`aa64c73`](https://github.com/GitHubNewbie0/odf-kit/commit/aa64c734ebd7e7be40e35fcda83b1144193c3da2): the shared `escapeAttr` helper
Users should upgrade to 0.14.2 or later.
### Credit
Reported by @PethuKannan.
MEDIUM
Severity & confidence
Source severitymedium
Platform severitymedium
Confidencemedium
Exploitationunknown
CVSS6.1
Affected
Vendorsodf-kit
Productsodf-kit
Reporting sources (1)
GitHub Security Advisories
Timeline & provenance
Published2026-10-23T20:55:31
Last updated2026-10-27T15:37:20
Ingested2026-10-23T20:56:57
FreshnessNEAR-REAL-TIME
Threat typeadvisory
Recommended action
Review the advisory and upgrade affected packages to the first patched version.
Next steps
- Identify affected systems in your environment.
- Apply the vendor patch or mitigation guidance.
- Review logs for indicators described in the advisory.
- Follow the affected vendor/product to track updates.
Confidence explanation
Reported by a single or secondary source; treat as indicative, verify before acting.
Source type: vendor ยท Original: GitHub Security Advisories