This skill is highly vulnerable to arbitrary code execution, data
Claims to do
@json-render/react: React renderer that converts JSON specs into React component trees.
Actually does
This skill provides a React renderer (`@json-render/react`) that consumes JSON specifications and a component registry to build React component trees. It uses `zod` for schema validation and includes utilities for state management, event handling, and dynamic prop expressions. It can fetch JSON specs from API endpoints via `useUIStream`.
The `$computed` expression allows calling registered functions with resolved arguments. If the `functions` registry can be controlled by untrusted input (e.g., AI-generated spec), an attacker could register and execute arbitrary code, leading to command execution or data exfiltration.
{ "$computed": "fn", "args": { ... } }The `useUIStream` hook allows streaming UI specifications from an external API endpoint. If this endpoint is compromised or untrusted, it could serve malicious UI definitions, leading to arbitrary code execution or data exfiltration through the rendered components.
`useUIStream` | Stream specs from an API endpoint
Built-in actions like `setState`, `pushState`, `removeState`, and `validateForm` are "injected into AI prompts" and handled automatically. This allows an AI (potentially manipulated) to directly alter application state or trigger validation without explicit declaration, which could lead to state corruption or unintended side effects.
Built-in Actions | The setState, pushState, removeState, and validateForm actions are built into the React schema and handled automatically by ActionProvider. They are injected into AI prompts without needing to be declared in catalog actions:
Dynamic prop expressions, especially `$computed` functions and complex conditional logic (`$cond`, `$and`, `$or`), if not carefully implemented and rate-limited, could be exploited by a malicious spec to trigger excessive computation, leading to denial of service or resource exhaustion.
{ "$computed": "fn", "args": { ... } }The system renders AI-generated JSON specs into React components. If string properties or `$template` expressions are not properly sanitized and escaped before rendering into HTML, an attacker could inject malicious scripts, leading to XSS.
description: "...rendering AI-generated specs."
Since the system renders AI-generated specs into UIs, a malicious AI could be prompted to create deceptive or phishing interfaces. These UIs, if presented to a human overseer or end-user, could be used for social engineering attacks.
description: "...rendering AI-generated specs."
[](https://mondoo.com/ai-agent-security/skills/github/vercel-labs/json-render/react)<a href="https://mondoo.com/ai-agent-security/skills/github/vercel-labs/json-render/react"><img src="https://mondoo.com/ai-agent-security/api/badge/github/vercel-labs/json-render/react.svg" alt="Mondoo Skill Check" /></a>https://mondoo.com/ai-agent-security/api/badge/github/vercel-labs/json-render/react.svgSkills can read files, run commands, and access credentials. Mondoo helps organizations manage the security risks of AI agent skills across their entire fleet.