If you discover a security vulnerability in this project, please report it by emailing the project maintainers. Please do not create public GitHub issues for security vulnerabilities.
The ocf/ directory is a git submodule maintained by the Open Cap Table Coalition.
As of the latest audit, there are known vulnerabilities in the OCF submodule's dependencies:
- Critical (1): parse-url SSRF vulnerability (in documentation dependencies)
- High (3): parse-path, braces, ansi-html vulnerabilities (in documentation dependencies)
- Moderate (6): Various ReDoS and XSS vulnerabilities (in documentation/tooling dependencies)
- Low (1): tmp vulnerability (in development dependencies)
Impact: These vulnerabilities are in the OCF documentation generation tooling and do not affect runtime code. They are not used in production deployments of this cap table implementation.
Mitigation:
- The ocf submodule is only used for schema validation and sample data
- None of the vulnerable packages are part of the runtime API server or smart contracts
- Updates to the OCF submodule will be applied when the upstream project addresses these issues
We actively monitor and update our direct dependencies for security vulnerabilities. Run pnpm audit to see the current status.
When deploying this application:
- Environment Variables: Never commit
.envfiles with real credentials - Private Keys: Store blockchain private keys securely (e.g., using secret managers)
- Database: Use MongoDB with authentication enabled and restrict network access
- RPC Endpoints: Use authenticated RPC endpoints for blockchain access
- HTTPS: Always use HTTPS in production
- Updates: Keep dependencies updated regularly
| Version | Supported |
|---|---|
| 1.0.x | ✅ |
We use a multi-layered approach to smart contract security:
| Tool | Purpose | Output |
|---|---|---|
| Aderyn | Fast linting, IDE integration | report.md |
| Slither | Deep semantic analysis, taint tracking | chain/slither-report.md |
| Tool | Purpose | Location |
|---|---|---|
| Foundry Invariant Tests | Stateful fuzzing, property-based testing | chain/test/invariants/ |
# Run all security tools
make security
# Individual tools
make aderyn
make slither
make test-invariantSecurity checks run automatically on every PR via GitHub Actions (.github/workflows/security.yml):
- Slither analysis with SARIF upload to GitHub Security tab
- Invariant test suite
Aderyn (Rust):
cargo install aderynSlither (Python 3.10+):
pip install slither-analyzerBefore external audits:
- Run
make securityand address all high/medium findings - Run
make test-invariant-deepfor extended fuzzing - Review
report.mdandchain/slither-report.md - Ensure all tests pass:
make test
- MongoDB transactions support for atomic operations
- OCF schema validation on all API inputs
- Smart contract access control (RBAC)
- Event-driven architecture with blockchain as source of truth