Skip to content

Security: Sorokit/contracts

Security

SECURITY.md

Security Policy

Reporting a Vulnerability

We take security seriously. If you discover a vulnerability in sorokit-contracts, please report it responsibly to help us protect our users.

How to Report

Please do not open a public GitHub issue for security vulnerabilities.

Instead, report security issues via email:

πŸ“§ security@sorokit.org

Include in your report:

  • Description of the vulnerability
  • Steps to reproduce
  • Potential impact
  • Suggested fix (if any)

Response Timeline

We will:

  • Acknowledge receipt within 24 hours
  • Provide an initial assessment within 48 hours
  • Release a fix within 7 days (for critical issues)
  • Coordinate with you on disclosure timing

Supported Versions

Security updates are provided for:

  • Current version (v0.1.0) β€” Full support
  • Patches applied to latest release branch

Security Considerations

Contract Deployment

When deploying sorokit contracts:

  1. Testnet Testing First

    • Deploy to testnet and test thoroughly
    • Verify all edge cases work as expected
  2. Code Audit

    • Have smart contracts audited by security professionals
    • Use the provided test suite as a baseline
  3. Key Management

    • Secure your deployment keys
    • Use hardware wallets for mainnet deployments
    • Never share private keys or seed phrases
  4. Network Configuration

    • Verify network passphrases before deployment
    • Use official Stellar network endpoints
    • Validate contract addresses before interaction

Escrow Contract

Security best practices:

  • Arbitrators: Choose trusted, independent arbitrators
  • Amounts: Start with small amounts in production
  • Verification: Users should verify counterparty addresses before depositing
  • Disputes: The arbitrator has significant power; choose carefully

Splitter Contract

Security best practices:

  • Admin Transfer: Transfer admin role only to trusted accounts
  • Split Validation: Verify splits sum to 10000 before distribution
  • Recipient Verification: Ensure all recipients are legitimate addresses
  • Token Safety: Only use contracts with known, audited tokens

Registry Contract

Security best practices:

  • Whitelist Management: Audit reader whitelist regularly
  • Data Sensitivity: Do not store sensitive data even with access control
  • TTL Usage: Use TTL for temporary data; don't rely on expiry for secrets
  • Version Tracking: Monitor version counter for unauthorized writes

Known Risks

Smart Contract Risks

  1. State Transition Errors

    • User error (sending to wrong address)
    • Frontrunning attacks on Soroban RPC
    • Network latency causing transaction races
  2. Token-Specific Risks

    • Non-standard token implementations
    • Wrapped token liquidity issues
    • Token pause/freeze mechanics
  3. Oracle-Free Design

    • No price feeds or external data
    • Relies entirely on user input and contracts
    • No dispute mechanism for price disagreement

Deployment Risks

  1. Private Key Exposure

    • Compromised deployment keys allow admin override
    • Lost keys make contract immutable
  2. Network Selection

    • Mainnet vs testnet mistakes
    • Using wrong network passphrase
  3. Contract Upgrades

    • No built-in upgrade mechanism
    • New deployments required for bug fixes
    • Data migration needed if state structure changes

Security Audit History

Version Date Auditor Status
v0.1.0 TBD Community Review Ongoing

Safe Usage Guidelines

For Contract Deployers

βœ… Do:

  • Test thoroughly on testnet first
  • Use well-known Stellar tokens (USDC, native XLM)
  • Document contract configuration
  • Monitor on-chain events
  • Keep audit trail of admin actions

❌ Don't:

  • Deploy untested code to mainnet
  • Use beta or experimental tokens
  • Disable access controls
  • Mix mainnet and testnet addresses
  • Give admin access to unknown parties

For Contract Users

βœ… Do:

  • Verify contract addresses independently
  • Start with small amounts
  • Understand contract terms before sending funds
  • Keep private keys secure
  • Report suspicious activity

❌ Don't:

  • Send funds to unverified addresses
  • Use contracts you haven't read the code for
  • Share transaction details with strangers
  • Assume funds are recoverable if lost
  • Use contracts during network instability

Disclosure Policy

We practice coordinated responsible disclosure:

  1. Discovery β€” Researcher finds vulnerability
  2. Report β€” Report to security@sorokit.org with details
  3. Triage β€” We assess severity and impact
  4. Fix β€” We develop and test a patch
  5. Disclosure β€” We release patch and credit researcher (if desired)
  6. Public β€” Vulnerability details published after fix is live

We request a 60-90 day embargo period before public disclosure to allow time for deployment and user updates.


Responsible Disclosure Credits

We thank the following researchers for responsibly disclosing vulnerabilities:

To be updated as security researchers responsibly disclose issues


Security Resources

Learning

Tools

Community


License

This security policy is published under the MIT License. It may be updated at any time without notice.

Last Updated: July 4, 2026


Questions? Contact: security@sorokit.org

There aren't any published security advisories