Back to skill

Security audit

Ai Office Pro

Security checks for vulnerabilities and agentic risk

Overview

The main CEO assistant skill is coherent, but the package includes under-scoped helper prompts and scripts that warrant careful review before installation.

Review before installing. Treat the core SKILL.md as a prompt-template assistant, but do not enable the RAAI system prompt or integrations unless you explicitly want it to read business spreadsheets, create calendar events, write decision logs, and operate in Russian for that persona. Avoid running the bundled shell scripts until the publisher fixes syntax errors, documents exact file writes, supplies .env.example, and adds a manual or dry-run install path.

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

Error
Location
build.sh:10
Finding

PowerShell Command Injection Through Unvalidated Build Version

Content
View full analysis
Building $ZIP_NAME (ver=$VER)" echo " Source : $SRC_DIR" echo " Output : $OUT_DIR/$ZIP_NAME" mkdir -p "$OUT_DIR" mkdir -p "$STAGE_DIR" # ... cd "$(dirname "$STAGE_DIR")" if command -v zip >/dev/null 2>&1; then zip -qr "$OUT_DIR/$ZIP_NAME" "$(basename "$STAGE_DIR")" elif command -v 7z >/dev/null 2>&1; then 7z a -tzip "$OUT_DIR/$ZIP_NAME" "$(basename "$STAGE_DIR")" >/dev/null elif command -v powershell.exe >/dev/null 2>&1 || command -v powershell >/dev/null 2>&1; then PSH="$(command -v powershell.exe 2>/dev/null || command -v powershell)" WIN_SRC="$(cygpath -w "$STAGE_DIR" 2>/dev/null || echo "$STAGE_DIR")" WIN_OUT="$(cygpath -w "$OUT_DIR/$ZIP_NAME" 2>/dev/null || echo "$OUT_DIR/$ZIP_NAME")" "$PSH" -NoProfile -Command "Compress-Archive -Path '${WIN_SRC}' -DestinationPath '${WIN_OUT}' -Force" ``` ### Technical Analysis The build version can be supplied directly as the first command-line argument and is not validated. It is incorporated into both `STAGE_DIR` and `OUT_DIR`, which subsequently become `WIN_SRC` and `WIN_OUT`. In the PowerShell fallback, these paths are interpolated into PowerShell source code enclosed by single quotes: ```powershell Compress-Archive -Path '${WIN_SRC}' -DestinationPath '${WIN_OUT}' -Force ``` Shell-level quoting does not make these values safe for the PowerShell parser. A version containing a single quote can terminate the PowerShell string, after which semicolons and additional PowerShell statements can be injected. Quoting ...[truncated 1712 chars]
Remediation
View remediation
&2 exit 1 fi ``` 2. Reject quotes, whitespace, path separators, control characters, shell metacharacters, and PowerShell metacharacters even if a broader version syntax is later supported. 3. Do not generate PowerShell source code by interpolating untrusted paths. Pass values as positional arguments instead: ```bash "$PSH" -NoProfile -Command \ 'param($Source, $Destination) Compress-Archive -LiteralPath $Source -DestinationPath $Destination -Force' \ "$WIN_SRC" "$WIN_OUT" ``` 4. Prefer `-LiteralPath` where supported so wildcard characters in paths are not interpreted. 5. Apply the same validation to versions extracted from `SKILL.md`; repository content may also be attacker-controlled in compromised branches or pull requests. 6. Add regression tests using versions containing quotes, semicolons, whitespace, newlines, wildcard characters, and path separators. The build must reject every malformed value before creating directories or invoking an archiver. 7. Run release builds with a minimally privileged account and avoid exposing unrelated deployment credentials or signing secrets to the packaging step. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (98)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The declared description presents an end-user business/operations assistant for CEO workflows, but the supplied code is purely a build/deployment utility. Its primary purpose is packaging a skill release ZIP and validating it with a smoke test, not performing OKR management, weekly reviews, decision logging, briefing generation, delegation, or strategic prioritization. This is a material description-behavior mismatch.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The declared description presents an executive-assistant/business-operations skill handling OKRs, reviews, decision logs, delegation, and priorities. The supplied code chunk does not implement any of those business functions. Instead, it is an installation script that performs local filesystem operations, environment setup, permission changes, and dependency checks. Those are materially different capabilities from the declared purpose, so this chunk does not accurately represent the described behavior.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The declared description presents an end-user executive-assistant capability for CEO operations. The supplied code does not implement OKR tracking, weekly reviews, decision logs, delegation, or strategic prioritization workflows. Instead, it is a development/QA utility script that inspects local files and metadata for installation correctness and ClawHub compatibility. While some checked strings reference the declared domain (e.g., OKR, briefing, decision log), the script only verifies their presence in documentation/manifests. This is a materially different purpose, so the description does not accurately represent the code chunk.

Content

No source excerpt is available for this finding.

Vague Triggers

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The trigger keywords are extremely broad terms like 'plan', 'review', 'strategy', 'goal', and 'decision' that commonly appear in normal business conversation. This can cause the skill to activate unintentionally, leading to prompt-routing confusion, unexpected instruction precedence, or the assistant taking on an expansive CEO-agent role when the user did not explicitly request it.

Content

No source excerpt is available for this finding.

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

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

Content

Scanner excerpt · docs/competitors-comparison.md (reported line 8)May include surrounding context.

md
| **ceo-master** | 1.0.0 | EN | 3 файла: SKILL.md, README.md, ceo_metrics.py | Venture scale (€0→€1B) | Musk/Bezos/Hormozi фреймворки. Файловая система `/workspace/CEO/*.md`. Weekly report в Telegram. Security L2 |
| **ceo-assistant** | 1.0.0 | EN | 1 файл: SKILL.md | Generic executives | Общий Goal → Milestones → Tasks → Next Action. Никакой методологии. |
| **morning-briefing-pro** | 1.0.2 | EN | 1 файл: SKILL.md | Пользователи macOS | Только утренний брифинг. Локальный CLI `briefing`. macOS-only (darwin) |
| **AI-офис PRO (наш)** | **3.5.0** | **RU (+ EN для поиска)** | **16 файлов:** SKILL + README + config × 2 + .env + install + test + 2 examples + 3 docs + 5 proof | **Российский СМБ 5-50 млн руб/мес, команда 5-50** | **9 методологий в одной коробке:** OKR (Doerr), Weekly Review (EOS/Wickman), Decision Log (Bezos с review-циклами), Эйзенхауэр, Утренний брифинг, Квартальное планирование, Делегирование с checkpoints, Investor Update, Стратегические приоритеты | --- ## Что у них есть / чего нет / есть у нас | Фича | ceo-master | ceo-assistant | morning-briefing-pro | **AI-офис PRO** |
|---|---|---|---|---|
| **Язык — русский** | ❌ | ❌ | ❌ | ✅ нативно + EN для ClawHub-поиска |
| **Метод: OKR (Doerr)** | частично | ❌ | ❌ | ✅ 70% threshold, weekly tracking, lag_alert |

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

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

Content

Scanner excerpt · install.sh (reported line 30)May include surrounding context.

sh
| **ceo-master** | 1.0.0 | EN | 3 файла: SKILL.md, README.md, ceo_metrics.py | Venture scale (€0→€1B) | Musk/Bezos/Hormozi фреймворки. Файловая система `/workspace/CEO/*.md`. Weekly report в Telegram. Security L2 |
| **ceo-assistant** | 1.0.0 | EN | 1 файл: SKILL.md | Generic executives | Общий Goal → Milestones → Tasks → Next Action. Никакой методологии. |
| **morning-briefing-pro** | 1.0.2 | EN | 1 файл: SKILL.md | Пользователи macOS | Только утренний брифинг. Локальный CLI `briefing`. macOS-only (darwin) |
| **AI-офис PRO (наш)** | **3.5.0** | **RU (+ EN для поиска)** | **16 файлов:** SKILL + README + config × 2 + .env + install + test + 2 examples + 3 docs + 5 proof | **Российский СМБ 5-50 млн руб/мес, команда 5-50** | **9 методологий в одной коробке:** OKR (Doerr), Weekly Review (EOS/Wickman), Decision Log (Bezos с review-циклами), Эйзенхауэр, Утренний брифинг, Квартальное планирование, Делегирование с checkpoints, Investor Update, Стратегические приоритеты | --- ## Что у них есть / чего нет / есть у нас | Фича | ceo-master | ceo-assistant | morning-briefing-pro | **AI-офис PRO** |
|---|---|---|---|---|
| **Язык — русский** | ❌ | ❌ | ❌ | ✅ нативно + EN для ClawHub-поиска |
| **Метод: OKR (Doerr)** | частично | ❌ | ❌ | ✅ 70% threshold, weekly tracking, lag_alert |

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

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

Content

Scanner excerpt · install.sh (reported line 31)May include surrounding context.

sh
| **ceo-master** | 1.0.0 | EN | 3 файла: SKILL.md, README.md, ceo_metrics.py | Venture scale (€0→€1B) | Musk/Bezos/Hormozi фреймворки. Файловая система `/workspace/CEO/*.md`. Weekly report в Telegram. Security L2 |
| **ceo-assistant** | 1.0.0 | EN | 1 файл: SKILL.md | Generic executives | Общий Goal → Milestones → Tasks → Next Action. Никакой методологии. |
| **morning-briefing-pro** | 1.0.2 | EN | 1 файл: SKILL.md | Пользователи macOS | Только утренний брифинг. Локальный CLI `briefing`. macOS-only (darwin) |
| **AI-офис PRO (наш)** | **3.5.0** | **RU (+ EN для поиска)** | **16 файлов:** SKILL + README + config × 2 + .env + install + test + 2 examples + 3 docs + 5 proof | **Российский СМБ 5-50 млн руб/мес, команда 5-50** | **9 методологий в одной коробке:** OKR (Doerr), Weekly Review (EOS/Wickman), Decision Log (Bezos с review-циклами), Эйзенхауэр, Утренний брифинг, Квартальное планирование, Делегирование с checkpoints, Investor Update, Стратегические приоритеты | --- ## Что у них есть / чего нет / есть у нас | Фича | ceo-master | ceo-assistant | morning-briefing-pro | **AI-офис PRO** |
|---|---|---|---|---|
| **Язык — русский** | ❌ | ❌ | ❌ | ✅ нативно + EN для ClawHub-поиска |
| **Метод: OKR (Doerr)** | частично | ❌ | ❌ | ✅ 70% threshold, weekly tracking, lag_alert |

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

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

Content

Scanner excerpt · install.sh (reported line 32)May include surrounding context.

sh
| **ceo-master** | 1.0.0 | EN | 3 файла: SKILL.md, README.md, ceo_metrics.py | Venture scale (€0→€1B) | Musk/Bezos/Hormozi фреймворки. Файловая система `/workspace/CEO/*.md`. Weekly report в Telegram. Security L2 |
| **ceo-assistant** | 1.0.0 | EN | 1 файл: SKILL.md | Generic executives | Общий Goal → Milestones → Tasks → Next Action. Никакой методологии. |
| **morning-briefing-pro** | 1.0.2 | EN | 1 файл: SKILL.md | Пользователи macOS | Только утренний брифинг. Локальный CLI `briefing`. macOS-only (darwin) |
| **AI-офис PRO (наш)** | **3.5.0** | **RU (+ EN для поиска)** | **16 файлов:** SKILL + README + config × 2 + .env + install + test + 2 examples + 3 docs + 5 proof | **Российский СМБ 5-50 млн руб/мес, команда 5-50** | **9 методологий в одной коробке:** OKR (Doerr), Weekly Review (EOS/Wickman), Decision Log (Bezos с review-циклами), Эйзенхауэр, Утренний брифинг, Квартальное планирование, Делегирование с checkpoints, Investor Update, Стратегические приоритеты | --- ## Что у них есть / чего нет / есть у нас | Фича | ceo-master | ceo-assistant | morning-briefing-pro | **AI-офис PRO** |
|---|---|---|---|---|
| **Язык — русский** | ❌ | ❌ | ❌ | ✅ нативно + EN для ClawHub-поиска |
| **Метод: OKR (Doerr)** | частично | ❌ | ❌ | ✅ 70% threshold, weekly tracking, lag_alert |

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

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

Content

Scanner excerpt · install.sh (reported line 31)May include surrounding context.

sh
cp -r "$SRC_DIR/docs" "$SRC_DIR/examples" "$SRC_DIR/proof" "$SRC_DIR/test" "$TARGET/"
chmod +x "$TARGET/install.sh" "$TARGET/test/smoke-test.sh" 2>/dev/null || true
echo "[✓] Файлы скопированы в $TARGET" # 3. Создать .env из шаблона если нет
if [[ ! -f "$TARGET/.env" ]]; then cp "$SRC_DIR/.env.example" "$TARGET/.env" echo "[✓] Создан $TARGET/.env (заполнять только если нужны интеграции)"
else echo "[i] $TARGET/.env уже существует — не перезаписываю"
fi # 4. Напомнить про OBLIGATORY-поля
echo ""

Ae4

Medium
Category
analysis-evasion
Confidence
80% confidence
Finding

Suspicious Unicode normalization or mixed-script content

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The changelog content is written in Russian, including the primary descriptive text, with no indication that language selection is optional or that the file is intentionally region-specific. This can violate a language/locale policy when users are not given an opt-in or alternative language.

Content

No source excerpt is available for this finding.

Ae4

Medium
Category
analysis-evasion
Confidence
80% confidence
Finding

Suspicious Unicode normalization or mixed-script content

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

SQP-3 covers natural-language policy violations across all file types, including forced language or locale. The README is overwhelmingly Russian and the documented trigger phrases are Russian-centric, but there is no explicit opt-in, alternative locale, or justification that this is intentionally limited to Russian-speaking users.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The README tells users to run install.sh and a smoke-test script directly, while stating that the installer copies files into agent skill directories, but it does not explain what files are written, whether existing files are overwritten, or what permissions and side effects are involved. This creates a social-engineering and supply-chain risk: users may execute shell scripts from an unreviewed package that can modify their local agent environment or filesystem.

Content

No source excerpt is available for this finding.

Ae4

Medium
Category
analysis-evasion
Confidence
80% confidence
Finding

Suspicious Unicode normalization or mixed-script content

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

Without declared permissions the skill's intent is opaque and cannot be validated.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The description explicitly promotes the skill as Русский язык нативно and frames Russian-language operation as a defining behavior, without offering a language choice or opt-in. Under the stated policy, forcing a specific language or locale without user choice is a natural-language policy concern unless clearly justified as region-specific or optional.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger set around the CEO briefing mode uses broad natural-language phrases such as 'как дела в бизнесе', which can match ordinary conversation rather than an intentional command. In an agent setting, ambiguous triggers can cause the skill to activate unexpectedly and expose internal summaries, steer the conversation into a different workflow, or process sensitive business data without clear user intent.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

This mode uses generic trigger phrases that overlap with other common business requests, increasing the chance of accidental invocation or cross-mode routing. In a multi-skill or autonomous assistant environment, that can cause the wrong template to run, mis-handle user context, or bias outputs based on unintended mode selection.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The short trigger 'приоритеты' is especially collision-prone because it appears both as a normal business topic and as a trigger in multiple modes. This can lead to unintended invocation, mode confusion, and accidental application of the wrong decision framework to sensitive planning discussions.

Content

No source excerpt is available for this finding.

Ae4

Medium
Category
analysis-evasion
Confidence
80% confidence
Finding

Suspicious Unicode normalization or mixed-script content

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The script invokes external archiving tools (zip, 7z, or powershell) to create the output archive, which is a subprocess/shell execution path. While the script prints build status, it does not explicitly warn the user that it will execute external programs, and this file itself contains no confirmation prompt or safety disclosure about that behavior.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The build script automatically executes test/smoke-test.sh from the freshly unpacked ZIP by default, which expands the trust boundary from packaging into code execution. If the repository or packaged test file is modified maliciously, a routine build will run attacker-controlled shell commands without explicit user acknowledgement.

Content

No source excerpt is available for this finding.

Ae4

Medium
Category
analysis-evasion
Confidence
80% confidence
Finding

Suspicious Unicode normalization or mixed-script content

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

This markdown file contains user-facing instructions only in Russian, which can impose a fixed language on users without opt-in. The policy for natural-language violations applies to all file types, and no justification or alternative language option is provided here.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.