Petbot/issues.txt
megaproxy 915aa00bea Implement comprehensive rate limiting system and item spawn configuration
Major Features Added:
- Complete token bucket rate limiting for IRC commands and web interface
- Per-user rate tracking with category-based limits (Basic, Gameplay, Management, Admin, Web)
- Admin commands for rate limit management (\!rate_stats, \!rate_user, \!rate_unban, \!rate_reset)
- Automatic violation tracking and temporary bans with cleanup
- Global item spawn multiplier system with 75% spawn rate reduction
- Central admin configuration system (config.py)
- One-command bot startup script (start_petbot.sh)

Rate Limiting:
- Token bucket algorithm with burst capacity and refill rates
- Category limits: Basic (20/min), Gameplay (10/min), Management (5/min), Web (60/min)
- Graceful violation handling with user-friendly error messages
- Admin exemption and override capabilities
- Background cleanup of old violations and expired bans

Item Spawn System:
- Added global_spawn_multiplier to config/items.json for easy adjustment
- Reduced all individual spawn rates by 75% (multiplied by 0.25)
- Admins can fine-tune both global multiplier and individual item rates
- Game engine integration applies multiplier to all spawn calculations

Infrastructure:
- Single admin user configuration in config.py
- Enhanced startup script with dependency management and verification
- Updated documentation and help system with rate limiting guide
- Comprehensive test suite for rate limiting functionality

Security:
- Rate limiting protects against command spam and abuse
- IP-based tracking for web interface requests
- Proper error handling and status codes (429 for rate limits)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-15 20:10:43 +00:00

264 lines
No EOL
10 KiB
Text

