Vulnerability in SkillTree (CVE-2026-54694)
Summary
Vulnerability in SkillTree (CVE-2026-54694). Confidential information can be exposed externally. Exploitable via StringHighlighter.js.
Original description
The description as published by the source.
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 = "" (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. ``, 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 = ""), 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…
Source: NIST National Vulnerability Database NVD
Auto-generated summary
Assembled by SecPulse from the source data (CVSS, CWE, affected versions) using templates — no AI involved. Check the original description and references below for exact details.
A vulnerability tracked as CVE-2026-54694 has been found in SkillTree.
Attackers can target a specific entry point like StringHighlighter.js over the network to misuse the product.
Confidential information can be exposed externally. CVSS score: 9.6/10.
What to do: apply the vendor's official patched release.
If unsure, ask your IT team or search "SkillTree CVE-2026-54694" on the vendor's site.
CVE-2026-54694 (SkillTree) — CWE-20 / CVSS v3 9.6
Attack vector: remote (network-reachable) / unauthenticated
Attack surface: StringHighlighter.js / value / HighlightedValue.vue / innerHTML
Plan: 1) Audit SBOM/dependencies, 2) Stage→prod upgrade, 3) Add WAF/proxy monitoring on affected endpoints, 4) Hunt IOCs in logs.
Refs: see the GHSA / vendor advisory / patched release linked on this page.
A vulnerability (CWE-20) exists in SkillTree. Attackers reach the vulnerable code path via StringHighlighter.js without authentication.
Check the vendor advisory for the affected versions of SkillTree. Attack surface: StringHighlighter.js / value / HighlightedValue.vue / innerHTML.
Severity: Critical (CVSS 9.6/10). Confidential information can be exposed externally.
Update to the patched release per vendor advisory.
Until the patch is applied: disable the affected feature, apply WAF rules, or restrict access via network ACLs.
Search webserver/proxy logs for unusual request patterns matching this CVE's known IOCs. Run grep -r 'SkillTree' . against your dependency files (package-lock.json, requirements.txt, go.sum) to find affected services.
Response actions
Concrete steps and command examples for SOC/SRE teams to execute in order
-
1Identify exposure identify
grep -r 'SkillTree' . | grep -v node_modulesリポジトリと本番環境の依存ファイル (package-lock.json / requirements.txt / go.sum / Gemfile.lock 等) で
SkillTreeを grep し、稼働しているサービス・バージョンを把握する。 -
2Post-deployment verification verify
Confirm patched version is live in productionパッチ適用後、ステージングで PoC または同等の悪用パターンを再現して脆弱性が閉じたことを確認。本番ではアクセスログ・WAF でアラート再発が無いか継続監視。
References
- web github.com