# Issue #190: [CRITICAL] Fix XSS vulnerability in Mermaid rendering ## Objective Fix critical XSS vulnerability in Mermaid diagram rendering that could allow attackers to inject malicious scripts through diagram definitions, leading to account compromise and data theft. ## Implementation Summary ### Security Fixes Applied 1. **MermaidViewer.tsx**: - Changed `securityLevel: "loose"` to `securityLevel: "strict"` - Changed `htmlLabels: true` to `htmlLabels: false` - Added DOMPurify SVG sanitization - Added manual URI checking for javascript: and dangerous data: URIs 2. **useGraphData.ts**: - Added `sanitizeMermaidLabel()` function - Sanitizes all user-provided titles before insertion into Mermaid diagrams - Removes HTML tags, JavaScript protocols, control characters - Escapes Mermaid special characters - Truncates to 200 chars for DoS prevention ### Test Coverage - MermaidViewer: 90.15% coverage (exceeds 85% requirement) - All 24 security tests passing ### Files Changed - apps/web/package.json (added dompurify) - apps/web/src/components/mindmap/MermaidViewer.tsx - apps/web/src/components/mindmap/hooks/useGraphData.ts - pnpm-lock.yaml Security vulnerability RESOLVED.