PETBOT SECURITY AUDIT - ISSUES REPORT
=====================================
Generated: 2025-01-15
Auditor: Claude Code Assistant
Scope: Complete security audit of PetBot IRC bot and web interface
EXECUTIVE SUMMARY
================
This security audit identified 23 distinct security vulnerabilities across the PetBot application, ranging from critical to low severity. The most concerning issues are Cross-Site Scripting (XSS) vulnerabilities in the web interface, missing security headers, and inadequate access controls.
CRITICAL VULNERABILITIES (5 issues)
===================================
1. CRITICAL: XSS - Direct nickname injection in HTML output
File: webserver.py (lines 1191-1193)
Impact: Arbitrary JavaScript execution
Description: Player nicknames are directly inserted into HTML without escaping
Example: nickname = '"><script>alert("XSS")</script>'
Recommendation: Implement HTML escaping for all user output
2. CRITICAL: XSS - Page title injection
File: webserver.py (lines 2758, 2842, 4608)
Impact: JavaScript execution in page titles
Description: Nicknames inserted directly into <title> tags
Recommendation: Escape all dynamic content in page titles
3. CRITICAL: Missing HTTP security headers
File: webserver.py (entire file)
Impact: XSS, clickjacking, MIME sniffing attacks
Description: No CSP, X-Frame-Options, X-Content-Type-Options headers
Recommendation: Add security headers to all responses
4. CRITICAL: No HTTPS configuration
File: webserver.py (line 4773)
Impact: Data transmitted in plaintext
Description: Server runs HTTP only, no SSL/TLS
Recommendation: Implement HTTPS with valid certificates
5. CRITICAL: No web interface authentication
File: webserver.py (lines 564-588)
Impact: Unauthorized access to all player data
Description: Any user can access any player's profile via URL manipulation
Recommendation: Implement proper authentication and authorization
HIGH SEVERITY VULNERABILITIES (8 issues)
========================================
6. HIGH: XSS - Pet data injection
File: webserver.py (lines 2139-2154)
Impact: JavaScript execution through pet names
Description: Pet nicknames and species names inserted without escaping
Recommendation: Escape all pet data before HTML output
7. HIGH: XSS - Achievement data injection
File: webserver.py (lines 2167-2175)
Impact: JavaScript execution through achievement data
Description: Achievement names and descriptions not escaped
Recommendation: Escape achievement data in HTML output
8. HIGH: XSS - Inventory item injection
File: webserver.py (lines 2207-2214)
Impact: JavaScript execution through item data
Description: Item names and descriptions inserted without escaping
Recommendation: Escape all item data before HTML output
9. HIGH: Path traversal vulnerability
File: webserver.py (lines 564-565, 573-574, 584-585, 587-588)
Impact: Access to unauthorized resources
Description: Direct path extraction without validation
Example: /player/../../../etc/passwd
Recommendation: Implement path validation and sanitization
10. HIGH: SQL injection in reset script
File: reset_players.py (lines 57, 63)
Impact: Arbitrary SQL execution
Description: F-string interpolation in SQL queries
Recommendation: Use parameterized queries or validate table names
11. HIGH: Input validation gaps
File: Multiple modules
Impact: Various injection attacks
Description: Inconsistent input validation across modules
Recommendation: Implement comprehensive input validation
12. HIGH: Admin authentication bypass
File: admin.py (line 18), backup_commands.py (line 58)
Impact: Unauthorized admin access
Description: Hard-coded admin checks vulnerable to IRC spoofing
Recommendation: Implement secure admin authentication
13. HIGH: Information disclosure in error messages
File: webserver.py (lines 1111, 1331, 1643, 1872)
Impact: System information leakage
Description: Detailed error messages expose internal structure
Recommendation: Implement generic error messages for users
MEDIUM SEVERITY VULNERABILITIES (7 issues)
==========================================
14. MEDIUM: XSS - Error message injection
File: webserver.py (lines 1258-1267, 2075-2084, 2030-2039)
Impact: JavaScript execution through error messages
Description: Error messages containing user data not escaped
Recommendation: Escape all error message content
15. MEDIUM: Missing rate limiting
File: webserver.py (entire file)
Impact: Brute force attacks, DoS
Description: No rate limiting on any endpoints
Recommendation: Implement rate limiting especially for PIN verification
16. MEDIUM: Insecure session management
File: webserver.py (entire file)
Impact: Session attacks, CSRF
Description: No session tokens, CSRF protection, or timeouts
Recommendation: Implement proper session management
17. MEDIUM: SQL injection in backup manager
File: backup_manager.py (lines 349, 353)
Impact: Potential SQL execution
Description: F-string usage with table names from sqlite_master
Recommendation: Use proper SQL escaping for dynamic table names
18. MEDIUM: PIN system vulnerabilities
File: team_builder.py, database.py
Impact: Unauthorized team changes
Description: PIN delivery via IRC without additional verification
Recommendation: Enhance PIN system with additional verification
19. MEDIUM: Missing access controls
File: webserver.py (lines 584-588)
Impact: Unauthorized profile access
Description: Team builder accessible by anyone
Recommendation: Implement access control for team builders
20. MEDIUM: Debug information exposure
File: webserver.py (line 2766)
Impact: Information disclosure
Description: Extensive console logging exposes internals
Recommendation: Implement proper logging levels
LOW SEVERITY VULNERABILITIES (3 issues)
=======================================
21. LOW: Server binds to all interfaces
File: webserver.py (line 4773)
Impact: Increased attack surface
Description: Server accessible from all network interfaces
Recommendation: Bind to specific interface if possible
22. LOW: No request size limits
File: webserver.py (entire file)
Impact: DoS attacks
Description: No limits on request size or JSON payload
Recommendation: Implement request size limits
23. LOW: Missing security monitoring
File: webserver.py (entire file)
Impact: Limited attack detection
Description: No access logging or security monitoring
Recommendation: Implement comprehensive security logging
REMEDIATION PRIORITIES
=====================
IMMEDIATE (Critical Issues):
1. Fix XSS vulnerabilities by implementing HTML escaping
2. Add HTTP security headers (CSP, X-Frame-Options, etc.)
3. Implement HTTPS with valid SSL certificates
4. Add basic authentication for web interface
5. Fix path traversal vulnerabilities
HIGH PRIORITY (Within 1 week):
1. Implement input validation and sanitization
2. Fix SQL injection vulnerabilities
3. Enhance admin authentication system
4. Add rate limiting for all endpoints
5. Improve error handling to prevent information disclosure
MEDIUM PRIORITY (Within 1 month):
1. Implement proper session management
2. Add CSRF protection
3. Enhance PIN verification system
4. Implement access controls for all resources
5. Add security logging and monitoring
LOW PRIORITY (Within 3 months):
1. Network security hardening
2. Request size limits
3. Advanced security monitoring
4. Security testing automation
5. Security documentation updates
SECURITY TESTING RECOMMENDATIONS
================================
1. Automated vulnerability scanning
2. Penetration testing by security professionals
3. Code review by security experts
4. Input fuzzing tests
5. Authentication bypass testing
6. Session management testing
7. SQL injection testing
8. XSS testing with various payloads
9. CSRF testing
10. Rate limiting testing
POSITIVE SECURITY PRACTICES FOUND
=================================
1. Consistent use of parameterized SQL queries (prevents SQL injection)
2. PIN verification system uses cryptographically secure random generation
3. Database queries properly use ? placeholders for user input
4. No dangerous functions like eval() or exec() found
5. No system command execution with user input
6. JSON parsing includes proper error handling
7. Input normalization implemented in base module
8. PIN expiration mechanism (10 minutes) implemented
9. Single-use PIN system prevents replay attacks
10. Proper database transaction handling in critical operations
TECHNICAL DEBT CONSIDERATIONS
============================
1. Implement proper templating engine with auto-escaping
2. Add web application firewall (WAF)
3. Implement Content Security Policy (CSP)
4. Add security headers middleware
5. Implement proper logging framework
6. Add security unit tests
7. Implement secure configuration management
8. Add API rate limiting
9. Implement proper error handling framework
10. Add security monitoring and alerting
COMPLIANCE CONSIDERATIONS
========================
1. Data protection: Player data is publicly accessible
2. Access control: No authorization mechanism
3. Encryption: No HTTPS implementation
4. Logging: No security audit logs
5. Authentication: No proper user authentication
CONCLUSION
==========
The PetBot application has significant security vulnerabilities that should be addressed before production deployment. The most critical issues are XSS vulnerabilities and missing authentication controls. However, the application demonstrates good security practices in database operations and PIN generation.
Priority should be given to:
1. Implementing proper input validation and output escaping
2. Adding authentication and authorization mechanisms
3. Securing the web interface with HTTPS and security headers
4. Implementing rate limiting and session management
The development team should establish security practices including:
- Security code reviews
- Automated vulnerability scanning
- Regular security testing
- Security training for developers
- Incident response procedures
This audit provides a comprehensive foundation for improving the security posture of the PetBot application.