Security Advisory

Transparency report on security improvements in v0.3.1

Published: December 5, 2025

All Vulnerabilities Resolved

A comprehensive security audit was conducted from December 1-5, 2025. All identified vulnerabilities have been addressed in version 0.3.1. Users should update to the latest version.

Summary

During a routine security review, I identified and remediated 18 security vulnerabilities across the Go Memory Visualizer extension. These issues ranged from critical XSS vulnerabilities in webviews to low-severity configuration validation gaps. All issues have been fully resolved, and no exploitation has been observed in the wild.

Vulnerability Details

ID Severity Category Description Status
VULN-001 CRITICAL XSS DOM-based XSS in Workspace Analysis webview via unescaped struct names Fixed
VULN-002 CRITICAL XSS DOM-based XSS in Memory Layout panel via unescaped field content Fixed
VULN-003 CRITICAL Encapsulation Private member access via bracket notation bypassing TypeScript access control Fixed
VULN-004 HIGH Injection CSV formula injection in exported reports allowing code execution Fixed
VULN-005 HIGH ReDoS Regular expression denial of service in struct field parsing Fixed
VULN-006 HIGH ReDoS Regular expression denial of service in embedded field regex Fixed
VULN-008 HIGH Performance Synchronous file I/O blocking extension host Fixed
VULN-010 HIGH DoS Resource exhaustion via unbounded file processing in workspace analyzer Fixed
VULN-011 MEDIUM CSP Missing Content Security Policy in webview panels Fixed
VULN-012 MEDIUM Info Disclosure Detailed error messages exposing internal paths and state Fixed
VULN-013 MEDIUM Permissions Insecure file permissions (0o644) on exported files Fixed
VULN-014 MEDIUM Integer Overflow Integer overflow in array size calculation for large arrays Fixed
VULN-015 MEDIUM Injection Markdown injection in hover provider content Fixed
VULN-016 MEDIUM Injection Markdown injection in editor decoration messages Fixed
VULN-017 MEDIUM Race Condition Race condition in decoration updates causing UI corruption Fixed
VULN-018 MEDIUM DoS Unbounded recursion in circular struct reference resolution Fixed
VULN-020 MEDIUM XSS XSS in documentation site calculator via field names Fixed
VULN-021 LOW Validation Missing architecture configuration validation Fixed

Remediation Timeline

December 1, 2025
Security audit initiated. Identified encapsulation bypass and recursive overflow vulnerabilities. Implemented public getter pattern and recursion guards.
December 2, 2025
Addressed XSS vulnerabilities in documentation site. Added security audit scripts to build pipeline.
December 3, 2025
Comprehensive extension security hardening. Implemented HTML/Markdown escaping, CSV sanitization, CSP headers, and async I/O conversion.
December 4, 2025
Code quality improvements and constant extraction for maintainability.
December 5, 2025
Final documentation updates, security advisory published, and v0.3.1 released.

Recommended Actions

Update Immediately

All users should update to version 0.3.1 or later. In VS Code, go to Extensions, find Go Memory Visualizer, and click Update. Alternatively, run:

code --install-extension RhinoSoftware.go-memory-visualizer

Verify Installation

Confirm you're running the patched version by checking the extension version in VS Code's Extensions panel. The version should be 0.3.1 or higher.

Review Exported Files

If you previously exported CSV reports, review them for any suspicious formulas beginning with =, +, -, or @ characters before opening in spreadsheet applications.

Technical Details

XSS Prevention: All user-controlled content (struct names, field names, type names) is now sanitized using dedicated escapeHtml() and escapeMarkdown() functions before rendering in webviews or hover content.

Content Security Policy: All webview panels now include strict CSP headers: default-src 'none'; style-src 'unsafe-inline', preventing script execution and external resource loading.

Resource Limits: Workspace analysis now enforces limits of 1,000 files maximum, 1MB per file, and 500 results to prevent resource exhaustion attacks.

Regex Hardening: Complex regex patterns with optional groups were replaced with simpler, bounded patterns that pre-process input to strip comments and tags before matching.

Report Security Issues

Found a security vulnerability? Please report it responsibly.

Open an Issue | Discord: 1rhino2