Ferrum Edge is pre-release. Cargo.toml declares version 0.9.0 and no v*
release tag has been cut yet, so there is no released line to support and no
previous minor to fall back to.
| Version | Status | Security updates |
|---|---|---|
main / 0.9.0 (pre-release) |
active build-out; breaking changes expected | ✅ fixed on main |
latest rolling prerelease (built from main) |
evaluation only, not for production | ✅ via the next rolling build |
Any tagged v* release |
none exists yet | — |
Until the first v* tag, run a pinned build from main and update it to take a
security fix; there is no backport target. The support window per minor, the
deprecation notice period, and the security-fix backport policy that will apply
from 1.0 are in
docs/support_policy.md — the values there are
proposed until that first tag.
We take security vulnerabilities seriously. If you discover a security issue in Ferrum Edge, please report it responsibly.
Please do not open public GitHub issues for security vulnerabilities.
Instead, send an email to: contact@ferrumedge.com
Include the following information:
- Description of the vulnerability
- Steps to reproduce (if applicable)
- Potential impact
- Suggested fix (if you have one)
- Your contact information for follow-up
- Acknowledgment: Within 48 hours of receiving your report
- Initial assessment: Within 5 business days
- Fix timeline: Depends on severity and complexity
- Critical: 7 days target
- High: 30 days target
- Medium: 90 days target
- Disclosure: Coordinated with reporter, typically after fix is released
- We will confirm receipt of your vulnerability report
- We will assess the severity and impact
- We will work on a fix and may ask for additional information
- We will credit you in the security advisory (unless you prefer to remain anonymous)
- We will not take legal action against researchers who follow responsible disclosure
- Use TLS everywhere: Frontend, backend, and database connections
- Enable mTLS: For backend authentication and zero-trust architectures
- Set strong JWT secrets: Use cryptographically secure random values
- Bound remote signing-key trust:
jwks_authdefaultsjwks_max_stale_secondsto one hour and never permits an unlimited value. Set a shorter value when emergency issuer-key revocation must converge more quickly, while accounting for the availability impact of an IdP outage. - Configure rate limiting: Protect against abuse and DoS
- Use IP restrictions: Limit admin API access to trusted sources
- Keep dependencies updated: Monitor for security advisories
- Enable audit logging: Track administrative changes
- Run with minimal privileges: Don't run as root in containers
- Protect the configuration database and its backups: Consumer API keys
(
keyauth) and shared secrets (jwt,hmac_auth) are stored recoverable at rest so the gateway can verify them; only Basic passwords are hashed. A database, replica, or backup read recovers them. See Credential storage at rest.
Ferrum Edge includes several security-focused features:
- mTLS support: Frontend and backend mutual TLS authentication
- JWT-based authentication: Secure admin API with configurable secrets
- Rate limiting: Token-bucket and Redis-backed distributed rate limiting
- IP restrictions: Whitelist/blacklist client IP addresses
- Request size limiting: Prevent large payload attacks
- Bot detection: Identify and block automated threats
- CORS handling: Configure cross-origin request policies
- Audit logging: Track all administrative changes
See the following documentation for detailed security configuration:
- Production hardening checklist — start here
- Threat model — trust boundaries, controls, and documented residuals
- Frontend TLS/mTLS
- Backend mTLS
- Database TLS
- Client IP Resolution
When security vulnerabilities are fixed, we will:
- Release a patched version
- Publish a security advisory on GitHub
- Update this document with details (after coordinated disclosure)
Ferrum Edge gates its dependency tree and the vendored, patched upstream crates
it carries in vendor/**. The authoritative, complete
vendored-patch inventory
— with owners, retirement triggers, the blocking advisory gate, time-boxed
exception expiry, the vendor drift guard, and the emergency security-update
process for vendored crates — is documented in
docs/dependency-policy.md.
Key controls:
- Blocking advisory gate.
cargo deny check advisories bans sources licensesruns on every PR (.github/workflows/ci.yml), once over the root workspace and once over the separateebpf/Cargo.tomlworkspace with the samedeny.toml. A RUSTSEC advisory not explicitly time-boxed indeny.tomlfails the build. - Weekly re-check.
.github/workflows/dependency-audit.ymlre-runs the gate against the latest advisory database, fails on expired exceptions, and reports when a vendored patch has merged upstream so it can be retired. This is why a fix in the reqwest/h3 lineage cannot be missed silently. - Vendor integrity.
tests/integration/vendor_integrity_tests.rspins every vendored file tovendor/VENDOR_INTEGRITY.sha256; drift beyond the documented patches fails CI.
We thank the following security researchers who have responsibly disclosed vulnerabilities:
No vulnerabilities have been publicly disclosed at this time.
For questions about security practices or to report security concerns, contact: contact@ferrumedge.com