MCP policy URL allowlists now refuse environment variables that sneak wildcards in and widen a match.
What's wrong with this entry?
Expanding ${VAR} inside MCP policy URL predicates now detects environment values that smuggle in wildcard semantics and refuses to treat the resulting predicate as safe.
- The expander gains a
wildcardVarsoutput listing offending variables. - A value counts as a wildcard if it contains
after NFKC normalization, matches%2acase-insensitively, or decodes to aafter percent-decoding. - A predicate whose expansion pulled in any such variable is marked unsafe alongside the existing host, hash and query checks.
- Allowlist URL entries using such an expansion fail closed; denylist entries are unaffected.
- The expander also gained a fallback env map so policy-settings env can supply variables missing from the process env.
- Neither
wildcardVarsnor the check existed in the previous build; this closes a route to widening a policy match through an environment variable.
wildcardVars, a value injected wildcard semantics
Strings lifted out of the shipped bundle, so the claim above can be checked against them.