Skip to main content

Helium Platform EUVDEUVD-2026-102221

| CVE-2026-55876 LOW
Cross-site Scripting (XSS) (CWE-79)
2026-10-15 GitHub_M
3.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as planner user
  2. Delivery
    POST crafted SVG to /planner/attachments/
  3. Exploit
    Blocklist omission allows image/svg+xml
  4. Execution
    Victim opens public attachment URL
  5. Impact
    Embedded script executes for phishing/content spoofing

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires (1) an authenticated account permitted to use the POST /planner/attachments/ endpoint, and (2) a victim to actively open the resulting public attachment URL. The specific technical prerequisite is that the uploaded SVG is served with the image/svg+xml content type (or HTML served as text/html), which conf/configs/common.py failed to list in BLOCKED_ATTACHMENT_EXTENSIONS / BLOCKED_ATTACHMENT_MIME_TYPES prior to 2.2.60. A critical LIMITING factor is that attachments are served from a SEPARATE ORIGIN from the application, so the same-origin policy blocks the script from reading application cookies, tokens, or storage - restricting realistic impact to phishing and persistent spoofed content rather than session or account compromise. Affected versions are those prior to 2.2.60.

Impact

This is a genuinely low-priority issue despite being network-reachable. The CVSS vector (CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:L/A:N) scores 3.5 (Low), and the signals are internally consistent rather than conflicting: network vector but requires authentication (PR:L) to upload the attachment, and victim interaction (UI:R) to open the malicious public URL. The most important risk-limiting signal comes from the description itself, not the vector: the attachment storage uses a SEPARATE ORIGIN from the application, so the same-origin policy prevents the injected SVG/HTML script from reading application cookies or storage - meaning this is NOT a classic session-stealing stored XSS, and the maintainer explicitly states application-session compromise is not supported by the deployment configuration. Impact is therefore confined to persistent attacker-controlled active content and phishing served under a trusted-looking application-managed URL (hence C:N, I:L, A:N). No EPSS score was provided in the input, and KEV status is NO and POC status is not indicated - there is no public exploit identified at time of analysis. Net: a real but low-severity hygiene/phishing-surface issue, not an urgent remote-code or credential-theft threat.

Exploit ScenarioDerived

An authenticated Helium user uploads a crafted SVG (served as image/svg+xml) or HTML file as a planner attachment, which the blocklist in conf/configs/common.py fails to reject. The attacker then distributes the public attachment URL; when a visitor opens it, the embedded script executes in the attachment-origin context, enabling convincing phishing under an application-managed storage URL. No public exploit code was identified in the input, though the fix commit (f0de5c98) makes the vulnerable code path straightforward to reconstruct.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 15, 2026

Persistent cross-site scripting in the HeliumEdu Platform student planner (all versions prior to 2.2.60) lets an authenticated user upload SVG or HTML files through POST /planner/attachments/ and have embedded script execute when a victim opens the resulting public attachment URL, enabling spoofed content and phishing under an application-managed storage URL. Exploitation is constrained: the attacker must already hold an account permitted to use the attachments endpoint, and the victim must actively open the link (CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:L/A:N, base score 3.5), because attachments are served from a separate origin from the application. That origin separation means the browser's same-origin policy blocks the injected script from reading application cookies, tokens, or storage, so session or account compromise is not supported by the maintained deployment configuration; no public exploit code was identified at time of analysis and the issue is not listed in CISA KEV. This is a genuinely low-priority issue despite being network-reachable, and it is fixed in version 2.2.60.

RemediationAI

Upgrade HeliumEdu Platform to version 2.2.60 or later, which is the vendor-released patch; it expands BLOCKED_ATTACHMENT_EXTENSIONS with .html, .htm, .xhtml, .svg, .svgz, .xml, .xsl, .xslt, .js, .mjs, .hta, .vbs, .vbe, .wsf, .lnk, .msi, .dmg, .pkg, .apk and .jar and correspondingly extends BLOCKED_ATTACHMENT_MIME_TYPES with browser-executable types including image/svg+xml, text/html, application/xhtml+xml, text/xml, application/xml, text/javascript and application/javascript (upstream fix commit f0de5c985c701942758b805a3d11dfb008a6af88; advisory GHSA-7r65-76fw-ch5c). Apply the same lists to any deployment that pre-dates the release and confirm the version string in conf/configs/common.py is 2.2.60 or higher. If upgrading is not immediately possible, the most effective compensating control is to force attachments to download rather than render, by serving the storage origin with Content-Disposition: attachment and a neutral Content-Type such as application/octet-stream - this eliminates SVG/HTML script execution but breaks inline image and document previews for legitimate users. Additionally, add a Content-Security-Policy of "sandbox; default-src 'none'" (or serve attachments from a cookieless, script-inert origin, which this deployment already does) to contain any residual active content, and restrict the attachments upload permission to trusted accounts; note that both measures reduce functionality and that a strict upload allowlist of known-safe image and document types is a safer long-term design than any denylist. Because exploitation requires an authenticated uploader plus a victim who opens the link, detection should focus on audit logs for SVG/HTML uploads to /planner/attachments/ and on identifying attachment URLs that are being distributed externally.

