Back to skill

Security audit

PDF: перевод на русский с сохранением вёрстки

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed PDF-to-Russian translation workflow that reads user-provided PDFs, stores job state locally, and builds a translated PDF without evidence of hidden network, persistence, or destructive behavior.

Install this only if you want PDF translation specifically into Russian and are comfortable with the skill storing a copy of the source PDF, extracted text, translations, OCR data, and the finished PDF in its state/output folders. Avoid using it for highly confidential PDFs unless that local storage and deliverable-copy behavior is acceptable.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (18)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding
По коду видно только инфраструктурный модуль общего назначения для навыка: работа с файлами состояния внутри разрешённой директории, безопасный вывод JSON, валидация job_id, загрузка JSON-полезной нагрузки, утилиты для страниц, проверка чисел и русская типографика. Это соответствует комментарию в самом модуле о том, что это «общее ядро» без точек входа. Никаких сетевых вызовов, дочерних процессов или выходов за fs не обнаружено, так что по ресурсам явного нарушения нет. Однако заявленное описание навыка говорит о полноценном переводе PDF с сохранением оформления и OCR сканов, а этот код сам по себе этого не делает. Поэтому для данного supplied code chunk описание не соответствует фактическому поведению.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding
Описание и код существенно расходятся. Заявленная основная цель — полноценный перевод PDF с сохранением оформления и OCR для сканов. Однако представленный код лишь читает локальный справочный файл с правилами перевода и выводит его пользователю. Он не открывает PDF, не извлекает и не заменяет текст на страницах, не работает с изображениями, не выполняет OCR и не сохраняет разметку документа. Разрешение fs соответствует чтению файлов, но фактическое назначение кода materially отличается от заявленного.

Tp4

High
Category
MCP Tool Poisoning
Confidence
93% confidence
Finding
Описание заявляет полноценный перевод PDF с сохранением оформления и обработкой сканов, включая наложение перевода на страницу. Однако данный фрагмент реализует лишь вспомогательный этап конвейера: чтение PDF, извлечение текста, определение типов страниц, офлайн OCR, выдачу текста и рендер PNG. В коде нет логики машинного перевода, замены английского текста русским в PDF или сборки итогового переведённого документа. Напротив, код прямо ссылается на другие скрипты для следующих шагов (например, translate.py extract/build). Разрешение fs соответствует поведению, но основная заявленная функция этого куска кода существенно уже и отличается от описания всего навыка.

Ae1

High
Category
analysis-evasion
Content
`SKILL.md`; `scripts/` — `pdf.py`, `translate.py`, `guide.py`, модули `_core.py`, `_ocr.py`;
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
`SKILL.md`; `scripts/` — `pdf.py`, `translate.py`, `guide.py`, модули `_core.py`, `_ocr.py`;
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Lp1

High
Category
MCP Least Privilege
Confidence
75% confidence
Finding
The skill uses 'env' capability that is not listed in its permissions. This may indicate deceptive intent or missing permission declarations.

Ae4

Medium
Category
analysis-evasion
Confidence
80% confidence
Finding
Suspicious Unicode normalization or mixed-script content

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
The file title and instructions explicitly require translation into Russian as the only allowed output language. Under the policy, forcing a specific language without user opt-in is a natural-language locale violation unless the constraint is explicitly justified as region-specific or optional, which is not stated here.

Ae4

Medium
Category
analysis-evasion
Confidence
80% confidence
Finding
Suspicious Unicode normalization or mixed-script content

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
Докстрока прямо указывает, что модуль отвечает за 'русскую типографику', а все пользовательские сообщения об ошибках и подсказки далее в файле сформулированы только на русском. Для правила языковой политики это выглядит как принудительная локаль без механизма opt-in или выбора языка.

Ae4

Medium
Category
analysis-evasion
Confidence
80% confidence
Finding
Suspicious Unicode normalization or mixed-script content

Natural-Language Policy Violations

Medium
Confidence
98% confidence
Finding
The module docstring and surrounding explanatory comments are written in Russian, including user-relevant behavior such as warnings about OCR quality. The policy requires avoiding a forced language/locale unless the skill offers user choice or clearly documents a justified region-specific constraint, which is not present here.

Natural-Language Policy Violations

Medium
Confidence
96% confidence
Finding
The module docstring and usage/help text are entirely in Russian and explicitly describe translation rules 'на русский', which imposes a specific language/locale without offering any user choice. The policy allows locale constraints only when they are clearly documented and justified as region-specific; this file does not provide such a justification or opt-in path.

Ae4

Medium
Category
analysis-evasion
Confidence
80% confidence
Finding
Suspicious Unicode normalization or mixed-script content

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
This code file contains its module docstring entirely in Russian, and later user-facing status/error messages are also emitted only in Russian. The policy for natural-language violations applies to all file types, and there is no indication that the skill offers a language/locale choice or that the Russian-only constraint is justified as region-specific.

Ae4

Medium
Category
analysis-evasion
Confidence
80% confidence
Finding
Suspicious Unicode normalization or mixed-script content

Natural-Language Policy Violations

Medium
Confidence
96% confidence
Finding
The module docstring states the script translates PDFs specifically 'на русский', and the commands and output messages consistently assume Russian as the only target language. This is a natural-language locale policy constraint with no user opt-in or alternative language selection documented in the file.

Context-Inappropriate Capability

Medium
Confidence
88% confidence
Finding
The build command instructs operators to copy the generated PDF into /data/user/Deliverables/, a location outside the skill workspace. Writing or encouraging transfer to an external user-accessible path expands the data exposure boundary and can leak sensitive document contents if operators follow the instruction on confidential PDFs.

Static analysis

No suspicious patterns detected.