{ "version": "0.1.0", "id": "owasp-map", "description": "Finding-id prefix to OWASP taxonomy codes, in four parallel maps. Every map is keyed by the same 16 scanner prefixes, so a finding carrying a prefix can be placed in whichever taxonomy a report is written against. An empty array means the seed implementation deliberately maps that prefix to nothing in that taxonomy - it is data, not a gap to fill.", "$comment": "Extracted without behaviour change from llm-security/scanners/lib/severity.mjs (OWASP_MAP, OWASP_AGENTIC_MAP, OWASP_SKILLS_MAP, OWASP_MCP_MAP), delivered as operator dump 2/2 through the local coord mailbox on 2026-08-09. The dump states that a fallback map inside one of llm-security's own agent definitions covers only part of the prefix set; that is known drift in the consumer and is explicitly NOT inherited here. The maps below are the complete 16-prefix set from severity.mjs.", "provenance": { "source_repo": "llm-security", "source_files": [ "scanners/lib/severity.mjs" ], "source_exports": [ "OWASP_MAP", "OWASP_AGENTIC_MAP", "OWASP_SKILLS_MAP", "OWASP_MCP_MAP" ], "source_delivery": "operator dump 2/2, coord message from llm-security, 2026-08-09", "source_commit": "unknown - not supplied with the dump", "verified": "differentially, against the dump", "evidence_limits": [ "The dump is a transcription of the source module, not the module file itself. The checks recorded for this file prove that this JSON agrees with the DUMP; dump-to-module fidelity is llm-security's assertion, not a result reproduced here.", "What each scanner prefix MEANS was not supplied. The prefixes are reproduced as opaque keys; no expansion of UNI, ENT, PRM and the rest is invented here.", "Which EDITION of each taxonomy these codes belong to was not supplied. See open_questions - this is the one thing in this file a consumer can get wrong while matching it exactly." ] }, "prefixes": { "$comment": "The 16 finding-id prefixes, in source order. All four maps carry exactly these keys in exactly this order; verified, not assumed. Meanings were not supplied and are not invented - a consumer resolves a prefix against the producing scanner, not against this file.", "keys": [ "UNI", "ENT", "PRM", "DEP", "TNT", "GIT", "NET", "TFA", "MCI", "MEM", "SCR", "PST", "WFL", "TRG", "SIG", "AST" ], "count": 16 }, "open_questions": [ { "id": "taxonomy-edition-unstated", "question": "Which edition of each OWASP taxonomy do these codes refer to?", "why_it_matters": "OWASP's Top 10 for LLM Applications was renumbered between editions: in the 2025 edition LLM06 is Excessive Agency, and entries present in the earlier list were consolidated into other numbers, with System Prompt Leakage and Vector and Embedding Weaknesses added as LLM07 and LLM08. A bare code such as LLM06 therefore does not identify a risk on its own. Two runtimes can reproduce this map perfectly and still publish reports that disagree about what a finding means, which is precisely the failure this repository exists to prevent.", "status": "open - reported to llm-security, to be decided where the maps are maintained", "resolution_shape": "An edition or version string per taxonomy, recorded alongside code_prefix. Deliberately left null rather than guessed." } ], "taxonomies": { "llm": { "source_export": "OWASP_MAP", "code_prefix": "LLM", "taxonomy_name": null, "codes_used": [ "LLM01", "LLM02", "LLM03", "LLM06" ], "unmapped_prefixes": [], "map": { "UNI": [ "LLM01" ], "ENT": [ "LLM01", "LLM03" ], "PRM": [ "LLM06" ], "DEP": [ "LLM03" ], "TNT": [ "LLM01", "LLM02" ], "GIT": [ "LLM03" ], "NET": [ "LLM02", "LLM03" ], "TFA": [ "LLM01", "LLM02", "LLM06" ], "MCI": [ "LLM01", "LLM02" ], "MEM": [ "LLM01" ], "SCR": [ "LLM03" ], "PST": [ "LLM01", "LLM06" ], "WFL": [ "LLM02", "LLM06" ], "TRG": [ "LLM06" ], "SIG": [ "LLM03", "LLM02" ], "AST": [ "LLM01", "LLM02" ] } }, "agentic": { "source_export": "OWASP_AGENTIC_MAP", "code_prefix": "ASI", "taxonomy_name": null, "codes_used": [ "ASI01", "ASI02", "ASI03", "ASI04", "ASI05" ], "unmapped_prefixes": [ "TRG", "AST" ], "map": { "UNI": [ "ASI01" ], "ENT": [ "ASI01", "ASI04" ], "PRM": [ "ASI02", "ASI03" ], "DEP": [ "ASI04" ], "TNT": [ "ASI01", "ASI05" ], "GIT": [ "ASI04" ], "NET": [ "ASI02", "ASI05" ], "TFA": [ "ASI01", "ASI02", "ASI05" ], "MCI": [ "ASI01", "ASI04" ], "MEM": [ "ASI01", "ASI02" ], "SCR": [ "ASI04" ], "PST": [ "ASI02", "ASI03", "ASI04", "ASI05" ], "WFL": [ "ASI04" ], "TRG": [], "SIG": [ "ASI04" ], "AST": [] } }, "skills": { "source_export": "OWASP_SKILLS_MAP", "code_prefix": "AST", "taxonomy_name": null, "codes_used": [ "AST01", "AST02", "AST03", "AST04", "AST05", "AST06" ], "unmapped_prefixes": [ "WFL", "SIG" ], "map": { "UNI": [ "AST05" ], "ENT": [ "AST02", "AST05" ], "PRM": [ "AST03" ], "DEP": [ "AST06" ], "TNT": [ "AST01", "AST02" ], "GIT": [ "AST06" ], "NET": [ "AST02" ], "TFA": [ "AST01", "AST02", "AST03" ], "MCI": [ "AST01", "AST02" ], "MEM": [ "AST01", "AST05" ], "SCR": [ "AST06" ], "PST": [ "AST01", "AST03" ], "WFL": [], "TRG": [ "AST04" ], "SIG": [], "AST": [ "AST02" ] } }, "mcp": { "source_export": "OWASP_MCP_MAP", "code_prefix": "MCP", "taxonomy_name": null, "codes_used": [ "MCP01", "MCP02", "MCP03", "MCP04", "MCP05", "MCP06", "MCP07", "MCP09", "MCP10" ], "unmapped_prefixes": [ "WFL", "TRG", "SIG", "AST" ], "map": { "UNI": [ "MCP06" ], "ENT": [ "MCP01", "MCP06" ], "PRM": [ "MCP02", "MCP07" ], "DEP": [ "MCP04" ], "TNT": [ "MCP05", "MCP06" ], "GIT": [ "MCP04" ], "NET": [ "MCP02", "MCP10" ], "TFA": [ "MCP03", "MCP06" ], "MCI": [ "MCP03", "MCP06", "MCP09" ], "MEM": [ "MCP05", "MCP06" ], "SCR": [ "MCP04" ], "PST": [ "MCP02", "MCP07" ], "WFL": [], "TRG": [], "SIG": [], "AST": [] } } }, "totals": { "taxonomies": 4, "prefixes": 16, "entries": 64 } }