Back to skill

Security audit

Bitrix24 REST API

Security checks for vulnerabilities and agentic risk

Overview

This is a real Bitrix24 integration, but it needs review because some paths can change business data without the confirmation its own instructions promise.

Review before installing. Use only a dedicated Bitrix24 webhook with the minimum scopes needed, avoid admin-wide permissions, and treat this skill as able to read and modify CRM, tasks, calendars, chats, files, sites, employee time data, and customer conversations. The publisher should fix batch confirmation enforcement and fail closed on unknown or irregular mutating methods before broad deployment.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/bitrix24_batch.py:24
Finding

State-Changing REST Operations Can Bypass Confirmation Controls

Content
View full analysis
str: """Classify method as 'read', 'write', or 'destructive'.""" if DESTRUCTIVE_SUFFIXES.search(method): return "destructive" if WRITE_SUFFIXES.search(method): return "write" return "read" ``` Confirmation is required only when the incomplete classifier recognizes a method: ```python # scripts/bitrix24_call.py:133-151 op_type = classify_operation(method) if args.dry_run: dry = { "dry_run": True, "method": method, "operation": op_type, "params_count": len(params), "source": source, } print(json.dumps(dry, ensure_ascii=True, indent=2)) return 0 if op_type == "write" and not args.confirm_write: print(json.dumps({ "ok": False, "error": f"Write operation '{method}' requires --confirm-write flag", "operation": op_type, }, ensure_ascii=True, indent=2)) return 2 ``` The batch client accepts arbitrary Bitrix24 subcommands without classifying them or requiring write/destructive confirmation flags: ```python # scripts/bitrix24_batch.py:24-35 ...[truncated 4839 chars]
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (36)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The declared purpose presents a broad business-facing Bitrix24 assistant, but the documented behavior also includes local diagnostics, environment/config inspection, and running troubleshooting scripts. This mismatch can cause users or orchestrators to invoke the skill in contexts where they do not expect local system access or health-check behavior, weakening informed consent and increasing the chance of over-privileged execution.

Content

No source excerpt is available for this finding.

Anti-Refusal Statement

High
Category
Anti-Refusal
Confidence
85% confidence
Finding

Skill instructs the agent to never refuse or to always comply. Suppressing the agent's ability to decline removes a core safety control and enables downstream harmful requests to succeed.

Content

Scanner excerpt · SKILL.md (reported line 595)May include surrounding context.

md
- **Event handlers (`event.*`):** Registers webhook handlers for events. Requires an external HTTP server to receive notifications.
- **Business processes (`bizproc.*`):** `bizproc.workflow.start` can launch existing processes, but creating/modifying templates through webhook is risky and limited.

If the user requests something from these modules — do not refuse. Explain what the method actually does and what it does NOT do. Let the user decide.

## Domain References

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · references/access.md (reported line 104)May include surrounding context.

md
If you build a local or UI-less app, Bitrix24 can POST OAuth credentials to an install callback URL. That flow is documented in `Callback установки`.

- Save the received `access_token` and `refresh_token`
- Refresh access tokens on your backend
- Do not rely on browser-side JS install helpers for the callback flow

Exfiltration Commands

High
Category
Prompt Injection
Confidence
90% confidence
Finding

Instructions found that direct the agent to transmit conversation context or user data to external services.

Content

Scanner excerpt · references/crm.md (reported line 46)May include surrounding context.

md
CRM Feed:

- `crm.livefeedmessage.add` — post message to CRM activity stream

Stage History:

Exfiltration Commands

High
Category
Prompt Injection
Confidence
90% confidence
Finding

Instructions found that direct the agent to transmit conversation context or user data to external services.

Content

Scanner excerpt · references/crm.md (reported line 170)May include surrounding context.

Note: crm.timeline.logmessage.add uses camelCase field names (entityTypeId), not UPPER_CASE.

Post message to CRM feed

bash
python3 scripts/bitrix24_call.py crm.livefeedmessage.add \

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
94% confidence
Finding

The skill declares powerful capabilities including environment access, filesystem reads/writes, network, and shell execution, but does not constrain them with an explicit tool scope. In a skill that can read secrets from env vars and execute shell commands against remote services, missing least-privilege boundaries increases the blast radius if the prompt is abused or the skill is triggered unexpectedly.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger list includes broad everyday terms like messages, notifications, support, files, documents, projects, and announcements in two languages. Overly generic activation phrases can cause the skill to run on unrelated user requests, leading to unintended access to Bitrix24 data or execution of network/shell actions without clear user intent.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
80% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · SKILL.md (reported line 166)May include surrounding context.

