godot-platform-web

Warn

Audited by Gen Agent Trust Hub on Oct 13, 2026

Risk Level: MEDIUMDYNAMIC_EXECUTIONREMOTE_CODE_EXECUTIONINDIRECT_PROMPT_INJECTION
Full Analysis
  • [DYNAMIC_EXECUTION]: Several scripts use JavaScriptBridge.eval() with string interpolation to execute dynamically generated JavaScript in the browser context.\n
  • Evidence: scripts/web_clipboard_interface.gd uses %s interpolation for text copied to the clipboard.\n
  • Evidence: scripts/web_external_url_opener.gd uses %s interpolation for URLs passed to window.open().\n
  • Evidence: scripts/web_bridge_sync.gd uses %s interpolation for keys and data saved to localStorage.\n
  • Risk: This pattern is vulnerable to JavaScript injection if the interpolated variables contain malicious payloads, potentially allowing for Cross-Site Scripting (XSS) within the game's origin.\n- [REMOTE_CODE_EXECUTION]: The skill implements functionality to download and load remote Godot resource packs (PCK files) at runtime.\n
  • Evidence: scripts/web_resource_lazy_loader.gd downloads a file via HTTPRequest and executes it using ProjectSettings.load_resource_pack(body).\n
  • Risk: Loading remote PCK files is a powerful capability that allows executing arbitrary code and loading resources. If an attacker can control the source URL, they can gain control over the engine environment.\n- [INDIRECT_PROMPT_INJECTION]: The skill provides an attack surface where instructions embedded in external data could influence high-privilege engine capabilities.\n
  • Ingestion points: Remote PCK URLs in scripts/web_resource_lazy_loader.gd, clipboard text in scripts/web_clipboard_interface.gd, and target URLs in scripts/web_external_url_opener.gd.\n
  • Boundary markers: None; inputs are directly interpolated into execution strings without delimiters or safety warnings.\n
  • Capability inventory: Arbitrary JavaScript execution (eval), remote resource loading (load_resource_pack), and network requests (HTTPRequest).\n
  • Sanitization: Some scripts like scripts/web_json_rpc_bridge.gd use json_escape(), but others rely on raw string interpolation which does not prevent injection.
Audit Metadata
Risk Level
MEDIUM
Analyzed
Oct 13, 2026, 02:33 AM