Affected VersionsENISA

platform < 2.2.60

Affected Packages

euvd platform fix: 2.2.60

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Helium is a Django-based web application whose attachment handling lives in the planner module. Uploads reach the AttachmentSerializer in helium/planner/serializers/attachmentserializer.py, which consulted the denylists BLOCKED_ATTACHMENT_EXTENSIONS and BLOCKED_ATTACHMENT_MIME_TYPES defined in conf/configs/common.py to decide what could be stored. Prior to 2.2.60 those lists omitted browser-executable formats - notably .svg/.svgz and .html/.htm/.xhtml along with the image/svg+xml, text/html and application/xhtml+xml content types - so a file the browser treats as active content could be persisted and later served back. The root cause class is CWE-79 (improper neutralization of input during web page generation), realized here as stored XSS: SVG documents support inline <script> and event-handler attributes, and when the file is fetched directly from its public URL the browser renders it as a document rather than as a passive image, executing attacker-supplied script in the attachment origin. The design deliberately separates the storage origin from the application origin, which downgrades the finding from session theft to persistent spoofed content and credential-harvesting phishing pages hosted on a trusted-looking domain. The fix commit f0de5c985c701942758b805a3d11dfb008a6af88 also adds a new helium/common/utils/httputils.py helper (urlopen_secure) with DNS-resolution SSRF checks and redirect re-validation used by webhooksesview.py, indicating 2.2.60 is a broader security-hardening release; that SSRF work is adjacent hardening, not the subject of this CVE.

Know when Platform gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 3.5 LOW
AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:L/A:N
vuln.today AI 3.5 LOW

Authenticated upload (PR:L) plus victim must open the URL (UI:R); separate-origin storage blocks cookie/data theft so C:N/A:N and only limited integrity impact (I:L).

3.1 AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
None

Lifecycle Timeline

1
Patch available
Oct 15, 2026 - 19:18 EUVD

DescriptionCVE.org

Helium is a free online student planner for classes, homework, grades, and notes. Prior to 2.2.60, the POST /planner/attachments/ endpoint allows authenticated users to upload SVG and HTML attachments because conf/configs/common.py omits those formats from BLOCKED_ATTACHMENT_EXTENSIONS and BLOCKED_ATTACHMENT_MIME_TYPES, and helium/planner/serializers/attachmentserializer.py relies on those blocklists. An uploaded SVG served as image/svg+xml can execute embedded script when a visitor opens its public attachment URL, allowing persistent attacker-controlled active content and phishing under an application-managed storage URL. The attachment storage uses a separate origin from the application, so same-origin policy prevents the script from reading application cookies or storage, and application-session compromise is not supported by the maintained deployment configuration. This issue is fixed in version 2.2.60.

Threat Intelligence Overview

EPSS Score
0.2%
Top 96% exploitable
Prevalence
Low
free open-source student planner, niche hobby/education footprint, no enterprise deployment
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Low

Priority Score

18
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +18
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

CVE-2026-56769 MEDIUM POC
6.3 Jun 25

Server-side request forgery in Huly Platform's /import endpoint allows authenticated workspace users to coerce the front

CVE-2023-45162 CRITICAL
9.8 Oct 13

Affected 1E Platform versions have a Blind SQL Injection vulnerability that can lead to arbitrary code execution. Rated

CVE-2023-36825 CRITICAL
9.8 Jul 11

Orchid is a Laravel package that allows application development of back-office applications, admin/user panels, and dash

CVE-2020-8775 HIGH
8.9 Apr 29

Pega Platform before version 8.2.6 is affected by a Stored Cross-Site Scripting (XSS) vulnerability in the comment tags.

CVE-2020-8773 HIGH
8.9 Apr 29

The Richtext Editor in Pega Platform before 8.2.6 is affected by a Stored Cross-Site Scripting (XSS) vulnerability. Rate

CVE-2026-5373 HIGH
8.4 Apr 07

Improper privilege management in runZero Platform allows organization administrators to escalate privileges to superuser

CVE-2025-1683 HIGH
7.8 Mar 12

Improper link resolution before file access in the Nomad module of the 1E Client, in versions prior to 25.3, enables an

CVE-2025-57210 HIGH
7.5 Dec 04

Incorrect access control in the component ApiPayController.java of platform v1.0.0 allows attackers to access sensitive

CVE-2025-57213 HIGH
7.5 Dec 04

Incorrect access control in the component orderService.queryObject of platform v1.0.0 allows attackers to access sensiti

CVE-2025-57212 HIGH
7.5 Dec 04

Incorrect access control in the component ApiOrderService.java of platform v1.0.0 allows attackers to access sensitive i

CVE-2023-5964 HIGH
7.2 Nov 06

The 1E-Exchange-DisplayMessageinstruction that is part of the End-User Interaction product pack available on the 1E Exch

CVE-2023-45163 HIGH
7.2 Nov 06

The 1E-Exchange-CommandLinePing instruction that is part of the Network product pack available on the 1E Exchange does n

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy