Skip to content

v0.7.3 — HTTP serve security hardening

Choose a tag to compare

@activeing123 activeing123 released this 03 Sep 02:28
· 61 commits to main since this release

Security patch from the 2026-09-02 red-team code audit. No new features - pure hardening of mcptoon serve HTTP mode.

Security fixes

  • Loopback-by-default: bare --http / --listen :8080 binds 127.0.0.1 (was 0.0.0.0)
  • Non-loopback bind requires --auth - refused outright otherwise (exit 2); the LAN-exposed + unauthenticated combination can no longer be constructed
  • Bare --auth auto-generates a secure token (printed once, Jupyter-style)
  • Auth on GET too, before body parsing - /health /status no longer skip the token check
  • Origin/Host browser guard - CSRF + DNS-rebinding protection on every request (curl/agents unaffected); allowlist via MCPTOON_ALLOWED_HOSTS
  • Content-Type gate - browser form-post carriers (text/plain, multipart) rejected with 415
  • prompts/get runs the injection scanner on SKILL.md bodies (previously unscanned)

Scanner hardening

  • _check_poisoning: full-text scan (5000-char truncation bypass closed), NFKC fold (fullwidth homoglyphs), zero-width char strip + density signal, Chinese indicator list

Tests: 660 passed (+30 new security tests). Upgrade: pip install -U mcptoon