Skip to content

Security: KernFerm/net-switch

SECURITY.md

Security Policy

πŸ”’ NetSwitch Security Overview

NetSwitch takes security seriously. This document outlines our security policies, vulnerability reporting procedures, and the security measures implemented in the application.

πŸ›‘οΈ Supported Versions

Security updates and patches are provided for the following versions of NetSwitch:

Version Supported Security Updates
1.1.1 βœ… Yes βœ… Active
< 1.0 ❌ No ❌ End of Life

Note: Only the latest stable release receives security updates. Users are strongly encouraged to update to the latest version.

πŸ” Security Features

NetSwitch implements multiple layers of security protection:

Input Sanitization & Validation

  • βœ… String Sanitization: All user inputs are sanitized to remove control characters and malicious content
  • βœ… IP Address Validation: Comprehensive IPv4 and IPv6 address validation with strict format checking
  • βœ… Network Adapter Validation: Sanitization of network adapter names to prevent injection attacks
  • βœ… Command Argument Sanitization: All subprocess arguments are cleaned and validated
  • βœ… Length Limits: Input length restrictions to prevent buffer overflow attacks

Command Injection Prevention

  • βœ… Parameterized Commands: All system commands use parameterized execution
  • βœ… Whitelist Validation: Only predefined, safe commands are executed
  • βœ… Argument Escaping: Special characters are properly escaped or removed
  • βœ… Timeout Protection: All system operations have timeout limits

Application Security

  • βœ… Safe Defaults: Secure fallback values for all operations
  • βœ… Error Handling: Sanitized error messages that don't leak system information
  • βœ… Thread Safety: Background operations use daemon threads
  • βœ… Resource Management: Proper cleanup of system resources

Data Protection

  • βœ… No Credential Storage: Application doesn't store passwords or sensitive credentials
  • βœ… Minimal Privileges: Requests only necessary system permissions
  • βœ… Local Operation: All operations are performed locally (no data transmission)
  • βœ… Memory Safety: Sensitive data is not retained in memory unnecessarily

🚨 Vulnerability Reporting

We take security vulnerabilities seriously and appreciate responsible disclosure.

How to Report

If you discover a security vulnerability in NetSwitch, please follow these steps:

  1. DO NOT create a public GitHub issue for security vulnerabilities
  2. DO NOT discuss the vulnerability publicly until it has been resolved
  3. DO report vulnerabilities through one of these secure channels:

Preferred Method: Email

Alternative Method: GitHub Security Advisory

  • Use GitHub's private vulnerability reporting feature
  • Navigate to the repository's Security tab
  • Click "Report a vulnerability"

Information to Include

Please provide as much information as possible:

1. Description of the vulnerability
2. Steps to reproduce the issue
3. Potential impact and severity
4. Affected versions
5. Any proof-of-concept code (if applicable)
6. Suggested fix or mitigation (if known)
7. Your contact information for follow-up

What NOT to Include

  • ❌ Do not include actual exploits that could cause harm
  • ❌ Do not test vulnerabilities on systems you don't own
  • ❌ Do not access or modify data that doesn't belong to you

πŸ›‘οΈ Security Best Practices

For Users

Installation Security

# Always verify Python installation
python --version  # Should be 3.11.9+

# Use virtual environments
python -m venv netswitch-env
netswitch-env\Scripts\activate

# Install from trusted sources only
pip install customtkinter>=5.2.2

# Verify file integrity (if checksums provided)

Runtime Security

  • πŸ”‘ Run as Administrator: Required for DNS changes, but understand the implications
  • πŸ” Monitor Changes: Review DNS changes before applying
  • 🚫 Avoid Custom Scripts: Don't modify the application code without understanding
  • πŸ“± Keep Updated: Always use the latest version for security fixes

Network Security

  • πŸ”₯ Firewall: Ensure Windows Firewall is enabled
  • πŸ›‘οΈ Antivirus: Keep antivirus software updated
  • 🌐 DNS Security: Use reputable DNS providers (Cloudflare, Google, Quad9)
  • πŸ“Š Monitor Traffic: Be aware of network changes after DNS modifications

For Developers

Code Security

# Always sanitize inputs
user_input = sanitize_string(user_input, max_length=100)

# Validate before processing
if not is_valid_ip(dns_address):
    return False

# Use timeouts for operations
subprocess.run(cmd, timeout=30)

# Handle errors securely
except Exception as e:
    error_msg = sanitize_string(str(e), 200)
    log_error(html.escape(error_msg))

Development Environment

  • πŸ” Secure Development: Use secure coding practices
  • πŸ§ͺ Security Testing: Test with malicious inputs
  • πŸ“ Code Review: Review all security-related changes
  • πŸ” Dependency Scanning: Monitor dependencies for vulnerabilities

⚠️ Known Security Considerations

Administrator Privileges

Risk: NetSwitch requires administrator privileges to modify DNS settings.

Mitigation:

  • Application requests minimal necessary permissions
  • All operations are logged and transparent
  • Users are informed about privilege requirements
  • No unnecessary system access is performed

System Command Execution

Risk: Application executes system commands (netsh, ipconfig, ping).

Mitigation:

  • Commands are hardcoded and parameterized
  • All arguments are sanitized and validated
  • Timeout limits prevent hanging operations
  • Only safe, predefined commands are executed

Network Configuration Changes

Risk: Modifying DNS settings affects network connectivity.

Mitigation:

  • Changes are reversible
  • Safe fallback DNS servers are available
  • User confirmation required for changes
  • Clear status feedback provided

Dependency Vulnerabilities

Risk: Third-party dependencies may contain vulnerabilities.

Mitigation:

  • Minimal dependency footprint
  • Regular dependency updates
  • Vulnerability monitoring
  • Trusted sources only (PyPI)

πŸ” Security Auditing

Self-Assessment Checklist

  • Input validation on all user inputs
  • Command injection prevention measures
  • Proper error handling without information leakage
  • Secure defaults for all configurations
  • Timeout protection on all operations
  • Memory safety considerations
  • Privilege escalation prevention
  • Dependency vulnerability assessment

External Security Review

We welcome security reviews from the community:

  • Code Review: Security-focused code reviews
  • Penetration Testing: Controlled security testing
  • Vulnerability Assessment: Systematic security evaluation
  • Bug Bounty: Responsible disclosure program

⏱️ Response Timeline

Our commitment to security vulnerability response:

Timeline Action
24 hours Initial acknowledgment of report
72 hours Preliminary assessment and severity rating
7 days Detailed investigation and reproduction
14 days Fix development and testing
21 days Patch release and public disclosure
30 days Post-incident review and improvements

Note: Timeline may vary based on vulnerability severity and complexity.

Severity Levels

Level Description Response Time
πŸ”΄ Critical Remote code execution, privilege escalation 24-48 hours
🟑 High Local privilege escalation, data exposure 3-7 days
🟠 Medium Denial of service, information disclosure 7-14 days
🟒 Low Minor security improvements 14-30 days

πŸ“ž Security Contact

Primary Contact

PGP Key Information

Key ID: [To be provided]
Fingerprint: [To be provided]
Key Server: keys.openpgp.org

πŸ“œ Security Acknowledgments

We thank the following security researchers and contributors:

  • Security research community
  • Python security team
  • CustomTkinter security contributors
  • Responsible disclosure participants

πŸ”„ Updates to This Policy

This security policy is reviewed and updated regularly:

  • Last Updated: August 23, 2025
  • Next Review: November 23, 2025
  • Version: 1.1.1

Changes to this policy will be announced through:

  • GitHub repository updates
  • Release notes
  • Security advisories

πŸ“š Additional Resources

Security Guidelines

Vulnerability Databases

Security Tools


Thank you for helping keep NetSwitch secure! πŸ›‘οΈ

For general questions about NetSwitch, please use the regular support channels. This security contact is exclusively for security-related issues.

There aren’t any published security advisories