Conversation
Two traces of a tool contract changing under an agent that had already bound it. One: a tool re-declares destructiveHint true after an approval policy cached it into an auto-approve class, and the next call runs destructively with no human asked. Two: a tool's output schema widens under a stable server identity, and a schema-agnostic context append carries three unentitled fields into the model context, the user-facing answer and the observability sink. Both sessions are fully synthetic. The preconditions are cited to the MCP specification - destructiveHint's own definition and default, annotations untrusted from an untrusted server, a tool definition carrying no version, tools/list_changed as a SHOULD - and to CVE-2025-54136, where a once-granted approval of an MCP entry survived a later change to what was approved; both entries state plainly what the CVE does and does not establish about this trace's mechanism. index.csv regenerated against the merged schema PR and GenAI-Security-Project#67's entry, three rows total.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The follow-up promised in #62: the two seed entries and
index.csv, now that the schema and validator have merged.DSGAI-TRACE-mcp-declared-effect-flip-stale-autoapproval- a tool re-declaresdestructiveHint: trueafter an approval policy has already cached it into an auto-approve class, and the next call runs destructively with no human asked.DSGAI-TRACE-mcp-output-schema-expansion-context-overshare- a tool's output schema widens under a stable server identity, and a schema-agnostic context append carries three unentitled fields into the model context, the user-facing answer, and the observability sink.Both are
derived_from_public_documentation: fully synthetic sessions built around a precondition the MCP specification itself establishes (annotations untrusted from an untrusted server, no version field on a tool definition,tools/list_changedas a SHOULD,outputSchemaobligations attaching to whatever schema is current), plus CVE-2025-54136 for the first entry, with the entry stating plainly what the CVE does and does not establish about the non-adversarial mechanism it illustrates.index.csvis rebuilt againstmainas it stands now, so it includes #67's entry alongside these two - three rows total.Verification
Rebased on the current
maintip in a clean worktree (not cherry-picked over a stale base), so there's nothing here that predates #67's entry or the merged schema.