godot-genre-romance
Pass
Audited by Gen Agent Trust Hub on Oct 12, 2026
Risk Level: SAFEINDIRECT_PROMPT_INJECTIONDYNAMIC_EXECUTION
Full Analysis
- [DYNAMIC_EXECUTION]: The
DialogueExpressionParserscript utilizes Godot's built-inExpressionclass to parse and execute logic strings at runtime. While this is a standard technique for evaluating narrative conditions in game engines, it represents dynamic execution of logic based on string variables. - Evidence: In
scripts/dialogue_expression_parser.gd, thecan_show_choicefunction usesExpression.new(),expression.parse(condition, ...)andexpression.execute(...)to evaluate game state logic from text. - [INDIRECT_PROMPT_INJECTION]: The skill implements a pattern in
romance_patterns.gdthat enables hyperlinked choices within UI text by connecting metadata clicks directly to the operating system's default shell handler. This creates a vulnerability surface where malicious links or local file paths can be injected into narrative data. - Ingestion points: Narrative and dialogue data rendered via
RichTextLabelcomponents in the game UI. - Capability inventory:
OS.shell_open()(capable of opening external URLs, local file paths, and system handlers). - Boundary markers: None; the implementation lacks delimiters or warnings to treat embedded instructions in narrative data as untrusted.
- Sanitization: Absent; the logic passes the
metacontent directly to the shell handler without verifying the URL scheme or validating the destination. - Evidence:
scripts/romance_patterns.gddefinessetup_meta_links, which connects themeta_clickedsignal of aRichTextLabelto a lambda function executingOS.shell_open(str(meta)).
Audit Metadata