CVE-2026-22674: Hashgraph Guardian Stored XSS via Branding Configuration
Hashgraph Guardian versions up to 3.6.0 contain a stored cross-site scripting (XSS) flaw in the branding configuration feature. An authenticated user with the STANDARD_REGISTRY role can inject malicious JavaScript by submitting a specially crafted company name through the branding API. This injected script executes automatically in every authenticated user's browser on each page load, potentially allowing the attacker to steal session tokens, perform unauthorized actions, or redirect users to malicious sites.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 4.8 MEDIUM · CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N
- Weaknesses (CWE)
- CWE-79
- Affected products
- 0 configuration(s)
- Published / Modified
- 2026-06-18 / 2026-07-14
NVD description (verbatim)
Hashgraph Guardian through 3.6.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.
3 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The vulnerability exists in Guardian's branding service, which fails to properly sanitize user input before assigning the companyName value to the innerHTML property. The unsanitized assignment permits stored XSS injection via the branding configuration API endpoint. An attacker holding the STANDARD_REGISTRY role can craft a malicious payload in the companyName field that persists in the application state. On each authenticated user's page load, the injected script executes in their browser context with the privileges of their session. The vulnerability was remediated in commit ba8c566.
Business impact
This vulnerability enables persistent compromise of user sessions within Guardian deployments. An insider or compromised standard registry account can inject malicious scripts that affect all users in the system. Potential impacts include credential harvesting, unauthorized transaction initiation, data exfiltration, and erosion of user trust. Organizations running Guardian should treat this as a privilege-escalation and session-hijacking risk, particularly in multi-user environments where registry operators have administrative access.
Affected systems
Hashgraph Guardian through version 3.6.0 is affected. The vulnerability requires an authenticated account with STANDARD_REGISTRY role to exploit, limiting the attack surface to internal or trusted users with registry configuration privileges. Organizations should verify their Guardian deployment version and review access control policies for registry administrator accounts.
Exploitability
Exploitation requires prior authentication and the STANDARD_REGISTRY role, which reduces the attack surface significantly. However, the vulnerability is trivial to exploit once access is gained—a simple API call with a malicious companyName payload triggers persistent XSS. The attack does not require user interaction beyond normal site navigation, as the script executes automatically on every page load. The barrier to exploitation is organizational access and role assignment, not technical complexity.
Remediation
Update Hashgraph Guardian to a version incorporating the fix from commit ba8c566 (confirmed in versions after 3.6.0). Verify the update through official Guardian release notes. As an interim measure, restrict the STANDARD_REGISTRY role to trusted personnel only and audit recent branding configuration changes via API logs for malicious payloads containing script tags or event handlers.
Patch guidance
Obtain the patched version from the official Hashgraph Guardian repository or distribution channel. The fix is present in commits following ba8c566. Review your current version (check Guardian documentation or admin panel for version display) and plan an update to the latest available release. Test patched versions in a staging environment before production deployment to ensure compatibility with existing configurations.
Detection guidance
Monitor branding configuration API endpoint logs (/api/branding or similar) for POST/PUT requests containing suspicious companyName values with HTML tags, JavaScript keywords (script, onerror, onload, etc.), or encoded variants. Audit the stored branding configuration in Guardian's backend database for unexpected HTML or script content. Check browser console errors or JavaScript execution anomalies reported by users after branding updates. Implement Content Security Policy (CSP) headers to restrict inline script execution if not already in place.
Why prioritize this
Although the CVSS score is MEDIUM (4.8), the vulnerability merits elevated priority in multi-user Guardian deployments. The persistent nature of stored XSS, combined with automatic execution on every page load for all users, creates a high-impact attack surface despite the requirement for authenticated STANDARD_REGISTRY access. The fix is already available, making remediation straightforward. Organizations should prioritize this patch within their standard update cycles, especially those with sensitive use cases or regulatory compliance requirements.
Risk score, explained
The CVSS 3.1 score of 4.8 reflects the attack vector (network-based), low attack complexity, high privilege requirement (PR:H), required user interaction via UI navigation, changed scope (affecting the entire web application), and limited impact (low confidentiality and integrity, no availability impact). While the score is MEDIUM, the stored and persistent nature of the XSS increases practical risk—every authenticated user is affected continuously until remediated, justifying prioritization despite the numerical score.
Frequently asked questions
Can this vulnerability be exploited without STANDARD_REGISTRY role?
No. The vulnerability is restricted to authenticated users with the STANDARD_REGISTRY role specifically. However, if that role is assigned to multiple users or if account credentials are compromised, the attack surface expands. Organizations should audit role assignments and enforce strong authentication (MFA) for accounts holding registry roles.
Does the injected script affect administrators or only regular users?
The injected script executes in the browser of every authenticated user on every page load, including administrators. An attacker can use this to target higher-privileged accounts and potentially escalate their own access or gather sensitive information across the entire user base.
What does the fix in commit ba8c566 actually change?
While the specific code change is in that commit, it almost certainly involves proper input sanitization or output encoding of the companyName value before DOM assignment. This prevents the browser from interpreting injected HTML/JavaScript. Verify exact changes through the official Guardian repository or security advisory.
Is there a workaround if we can't patch immediately?
As a temporary measure, restrict STANDARD_REGISTRY role to a minimal set of trusted users and monitor branding API logs for suspicious activity. Implement or strengthen Content Security Policy headers to mitigate inline script execution. However, these are not substitutes for patching—plan an update within your normal maintenance window.
This analysis is based on the CVE record and publicly available information as of the publication date. Specific version numbers, patch availability, and internal impact assessments should be verified against official Hashgraph Guardian security advisories and your organization's risk model. SEC.co does not provide guarantee of exploit availability or attack surface analysis for non-public deployments. Organizations should conduct their own testing in isolated environments before applying patches to production systems. Source: NVD (public-domain), retrieved 2026-07-27. Analysis generated by SEC.co (claude-haiku-4-5).
Weaknesses (CWE)
Related vulnerabilities
- CVE-2016-20070MEDIUMPrivilege Escalation & Stored XSS in WordPress Booking Calendar Contact Form 1.0.23
- CVE-2018-25384MEDIUMStored XSS in Wikidforum 2.20 Allows Authenticated Attackers to Inject Malicious Scripts
- CVE-2019-25731MEDIUMStored XSS in Zuz Music 2.1 Contact Form
- CVE-2019-25737MEDIUMStored XSS in Live Chat Unlimited 2.8.3 – Admin Session Compromise
- CVE-2019-25739MEDIUMGigToDo 1.3 Stored XSS Vulnerability in Proposal Descriptions
- CVE-2019-25742MEDIUMStored XSS in Zoner Real Estate WordPress Theme 4.1.1 – Admin Account Compromise Risk
- CVE-2019-25743MEDIUMWordPress Soliloquy Lite 2.5.6 Stored XSS Vulnerability
- CVE-2019-25744MEDIUMWordPress Popup Builder 3.49 Stored XSS Vulnerability – Exploit Prevention & Patch Guide