Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-112951— ApostropheCMS: Color field validation bypass allows stored XSS via HTML appended after rgb()/hsl() prefix

Quick assessment

Affected
apostrophecms apostrophe
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

ApostropheCMS 是一个基于 Node.js 的开源内容管理系统。在 4.34.0 版本之前,其颜色字段允许在有效的 或 前缀后附加额外内容,因为其 TinyColor 验证机制并未要求整个输入值必须完全匹配颜色格式。拥有编辑权限的已认证用户可在有效的颜色前缀后存储任意 HTML 代码。当该存储值被渲染时,攻击载荷将被执行,从而引发存储型跨站脚本(XSS)漏洞。该问题已在 4.34.0 版本中得到修复。

CVSS 5.4 · Medium

Possible ATT&CK Techniques 1 AI

T1190 · Exploit Public-Facing Application
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-112951

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
ApostropheCMS: Color field validation bypass allows stored XSS via HTML appended after rgb()/hsl() prefix
Source: CVE Program / CVE List V5
Vulnerability Description
ApostropheCMS is an open-source Node.js content management system. Prior to 4.34.0, the color field accepts trailing content after a valid rgb() or hsl() prefix because its TinyColor validation does not require the entire value to match a color. An authenticated user with edit rights can store arbitrary HTML after a valid color prefix. When the stored value is rendered, the payload executes, resulting in stored XSS. This issue is fixed in version 4.34.0.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
Source: CVE Program / CVE List V5
Vulnerability Type
在Web页面生成时对输入的转义处理不恰当(跨站脚本)
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
apostrophecms apostrophe < 4.34.0 -

II. Public POCs for CVE-2026-112951

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-112951

请登录查看更多情报信息。

Other References for CVE-2026-112951 (4)

Same Patch Batch · apostrophecms · 2026-10-20 · 26 CVEs total

CVE-2026-113658 7.5 HIGH ApostropheCMS: Unauthenticated CSV import requests leave rejected uploads in the system te
CVE-2026-113666 7.1 HIGH ApostropheCMS: Authenticated projection-exclusion prototype-member deletion in @apostrophe
CVE-2026-113653 6.9 MEDIUM ApostropheCMS: The general public can access @apostrophecms/user objects via a relationshi
CVE-2026-112956 6.5 MEDIUM ApostropheCMS: Archive duplicate continuation lets contributors overwrite published conten
CVE-2026-112955 6.5 MEDIUM ApostropheCMS: Import archives can exhaust server storage and deny service
CVE-2026-113649 6.5 MEDIUM ApostropheCMS: Import API bypasses publication roles for protected content
CVE-2026-113659 6.1 MEDIUM ApostropheCMS: Client-side Prototype Pollution in apos.http.parseQuery leading to DOM-base
CVE-2026-112953 6.0 MEDIUM ApostropheCMS: Exposure of Sensitive Information via predictable export filenames
CVE-2026-113652 5.6 MEDIUM ApostropheCMS uploadfs Azure backend leaks account-level SAS token into every public attac
CVE-2026-112958 5.4 MEDIUM ApostropheCMS: Stored XSS via Unescaped Widget Style Attribute Serialization
CVE-2026-113662 5.4 MEDIUM ApostropheCMS import-export: NoSQL injection via update-key value lets a crafted import ma
CVE-2026-113661 5.4 MEDIUM ApostropheCMS: Incomplete CVE-2026-53606: `meta http-equiv=refresh` `content` still ships
CVE-2026-113654 5.3 MEDIUM ApostropheCMS sanitize-html: nonTextTags discard region ends early on an implied close, le
CVE-2026-113664 5.3 MEDIUM ApostropheCMS import-export tar guard misses './..' because it is a literal '../' substrin
CVE-2026-113656 5.3 MEDIUM ApostropheCMS: Unauthenticated unbounded multipart upload → disk-exhaustion DoS
CVE-2026-112954 5.3 MEDIUM ApostropheCMS: Unauthenticated publicApiProjection bypass via search and sort query builde
CVE-2026-113650 5.3 MEDIUM ApostropheCMS sanitize-html: unbounded recursion when re-sanitizing the fallback of a disc
CVE-2026-113655 4.3 MEDIUM ApostropheCMS: Same-parent page reorder in @apostrophecms/page move() re-ranks a restricte
CVE-2026-113660 4.3 MEDIUM ApostropheCMS: Authenticated Object-Level Authorization Bypass in exist-in-locale Reveals
CVE-2026-112957 4.3 MEDIUM ApostropheCMS: GET /api/v1/@apostrophecms/page/:id bypasses viewRole restriction and expos

Showing top 20 of 26 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2026-112951

No comments yet


Leave a comment