md
- Present data as clean tables or bullet lists
- Use business words: "сделка", "задача", "контакт", "встреча", "расписание"
- For schedule requests: combine calendar events AND task deadlines into one view
- Get timezone from `user.current`, never ask the user

### Rule 6: Proactive insights

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The skill supports scheduled automations that proactively send summaries and alerts, but this behavior is not clearly surfaced in the top-level description users see when enabling the skill. That creates a risk of unanticipated recurring data retrieval and outbound notifications containing business-sensitive information.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill enables implicit invocation for a broad Bitrix24 integration without defining narrow trigger scope or exclusion criteria. Because this skill can interact with CRM, tasks, chat, calendar, drive, users, and an external MCP documentation server, ordinary user language about deals, contacts, messages, or schedules could automatically trigger actions or sensitive data access in contexts where the user did not explicitly intend to invoke the skill.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill explicitly documents destructive calendar operations (calendar.event.add, calendar.event.update, calendar.event.delete) and later instructs the agent to execute read-only requests immediately, but it provides no corresponding safety rule requiring user confirmation for state-changing actions. In an agent setting, this omission can lead to unauthorized or accidental modification/deletion of calendar data if the model generalizes from the examples and performs write operations without an explicit approval boundary.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

This markdown file lists and exemplifies write-capable and destructive CRM methods such as crm.deal.add, crm.deal.update, and crm.deal.delete, but it does not warn users that these commands change or remove production CRM data. Under the markdown-specific SQP-2 criteria, documentation should disclose behaviors that can affect user data or system integrity.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

crm.item.batchImport can create or alter many CRM items at once, which materially increases the risk of unintended data changes. The markdown provides no caution about validating mappings, testing on sample data, or confirming target entity types before import.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

This markdown file documents safety-impacting behaviors including creating public external links, permanently deleting folders, and permanently deleting files. It does not include any warning or cautionary note about irreversible deletion or the privacy implications of exposing folder contents via shared links.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The documentation explicitly states a default recipient of ['UA'] (all authorized users) and includes examples that post to the broad company-wide feed without a warning about visibility. In an agent skill context, this increases the chance of accidental oversharing of internal updates, customer information, or sensitive operational content to the entire organization.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This markdown file describes imopenlines.config.delete as a direct way to delete a line, but provides no warning that the action may disrupt routing or remove configuration. For markdown files, SQP-2 applies when potentially system-affecting behavior is documented without warning, and deletion is a safety-critical operation.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The documentation explicitly instructs how to retrieve full session history, including messages and participant data, without any privacy, minimization, or authorization warning. In an agent skill context, this can encourage broad access to customer communications and increase the risk of unnecessary exposure of sensitive personal or business data.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill documents sending outbound messages to external users and CRM chats without warning about data leakage, impersonation risk, or accidental transmission of internal/customer information. In an automated agent setting, this is dangerous because the agent may relay confidential data to the wrong recipient or external channel with little friction.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill documents destructive project-management methods such as project deletion and owner changes without any warning, confirmation requirement, or guidance to verify user intent. In an agent context, this increases the risk that a natural-language request is translated into irreversible administrative actions that can remove data access, disrupt teams, or transfer control improperly.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The file lists crm.quote.delete as an available operation but provides no warning that it deletes CRM data or may be irreversible. Under the markdown-file criteria, destructive behaviors that can affect user data should be disclosed in the skill description.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The smart invoice section includes crm.item.delete for invoices but does not warn users that this can remove invoice records and impact business data. The markdown description should disclose destructive operations that affect user data or system integrity.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
85% confidence
Finding

This markdown file describes destructive and externally visible operations such as deleting sites and publishing or unpublishing sites/pages, but it does not clearly warn that these actions can remove content or make changes publicly visible. For markdown files, safety-relevant behaviors that affect user data or system integrity should include an explicit warning or disclosure.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

This documentation includes state-changing operations such as opening/closing a work day and adding task time entries, but it does not clearly warn that these commands modify attendance and time-accounting records. In an agent skill context, that omission is risky because an autonomous or user-assisted agent could execute examples as actions, causing unintended changes to payroll-adjacent records, audit trails, or task logs.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

The file documents querying other users' work status, absence reports, and department user listings without a privacy or authorization warning. Even if Bitrix24 enforces server-side permissions, presenting these operations without emphasizing sensitivity increases the chance that an agent will over-collect employee attendance data or attempt cross-user access inappropriately.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The troubleshooting guidance instructs the agent to use a fixed Russian response template: "Webhook не настроен...". This is a natural-language locale policy issue because the file does not offer a language choice or justify restricting responses to Russian-only output.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.