INJ-002critical SeverityInjection Sinks & Input Validation
No dangerouslySetInnerHTML Without Strict Sanitization
When rendering markdown or rich text, agents render raw strings directly through dangerouslySetInnerHTML={{ __html: content }}.
1-Click Fix Prompt for Cursor & Claude Code
Review my codebase for "No dangerouslySetInnerHTML Without Strict Sanitization" (INJ-002).
Issue: When rendering markdown or rich text, agents render raw strings directly through dangerouslySetInnerHTML={{ __html: content }}.
Remediation required: Sanitize all user-provided HTML with DOMPurify or use safe markdown renderers that escape HTML tags by default.
Please:
1. Locate any occurrences of this issue across my repository.
2. Refactor the code to follow production standards without breaking existing functionality.
3. Provide a clear command or step to test and verify the fix.Why AI Assistants Write This Bug
When rendering markdown or rich text, agents render raw strings directly through dangerouslySetInnerHTML={{ __html: content }}.
AI code generation prioritizes immediate syntax execution over production edge cases. When an assistant hits an undefined variable or strict type error, it frequently takes the path of least resistance rather than implementing standard pre-launch security patterns.
Code Comparison
Common AI Code PatternVulnerable
// Vulnerable AI-generated pattern for: No dangerouslySetInnerHTML Without Strict Sanitization
// Problematic pattern: When rendering markdown or rich text, agents render raw strings directly through dangerouslySetInnerHTML={{ __html: content }}.Launch-Ready Fix
// Production-ready fix for: No dangerouslySetInnerHTML Without Strict Sanitization
// Recommended remediation: Sanitize all user-provided HTML with DOMPurify or use safe markdown renderers that escape HTML tags by default.Remediation & Verification Checklist
Remediation: Sanitize all user-provided HTML with DOMPurify or use safe markdown renderers that escape HTML tags by default.
- Search your codebase for pattern matching "No dangerouslySetInnerHTML Without Strict Sanitization".
- Apply the recommended remediation: Sanitize all user-provided HTML with DOMPurify or use safe markdown renderers that escape HTML tags by default.
- Run local build and test commands to ensure no regressions.
- Verify in your browser or with curl that the issue is resolved.
Audit All 108 Checks in One Click
Checking items one by one takes hours. Let us do it in 2 minutes.
With the Founder Pass ($15 one-time), we automatically scan your repository for this issue, plus all other 107 launch checks across secrets, Stripe webhooks, Supabase RLS, and security headers.