We actively support the latest major version of Spacing with security updates.
| Version | Supported |
|---|---|
| 0.8.x | ✅ |
| 0.7.x | ✅ |
| < 0.7 | ❌ |
Please do not report security vulnerabilities through public GitLab issues.
Instead, please report security vulnerabilities by emailing the maintainers directly. You can find contact information in the AUTHORS file.
When reporting a vulnerability, please include:
- Description of the vulnerability
- Steps to reproduce the issue
- Potential impact of the vulnerability
- Suggested fix (if you have one)
- Your contact information for follow-up questions
- Acknowledgment: We will acknowledge receipt of your report within 48 hours
- Updates: We will provide regular updates on our progress
- Timeline: We aim to release a fix within 30 days for critical vulnerabilities
- Credit: If you wish, we will credit you in the security advisory and release notes
Spacing is a code formatting tool that:
- Reads and writes Python files on your filesystem
- Does not execute the code it formats
- Does not make network requests (except when installing from PyPI)
- Has no external runtime dependencies
Potential security concerns:
- File system access: Spacing needs read/write access to format files
- Path traversal: Ensure you trust the directories you point spacing at
- Configuration files: TOML configuration is parsed; malformed files could cause issues
- Supply chain: Verify package integrity when installing from PyPI
- Verify package integrity: Check GPG signatures when available
- Use virtual environments: Install spacing in isolated environments
- Review changes: Use
--dry-runor--checkbefore applying changes - Backup your code: Always use version control before running formatters
- Limit permissions: Don't run spacing with elevated privileges
- Trust your sources: Only run spacing on code you trust
Spacing includes several security-conscious design decisions:
- Atomic file operations: Changes are written to temporary files first, then renamed
- No code execution: Spacing only parses syntax, never executes Python code
- Explicit path handling: No hidden file modifications outside specified paths
- Configuration validation: Input validation on all configuration values
- Error handling: Graceful failure on malformed input
When a security vulnerability is fixed:
- We will publish a security advisory on GitLab
- We will release a patched version on PyPI
- We will update the CHANGELOG with security-related changes
- We will credit the reporter (unless they prefer anonymity)
To stay informed about security updates:
- Watch the GitLab repository
- Monitor the CHANGELOG for security-related entries
- Follow releases on PyPI
Path Traversal Vulnerability - Fixed in version 0.7.5 (2025-11-23)
- Severity: Medium
- Description: User-provided paths were not validated, allowing potential path traversal attacks
- Fix: Added
Path.resolve(strict=True)for path canonicalization and symlink detection - CVE: None assigned (discovered internally during code review)
- Credit: Internal security review
If you have questions about this security policy, please open an issue on GitLab or contact the maintainers directly.