Skip to content

Security Policy

Version: 1.0
Last Updated: October 14, 2025
Applies To: All TFGrid Studio projects


Reporting Security Vulnerabilities

We take security seriously. If you discover a security vulnerability, please report it responsibly.

🔒 How to Report

DO NOT create public GitHub issues for security vulnerabilities.

Instead, use one of these secure channels:

1. GitHub Security Advisory (Preferred)

  1. Go to the repository's Security tab
  2. Click "Report a vulnerability"
  3. Fill out the private advisory form
  4. Submit

2. Email

Send details to: security@tfgrid.studio

Encrypt with PGP: (optional but recommended)

-----BEGIN PGP PUBLIC KEY BLOCK-----
[PGP key will be published separately]
-----END PGP PUBLIC KEY BLOCK-----

📋 What to Include

Please provide:

  • Description: Clear explanation of the vulnerability
  • Impact: What an attacker could do
  • Affected versions: Which versions are vulnerable
  • Steps to reproduce: Detailed reproduction steps
  • Proof of concept: Code/commands demonstrating the issue (if applicable)
  • Suggested fix: If you have ideas (optional)
  • Your contact info: For follow-up questions

Example report:

Title: Mnemonic exposure in debug logs

Description:
When running with debug mode, the ThreeFold mnemonic is logged
in plain text to .tfgrid-compose/terraform-apply.log

Impact:
An attacker with access to log files could steal wallet credentials
and drain funds from the ThreeFold account.

Affected Versions:
tfgrid-compose v0.9.0 and earlier

Steps to Reproduce:
1. Enable debug mode
2. Run: tfgrid-compose --debug up <app>
3. Check: .tfgrid-compose/terraform-apply.log
4. Mnemonic visible in output

Suggested Fix:
Redact TF_VAR_mnemonic from all log output


Response Timeline

We aim to respond quickly to security reports:

Stage Timeline
Acknowledgment Within 24 hours
Initial Assessment Within 3 business days
Severity Rating Within 5 business days
Patch Development Varies by severity (see below)
Disclosure After patch is released

Severity-Based Timelines

Critical (CVSS 9.0-10.0):

  • Emergency patch within 7 days
  • Immediate notification to users

High (CVSS 7.0-8.9):

  • Patch within 30 days
  • Advance notification to users

Medium (CVSS 4.0-6.9):

  • Patch in next regular release
  • Standard release notes

Low (CVSS 0.1-3.9):

  • May be batched with other fixes
  • Documented in changelog

What Happens Next?

1. Triage

We will: - Confirm the vulnerability - Assess severity using CVSS - Determine affected versions - Identify fix priority

2. Fix Development

We will: - Develop a patch - Test thoroughly - Prepare security advisory - Plan coordinated disclosure

3. Disclosure

We will: - Release patched version - Publish security advisory - Update CHANGELOG - Credit you (if desired)

4. Communication

You will receive: - Regular updates on progress - Credit in security advisory (optional) - Recognition in Hall of Fame (optional)


Supported Versions

We provide security updates for:

Version Supported
0.9.x ✅ Yes (current)
0.8.x ❌ No
< 0.8 ❌ No

Recommendation: Always use the latest version.


Security Best Practices

For Users

Mnemonic Security

Store securely:

# Create secure config directory
mkdir -p ~/.config/threefold
chmod 700 ~/.config/threefold

# Store mnemonic with restricted permissions
echo "your twelve word mnemonic here" > ~/.config/threefold/mnemonic
chmod 600 ~/.config/threefold/mnemonic

# Verify permissions
ls -la ~/.config/threefold/mnemonic
# Should show: -rw------- (600)

Never:

  • ❌ Commit mnemonics to version control
  • ❌ Share mnemonics in chat/email
  • ❌ Store in publicly accessible locations
  • ❌ Use same mnemonic across environments

Do:

  • ✅ Use environment variables in CI/CD
  • ✅ Rotate mnemonics regularly
  • ✅ Use separate mnemonics for dev/prod
  • ✅ Back up securely (encrypted offline storage)

SSH Key Management

Use strong keys:

# Generate Ed25519 key (recommended)
ssh-keygen -t ed25519 -f ~/.ssh/tfgrid_ed25519

# Or RSA 4096-bit
ssh-keygen -t rsa -b 4096 -f ~/.ssh/tfgrid_rsa

Protect private keys:

# Set correct permissions
chmod 600 ~/.ssh/tfgrid_ed25519
chmod 644 ~/.ssh/tfgrid_ed25519.pub

# Use passphrase (recommended)
ssh-keygen -p -f ~/.ssh/tfgrid_ed25519

WireGuard Security

Key management:

  • Generated keys stored in Terraform state
  • Private keys in /etc/wireguard/ (600 permissions)
  • Don't share WireGuard configurations

Network isolation:

  • WireGuard creates private networks
  • No default internet routing
  • Explicitly configure external access if needed

Deployment Security

State files contain sensitive data:

# Add to .gitignore
echo ".tfgrid-compose/" >> .gitignore
echo ".terraform/" >> .gitignore
echo "*.tfstate*" >> .gitignore

# Never commit:
# - .tfgrid-compose/
# - Terraform state files
# - WireGuard configs
# - Private keys

