schema
3 TopicsProtecting your MCP Server from AI Vulnerabilities with F5 BIG-IP Advanced WAF JSON Schema Validation
This demo shows how a JSON schema can inform the BIG-IP how requests should be expected to come in. The F5 BIG-IP Advanced WAF can mitigate MCP server vulnerabilities by sanitizing parameters in requests allowing them to pass through to the MCP server. This demo covers two vulnerabilities from OWASP MCP Top 10. For more info on the OWASP MCP Top 10 vulnerabilities, click here. MCP02: Privilege Escalation via Scope Creep Scope creep can occur intentionally for convenience or accidentally through configuration drift allowing an agent to gain broad or administrative privileges to our MCP Server. As MCP servers connect to multiple systems, scope increases can result in a high-impact attack surface. Due to the nature of AI agents, an over-privileged agent can make unlabeled changes, trigger deployments, or access sensitive data without human review. For more information on OWASP MCP02: Privilege Escalation via Scope Creep, click here. MCP03: Tool Poisoning Schema poisoning occurs when an adversary tampers with the contract or schema definitions that govern agent-to-tool interactions in an MCP ecosystem. Schemas define the shape, types, and semantics of requests and responses — effectively the “language” agents use to call tools. If an attacker can modify a schema (or its metadata) so that a benign-sounding operation maps to a destructive action, agents that trust and follow the schema may inadvertently execute dangerous commands. Schema attacks are a supply-chain style compromise: the attacker doesn’t exploit a code bug directly, they change the contract so legitimate agents behave incorrectly while passing superficial validation. For more information on OWASP MCP03: Tool Poisoning, click here. Mitigating MCP02 and MCP03 Enforcing JSON Schema validation at the BIG-IP can mitigate requests that may allow excessive privilege to resources on our MCP server. This method gives security admins more control over how their MCP server can be used. In this video, we will demonstrate how an attacker can exploit MCP02 and MCP03 to gain access to resources unintended for them. Subsequently, we use JSON Schema validation to inform the F5 BIG-IP Advanced WAF's security policy on how a security admin would intend those resources to be accessed. Check out the video below for a demonstration of how the F5 BIG-IP's JSON Schema validation can mitigate MCP 02 and MCP 03.
274Views2likes0CommentsAS3 per-app JSON schema issue
Hello, I'd like to validate per-app declaration against vendor specific `per-app-schema` json schema file in vscode editor. Therefore I added there '$schema' object with valid schema file url, but it seems, that `$schema` object is not valid for per-app declaration. Here is my simple example (f5as3-ltm_app-based.cfg.yaml.as3.json file): { "$schema": "https://raw.githubusercontent.com/F5Networks/f5-appsvcs-extension/refs/heads/main/schema/3.56.0/per-app-schema.json", "schemaVersion": "3.54.0", "id": "urn:uuid:9ee77479-b1d9-5dfe-b0e6-bd1c65c10b8d", "controls": { "class": "Controls", "logLevel": "debug", "trace": true }, "app_test": { "class": "Application", "mon-tcp_test": { "class": "Monitor", "monitorType": "tcp", "remark": "AS3>app_test" } } } When I validate this file against per-app-schema.json it fails with this message: $ jsonschema -i f5as3-ltm_app-based.cfg.yaml.as3.json per-app-schema.json https://raw.githubusercontent.com/F5Networks/f5-appsvcs-extension/refs/heads/main/schema/3.56.0/per-app-schema.json: 'https://raw.githubusercontent.com/F5Networks/f5-appsvcs-extension/refs/heads/main/schema/3.56.0/per-app-schema.json' is not of type 'object' $schema: '$schema' does not match '^[A-Za-z][0-9A-Za-z_.-]*$' When '$schema' object is removed, validation using e.g. jsonschema is correct, but vscode can't validate edited file. I know, that I can map file to local schema file, but I'd like to use '$schema' object with url to vendor's schema file. It works for 'tenant-based' declaration (in vscode, also validation using e.g. jsonchema is correct): { "$schema": "https://raw.githubusercontent.com/F5Networks/f5-appsvcs-extension/refs/heads/main/schema/3.56.0/as3-schema.json", "class": "AS3", "action": "deploy", "persist": true, "declaration": { "class": "ADC", "schemaVersion": "3.56.0", "id": "urn:uuid:9ee77479-b1d9-5dfe-b0e6-bd1c65c10b8d", "updateMode": "selective", "tenant_test": { "class": "Tenant", "defaultRouteDomain": 0, "app_test": { "class": "Application", "mon-tcp_test": { "class": "Monitor", "monitorType": "tcp" } } } } } I checked per-app-schema.json file and it seems, '$schema' object is not valid configuration object - why? :) martin169Views0likes2CommentsHow to support multiple XML schemas in ASM?
We have an XML-over-HTTP web service which we are attempting to protect with the ASM. The problem I am finding is that there are multiple versions of the API, each of which has minor incompatibilities with the others. The backend application reads the Content-Type HTTP header (something like "application/com.foobar.api-v2+xml"), determines that this is version 2 of the XML API, and parses it accordingly. But the next request to come in might be from a customer running version 6 of the API; that will be encoded in the Content-Type header as "application/com.foobar.api-v6+xml". The application handles it; the ASM does not. How can I support multiple XML schemas in use for the same URI and parameters? I can associate a single XML profile with either of those, but not multiple XML profiles. I don't appear to be allowed multiple XML schemas for a single URL in a single XML profile. There doesn't appear to be a way to associate an XML profile with an HTTP header as there are for URIs and parameters.355Views0likes3Comments