Dangerous exec
- Finding
- Shell command execution detected (child_process).
Security checks across static analysis, malware telemetry, and agentic risk
This appears to be a real Telegram MCP bridge, but it exposes broad Telegram read/write/delete control through persistent unauthenticated local services.
Install only if you fully trust the publisher and the external @telebiz/telebiz-mcp package. Run it on a private machine, firewall ports 9716/9717/9718, bind services to localhost, add authentication, and require confirmation before any send, delete, forward, batch, or member-management action.
64/64 vendors flagged this skill as clean.
Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.
A web page, local process, or reachable network client could invoke Telegram tools through the user's authenticated session, including sending or deleting messages.
The HTTP MCP endpoint accepts POSTed tool calls with wildcard CORS and no authentication, authorization, localhost bind, or per-tool approval check visible in the code.
res.setHeader('Access-Control-Allow-Origin', '*'); ... if (req.url === '/mcp' && req.method === 'POST') { ... const result = await handleMcpRequest(body); } ... server.listen(HTTP_PORT, () => {Bind the server to 127.0.0.1, remove wildcard CORS, require a local auth token, and require explicit user confirmation for destructive or outward-facing Telegram actions.
An unauthorized process that can reach the relay could send tool requests to the authenticated browser, or register as an executor and spoof or intercept agent interactions.
The relay accepts any connection that claims to be a client or executor and forwards client messages to the browser executor, with no identity verification or shared secret shown.
const wss = new WebSocketServer({ port: PORT }); ... if (message.role === 'executor') { ... executor = ws; } else if (message.role === 'client') { clients.add(ws); } ... const response = await sendToExecutor(message);Authenticate both client and executor connections, restrict the listener to localhost/private interfaces, and reject attempts to replace the executor unless explicitly approved.
The agent can act as the user on Telegram, including affecting private chats, public groups/channels, and other people through messages or member changes.
The skill operates through a full authenticated Telegram browser session and exposes account-level read/write/member-management actions rather than a narrowly scoped credential or read-only capability.
Go to **https://telebiz.io** and login with your Telegram account. ... `sendMessage` ... `forwardMessages` ... `deleteMessages` ... `addChatMembers` ... `removeChatMember` ... `createGroup`
Use a dedicated low-risk Telegram account where possible, clearly declare the session credential boundary, and require explicit user approval before send, delete, forward, or member-management tools run.
The behavior ultimately depends on the external npm package version present on the machine, which may differ from what was reviewed here.
The core Telegram bridge is installed globally from npm without a pinned version in the setup instructions, and the reviewed wrapper later runs the telebiz-mcp command from the environment.
npm install -g @telebiz/telebiz-mcp
Pin the @telebiz/telebiz-mcp version, verify its publisher/source, and avoid running unreviewed global updates with an authenticated Telegram session.
Telegram access may remain available longer than the immediate task, increasing exposure if another process can reach the local service.
The service is designed to keep the MCP subprocess alive by restarting it after exit, which is disclosed and purpose-aligned but creates persistent availability of the Telegram bridge.
log('Auto-restarting MCP process...'); startMcpProcess().catch(e => log(`Restart failed: ${e}`));Start the bridge only when needed, provide a clear stop command, and disable auto-restart/cron monitoring unless continuous Telegram access is required.