Summary
/_mocktioneer/{manifest,config,routes} (framework-supplied by edgezero_core::introspection, added in PR #110) are mounted on all four adapters, including fastly and cloudflare. They are unauthenticated, so on edge deployments the full route table and manifest are publicly enumerable.
This is intentional and safe today — it is a deliberate deploy-time footgun to track, not a live vulnerability.
Why it's safe right now
- The effective app config is only
bid_cpm — nothing sensitive.
- Mocktioneer declares no
[environment] section, so there is nothing for manifest to leak.
manifest redacts [environment.secrets]; config leaves #[secret] fields as unresolved key-name references.
- Mocktioneer is a mock bidder — the route table is not sensitive information.
- Documented with a warning in
docs/guide/configuration.md (Introspection Routes → "Unauthenticated").
The trigger — when this must be fixed
Harden before any of these land:
Options when we do
- Put auth/allowlist middleware in front of the
/_mocktioneer/* triggers (shared-token header or IP allowlist).
- Scope the three introspection triggers to
adapters = ["axum"] so they exist only on the local/dev adapter.
- Keep them public but assert in a test that
[environment.variables] stays empty, so adding one fails loudly.
Notes
Summary
/_mocktioneer/{manifest,config,routes}(framework-supplied byedgezero_core::introspection, added in PR #110) are mounted on all four adapters, includingfastlyandcloudflare. They are unauthenticated, so on edge deployments the full route table and manifest are publicly enumerable.This is intentional and safe today — it is a deliberate deploy-time footgun to track, not a live vulnerability.
Why it's safe right now
bid_cpm— nothing sensitive.[environment]section, so there is nothing formanifestto leak.manifestredacts[environment.secrets];configleaves#[secret]fields as unresolved key-name references.docs/guide/configuration.md(Introspection Routes → "Unauthenticated").The trigger — when this must be fixed
Harden before any of these land:
[environment.variables]section is added toedgezero.toml—manifestemits those verbatim (only[environment.secrets]is redacted).MocktioneerConfig.Options when we do
/_mocktioneer/*triggers (shared-token header or IP allowlist).adapters = ["axum"]so they exist only on the local/dev adapter.[environment.variables]stays empty, so adding one fails loudly.Notes