CVE-2026-28398
NocoDB Vulnerable to Stored Cross-Site Scripting via Comments and Rich Text Cells
Impact
### Summary User-controlled content in comments and rich text cells was rendered via `v-html` without sanitization, enabling stored XSS. ### Details Comments in `Comments.vue` and rich text in `TextArea.vue` were parsed by markdown-it with `html: true` and injected via `v-html`. The codebase had `vue-dompurify-html` available but these paths used raw `v-html`. Server-side, `Comment.insert()` used `extractProps()` instead of `extractPropsAndSanitize()`. Commenter role is sufficient for the comments vector; Editor role for rich text. This issue was independently reported; see also GHSA-rcph-x7mj-54mm and GHSA-wwp2-x4rj-j8rm for the same root cause found by GitHub Security Lab. ### Impact Stored XSS — malicious scripts execute for any user viewing the comment or cell. ### Credit This issue was reported by [@bugbunny-research](https://github.com/bugbunny-research) (bugbunny.ai).
Affected packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| npm | nocodb | <= 0.301.2 | 0.301.3 |
Affected products
| Vendor | Product | Affected versions |
|---|---|---|
| Nocodb | Nocodb | before 0.301.3 |