If you discover a security vulnerability in Veil Stack, please report it responsibly.
Do not open a public GitHub issue for security vulnerabilities.
Instead, use GitHub Private Vulnerability Reporting or email security@veil-stack.dev (if available).
- Description of the vulnerability
- Steps to reproduce
- Potential impact
- Suggested fix (if any)
- Acknowledgment: Within 48 hours
- Initial assessment: Within 5 business days
- Fix or mitigation: Within 30 days for critical issues
- Access control:
addMember,removeMember,addImage,removeImage,addPortForImageare restricted to the contract owner - Status reporting:
reportStatusis restricted to the contract owner'sreportAddr— only the designated operator address can report node status - Reentrancy: No external calls in state-changing functions except event emission
- Integer overflow: Solidity ^0.8.0 has built-in overflow checks
- Docker socket: Never expose the Docker socket directly; use the Docker socket proxy (
tecnativa/docker-socket-proxy) - Private keys: The scheduler runs in read-only mode by default; MetaMask handles transaction signing
- Network: libp2p uses Noise encryption for all connections
- Resource limits: Containers are capped at 512MB memory and 50% CPU
- No formal audit: Canteen.sol has not been independently audited. A security audit is planned in Milestone 4.
- Testnet only: The contract is deployed on Filecoin Calibration (testnet). Do not use in production without a formal audit.
- Read-only mode: The recommended deployment mode uses MetaMask for transaction signing, keeping private keys out of the server process.
- Run
npm auditregularly to check for known vulnerabilities - Run
npm auditin CI to check for known vulnerabilities - Lockfile (
package-lock.json) is committed to ensure reproducible builds
- All libp2p connections are encrypted with Noise protocol
- GossipSub messages are signed by the sending peer
- mDNS discovery is limited to local network scope
- Bootstrap peers should be from trusted sources only