The following versions of Transformation Portal are currently supported with security updates:
| Version | Supported | Notes |
|---|---|---|
| main | ✅ | Development branch - security fixes prioritized |
| 0.1.x | ✅ | Current stable release |
| < 0.1 | ❌ | Unsupported |
If you discover a security vulnerability in Transformation Portal, please DO NOT open a public issue. Instead:
- GitHub Security Advisory (Preferred): Create a private security advisory at https://github.com/RC219805/Transformation_Portal/security/advisories/new
- Direct Contact: Reach out via GitHub (@RC219805)
- Include:
- Affected version(s)
- Steps to reproduce
- Potential impact assessment
- Your contact information for follow-up
- Initial Response: Within 48 hours
- Status Update: Within 5 business days
- Resolution Target:
- Critical: 7 days
- High: 14 days
- Medium: 30 days
- Low: Next release cycle
- Acknowledgment: You'll receive confirmation that we've received your report
- Assessment: Our security team will evaluate the vulnerability
- Communication: We'll keep you informed throughout the resolution process
- Credit: With your permission, we'll acknowledge your contribution in the fix announcement
This repository uses:
- Dependabot: Automated dependency updates for security vulnerabilities
- Code Scanning: CodeQL analysis on every PR
- Secret Scanning: Prevents accidental credential commits
- Security Advisories: Private vulnerability reporting via GitHub
- Branch Protection: Main branch requires security checks to pass
- Workflow Token Permissions: All workflows use least-privilege
permissions:declarationscontents: read(default) - Read-only repository accesscontents: write- Only for dependency submission and automated PR creationsecurity-events: write- CodeQL and security scanning onlypull-requests: write- AI code review bot only
Given our image/video processing nature, special attention is required for:
-
File Upload Security:
- Maximum file size limits (default: 500MB for images, 5GB for videos)
- Strict MIME type validation
- Magic number verification for file formats
- Filename sanitization to prevent path traversal
-
TIFF Processing:
- Validation of TIFF tags to prevent buffer overflows
- Limits on image dimensions (max 65536x65536)
- Protection against compression bombs
- Depth Anything V2 Model: Validate input dimensions to prevent memory overflow (max 4096x4096)
- Point Cloud Generation: Limit vertex count to prevent DoS (max 10M vertices)
- Temporary File Management: Secure cleanup of intermediate depth maps
- GPU Memory: Monitor and limit VRAM usage (default: 8GB max)
-
Model Files:
- Only load models from trusted sources
- Verify model checksums before loading
- Sandboxed model execution environment recommended
-
Depth Pipeline:
- Input size restrictions to prevent OOM attacks
- Rate limiting for API endpoints
- Secure temporary file handling for intermediate outputs
-
Supply Chain:
- All dependencies use version constraints to balance security and compatibility
- For security-critical deployments, consider strict version pinning (e.g., via lock files)
- Regular dependency audits via
pip-auditandsafety - Automated security scanning in CI/CD pipeline
-
Recent Security Updates:
January 2026:
- protobuf 6.34.0 - Fixed CVE-2026-0994 / GHSA-7gcm-g887-7qv7 (Dependabot #69)
- Workflow Hardening - Stricter token permissions across all GitHub Actions workflows
- Quality Gate - Fixed duplicate permissions block (aa555e0a)
-
Known Vulnerabilities (Monitor for updates):
- PyTorch: Keep updated for CUDA-related security patches
- Pillow: Critical for image parsing vulnerabilities
- NumPy: Monitor for numerical computation exploits
If exposing Transformation Portal as a service:
- Authentication: Implement API key or OAuth 2.0
- Rate Limiting:
- Default: 100 requests/minute per IP
- Heavy operations: 10 requests/hour
- Input Sanitization: All user inputs must be validated
- Output Filtering: Ensure no metadata leakage in processed files
# If using Flask/FastAPI
headers = {
"X-Content-Type-Options": "nosniff",
"X-Frame-Options": "DENY",
"X-XSS-Protection": "1; mode=block",
"Strict-Transport-Security": "max-age=31536000; includeSubDomains",
"Content-Security-Policy": "default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline'"
}Security features may impact performance:
- File validation: +100-500ms per upload
- Model checksums: +2-5s on first load
- Input sanitization: +50-200ms per request
- Memory clearing: +10-20% processing overhead
- Depth map bounds checking: +50ms per frame
Note: These overheads are configurable and can be tuned based on your security requirements
# Run with minimal privileges (recommended)
sudo -u nobody python -m transformation_portal.cli
# Or use systemd service with User directive:
# [Service]
# User=nobody
# Group=nogroup
# Use read-only filesystem where possible
docker run --read-only --tmpfs /tmp transformation_portal:latest
# Enable security headers if web-facing
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Content-Security-Policy: default-src 'self'Note: The project currently uses config/default_config.yaml for depth pipeline settings (see actual structure with depth_model.variant, processing.zone_tone_mapping, optimization.memory_limit_gb, etc.). The following represents recommended security-related configuration fields that should be implemented for production deployments:
# Recommended security configuration (not currently implemented)
# These settings should be added to application configuration for production use
security:
max_file_size: 524288000 # 500 MiB (500 * 1024 * 1024 bytes)
allowed_extensions: ['.jpg', '.png', '.tiff', '.mp4', '.mov']
temp_directory: '/tmp/transformation_portal'
cleanup_interval: 3600 # seconds
depth_processing:
max_input_dimension: 4096
max_vertices: 10000000
memory_limit_gb: 8 # GB (see: optimization.memory_limit_gb in default_config.yaml)- EXIF Data: Option to strip all metadata from outputs
- Watermarking: Support for invisible watermarks for tracking
- Temporary Files: Secure deletion with multi-pass overwrite
- Memory: Clear sensitive data from memory after processing
Before submitting PRs:
# Run code quality and security checks
make quality-check
# Run full test suite
make test-full
# Optional: Install and run security tools (not included by default)
# pip install bandit
# bandit -r src/ -ll
# Note: Additional security testing tools like bandit, pip-audit, safety,
# semgrep, etc. are recommended but not included in project dependencies.
# Install them separately if needed for security auditing.In case of a security breach:
-
Isolate: Immediately isolate affected systems
- Disable affected endpoints
- Revoke compromised credentials
-
Assess: Determine scope and impact
- Identify affected versions
- Review access logs
- Determine data exposure
-
Notify: Alert users within 72 hours if data was compromised
- GitHub Security Advisory
- Email to affected users (if applicable)
- Update security status page
-
Patch: Deploy fixes with priority
- Emergency patch for critical vulnerabilities
- Coordinate disclosure with reporters
-
Review: Post-mortem and update security measures
- Document lessons learned
- Update security policies
- Implement additional monitoring
- Python 3.10+ (older versions have known vulnerabilities)
- FFmpeg 6+ (addresses multiple CVEs from earlier versions)
- Operating System with DEP/ASLR support
- Minimum 8GB RAM to prevent swap file exposure
- GPU drivers with security updates (NVIDIA 525+ for CUDA operations)
- HTTPS only for any network operations
- Disable unnecessary network features in production
- Firewall rules to restrict outbound connections
- No telemetry or phone-home features by default
No formal security audits have been conducted yet. This section will be updated as audits are completed.
This project aims to maintain compliance with:
- CWE Top 25: Addressing most dangerous software weaknesses
- OWASP Top 10: Web application security (if applicable)
- PCI DSS: Not applicable (no payment processing features)
- GDPR: For EU user data protection (metadata handling)
- AI Security: Following OWASP ML Security Top 10
Recommended external tools for security testing (require separate installation):
# Dependency scanning
pip install pip-audit
pip-audit
pip install safety
safety check
# Static analysis
pip install bandit
bandit -r src/
pip install semgrep
semgrep --config=auto
# Existing project tools
pylint --enable=security
# Container scanning (if using Docker)
# Install trivy: https://github.com/aquasecurity/trivy
trivy image transformation_portal:latestNote: These tools are not included in the project's dependencies. Install them separately as needed for security auditing.
We support responsible disclosure and will:
- Not pursue legal action against security researchers acting in good faith
- Work collaboratively to understand and resolve issues
- Publicly acknowledge researchers (with permission)
- Maintain a hall of fame for security contributors
- Consider bug bounties for critical findings (case-by-case basis)
Primary: Create a security advisory at https://github.com/RC219805/Transformation_Portal/security/advisories/new GitHub: @RC219805 Response Time: 48 hours maximum
- docs/BEST_PRACTICES.md - General best practices for contributors
- docs/version_history/changelog.md - Version history and security updates
- docs/ARCHITECTURE.md - System architecture and security considerations
Last Updated: November 2025 Next Review: February 2026 Security Policy Version: 1.0