Clean up after testing:

# Remove sensitive logs
rm -rf .tfgrid-compose/

# Remove WireGuard configs
sudo rm -f /etc/wireguard/wg*.conf

For Contributors

Code Security

Never commit:

  • API keys or tokens
  • Passwords or secrets
  • Private keys
  • Mnemonics or seed phrases
  • Personal data

Use secure coding practices:

  • Validate all inputs
  • Sanitize log output
  • Use parameterized commands (avoid injection)
  • Check file permissions
  • Handle errors securely

Example - Redacting sensitive data:

# ❌ Bad: Logs mnemonic
echo "Using mnemonic: $TF_VAR_mnemonic"

# ✅ Good: Redacts mnemonic
if [ -n "$TF_VAR_mnemonic" ]; then
    echo "Mnemonic loaded successfully"
else
    echo "Mnemonic not found"
fi

Dependency Security

Keep dependencies updated:

# Check for updates
ansible --version
terraform --version
tofu --version

# Update to latest
sudo apt update && sudo apt upgrade

Review third-party code:

  • Audit pattern contributions
  • Review Terraform modules
  • Check Ansible roles
  • Verify scripts before execution

For Maintainers

Release Security

Before release:

  • Review all PRs for security issues
  • Run security scanners
  • Check for hardcoded secrets
  • Verify dependency versions
  • Test in isolated environment

Release checklist:

  • No hardcoded credentials
  • Dependencies up to date
  • Security advisory reviewed
  • CHANGELOG includes security fixes
  • Version bumped appropriately

Incident Response

If vulnerability found: 1. Assess severity immediately 2. Notify security team 3. Develop fix in private 4. Test thoroughly 5. Coordinate disclosure 6. Release patch 7. Notify users


Common Security Issues

Mnemonic Exposure

Risk: High - Can lead to fund theft

Vectors:

  • Logs containing mnemonics
  • Committed to version control
  • Insecure file permissions
  • Exposed in error messages

Prevention:

  • Redact from all logs
  • Check file permissions
  • Use .gitignore
  • Sanitize error output

State File Exposure

Risk: Medium - Contains deployment details

Vectors:

  • Committed to version control
  • Publicly accessible storage
  • Insufficient file permissions

Prevention:

  • Add to .gitignore
  • Use secure state backends
  • Restrict file permissions
  • Clean up after use

SSH Key Compromise

Risk: High - Unauthorized VM access

Vectors:

  • Weak key strength
  • No passphrase
  • Insecure storage
  • Shared keys

Prevention:

  • Use Ed25519 or RSA 4096
  • Use passphrases
  • Restrict permissions (600)
  • Unique keys per deployment

WireGuard Config Exposure

Risk: Medium - Network access

Vectors:

  • World-readable files
  • Committed to repos
  • Shared configurations

Prevention:

  • 600 permissions on configs
  • Don't commit configs
  • Rotate keys regularly

Security Features

Current Security Measures

tfgrid-compose implements:

  1. Mnemonic Protection
  2. Environment variable isolation
  3. File permission checks
  4. Warning on insecure permissions

  5. SSH Key Security

  6. System key usage (not embedded)
  7. Key-based auth only (no passwords)
  8. Multiple key type support

  9. WireGuard Encryption

  10. End-to-end encrypted tunnels
  11. Private network isolation
  12. Automatic key generation

  13. State Isolation

  14. Local state directory
  15. Git-ignored by default
  16. Per-deployment separation

  17. Input Validation

  18. Path validation
  19. Manifest validation
  20. Prerequisite checks

Planned Security Enhancements

Roadmap:

  • Encrypted state backends (v0.11.0)
  • Secrets management integration (v0.12.0)
  • Automated security scanning (v1.0.0)
  • Supply chain verification (v1.1.0)
  • Zero-knowledge deployment options (v2.0.0)

Security Audits

Status: No formal audit completed yet

Planned:

  • Community review: Ongoing
  • First formal audit: Planned for v1.0.0
  • Regular audits: Annually after 1.0

Want to help?

  • Review code for security issues
  • Report vulnerabilities responsibly
  • Contribute security improvements

Hall of Fame

We recognize security researchers who help keep TFGrid Studio secure.

Contributors:

  • Be the first!

Acknowledgment options:

  • GitHub profile link
  • Twitter handle
  • Company name
  • Anonymous

Contact

Security Team: security@tfgrid.studio
General Inquiries: contact@tfgrid.studio
Code of Conduct: Code of Conduct


Safe Harbor

TFGrid Studio supports safe harbor for security researchers who: - Make good faith effort to avoid harm - Follow responsible disclosure - Don't access/modify user data without permission - Don't perform DoS attacks - Don't spam or cause disruption

We will not pursue legal action against researchers who follow these guidelines.

Scope

In scope:

  • tfgrid-compose
  • tfgrid-ai-agent
  • tfgrid-docs website
  • Official infrastructure

Out of scope:

  • Third-party services (ThreeFold Grid itself)
  • User deployments
  • Community projects
  • Social engineering

Thank you for helping keep TFGrid Studio secure! 🔒

TFGrid Studio Ecosystem

Integrated tools and resources