godot-platform-web
Warn
Audited by Gen Agent Trust Hub on Oct 14, 2026
Risk Level: MEDIUMREMOTE_CODE_EXECUTIONCOMMAND_EXECUTIONINDIRECT_PROMPT_INJECTION
Full Analysis
- [REMOTE_CODE_EXECUTION]: The script
scripts/web_resource_lazy_loader.gdimplements the capability to download and execute Godot resource packs (PCKs) from remote URLs.\n - Evidence: The
load_remote_pck(url)function usesHTTPRequestto fetch a binary payload and subsequently callsProjectSettings.load_resource_pack(body). Since PCK files can contain compiled GDScript, this allows for arbitrary code execution within the engine environment if the source URL is not strictly validated or comes from an untrusted source.\n- [COMMAND_EXECUTION]: Multiple scripts utilizeJavaScriptBridge.eval()with direct string interpolation of function arguments, creating several points for JavaScript injection within the browser environment.\n - Evidence in
scripts/web_clipboard_interface.gd: Thecopy_text(text)function interpolates thetextparameter directly into the JS string:navigator.clipboard.writeText('%s'). An attacker-controlled string can break the literal context to execute arbitrary JavaScript.\n - Evidence in
scripts/web_bridge_sync.gd: The functionssave_to_local_storage(key, ...),load_from_local_storage(key),set_tab_title(title), andsend_analytics_event(event_name, ...)all use raw string interpolation for their respectiveevalcalls, allowing for injection via thekey,title, orevent_nameparameters.\n - Evidence in
scripts/web_external_url_opener.gd: Theopen_url(url, ...)function interpolates theurlargument intowindow.open('%s', ...), posing a similar risk if the input is not sanitized.\n- [INDIRECT_PROMPT_INJECTION]: The skill architecture creates significant attack surfaces by ingesting untrusted data and routing it to powerful engine or browser capabilities.\n - Ingestion points: Data enters the system through remote URLs (
web_resource_lazy_loader.gd), JavaScript messages via thesendToGodotbridge (web_json_rpc_bridge.gd), and the browser clipboard (web_clipboard_interface.gd).\n - Capability inventory: The skill has access to JavaScript execution (
JavaScriptBridge.eval), browser storage, and dynamic resource loading (ProjectSettings.load_resource_pack).\n - Sanitization: There is inconsistent use of sanitization; while
web_json_rpc_bridge.gdusesjson_escape(), several other scripts (e.g.,web_bridge_sync.gd) use raw string interpolation for sensitive bridge operations.\n - Boundary markers: No explicit markers or warnings are used to ensure the agent ignores malicious instructions embedded within the ingested data.
Audit Metadata