Skip to content

Gate unauthenticated introspection routes before sensitive config lands in the manifest #116

Description

@aram356

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:

  • An [environment.variables] section is added to edgezero.tomlmanifest emits those verbatim (only [environment.secrets] is redacted).
  • Any non-trivial or tenant-specific field is added to MocktioneerConfig.
  • Mocktioneer is used for anything beyond public mock traffic.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Fields

    No fields configured for Task.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions