{"version":"2.1.219","anchor":"mcp-policy-url-expansion-fails-closed-on-wildcard-injecting-","canonical_anchor":"mcp-policy-url-expansion-fails-closed-on-wildcard-injecting-","heading":"MCP policy URL expansion fails closed on wildcard-injecting env values","tier":"notice","area":"MCP","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.219\/e\/mcp-policy-url-expansion-fails-closed-on-wildcard-injecting-","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.219","markdown":"### MCP policy URL expansion fails closed on wildcard-injecting env values\n\nMCP policy URL allowlists now refuse environment variables that sneak wildcards in and widen a match.\n\n**What**\n\nExpanding `${VAR}` inside MCP policy URL predicates now detects environment values that smuggle in wildcard semantics and refuses to treat the resulting predicate as safe.\n\n**Details**\n\n- The expander gains a `wildcardVars` output listing offending variables.\n- A value counts as a wildcard if it contains `*` after NFKC normalization, matches `%2a` case-insensitively, or decodes to a `*` after percent-decoding.\n- A predicate whose expansion pulled in any such variable is marked unsafe alongside the existing host, hash and query checks.\n- Allowlist URL entries using such an expansion fail closed; denylist entries are unaffected.\n- The expander also gained a fallback env map so policy-settings env can supply variables missing from the process env.\n- Neither `wildcardVars` nor the check existed in the previous build; this closes a route to widening a policy match through an environment variable.\n\n**Evidence**\n\n`wildcardVars`, `a value injected wildcard semantics`\n\n- Area: MCP\n- Tier: You'll notice\n- Useful: 3\/5\n- Signal: 0\/5"}