MEDIUM 4.8

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).