Back to skill

Security audit

财务报表审查

Security checks for vulnerabilities and agentic risk

Overview

The skill appears purpose-built for financial statement review, but it should be reviewed carefully because it processes sensitive financial files in bulk and can generate report text that overstates checks as completed.

Install only in a controlled environment and limit it to selected financial files or small directories. Treat generated reports as draft analysis requiring accountant or tax professional review, especially any statement that says checks passed or were completed. Prefer pinned dependencies and avoid feeding untrusted large PDFs or Office files until parser resource limits are added.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (2)

T09 · Insecure Skill Coding Practices

Warning
Location
parsers/pdf_parser.py:80
Finding

Unbounded Processing of Untrusted Financial Documents

Content
View full analysis
bool: if not os.path.exists(file_path): return False if not os.path.isfile(file_path): return False return True ``` `parsers/excel_parser.py:82`: ```python wb = openpyxl.load_workbook(file_path, data_only=True) ``` `parsers/pdf_parser.py:80-100`: ```python with pdfplumber.open(file_path) as pdf: if self.page_range: start_page, end_page = self.page_range pages = pdf.pages[start_page:end_page] else: pages = pdf.pages all_tables = [] for i, page in enumerate(pages): if self.extract_tables: tables = page.extract_tables() for table in tables: if table: all_tables.append(table) if all_tables: self._process_tables(all_tables, result.data, result) ``` `parsers/pdf_parser.py:113-133`: ```python with open(file_path, 'rb') as file: reader = PyPDF2.PdfReader(file) if self.page_range: start_page, end_page = self.page_range pages = reader.pages[start_page:end_page] else: pages = reader.pages text_content = [] for page in pages: text = page.extract_text() if text: text_content.append(text) full_text = '\n'.join(text_content) result.data.raw_data['text_content'] = full_text self._extract_from_text(full_text, result.data, result) ``` `parsers/word_parser.py:51`: ```python doc = Document(file_path) ``` ### Technical Analysis The common file validation routine only confirms that the supplied path exists a ...[truncated 2037 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Note
Location
requirements.txt:1
Finding

Unpinned Third-Party Dependencies Without Integrity Verification

Content
View full analysis
=2.0.0 numpy>=1.24.0 openpyxl>=3.0.0 xlrd>=2.0.0 python-docx>=0.8.11 pdfplumber>=0.6.0 PyPDF2>=3.0.0 pdfminer.six>=20221105 jieba>=0.42.1 ``` The installation instructions use unconstrained package resolution: ```bash pip install pandas>=2.0.0 pip install openpyxl>=3.0.0 pip install xlrd>=2.0.0 pip install python-docx>=0.8.11 pip install pdfplumber>=0.6.0 pip install PyPDF2>=3.0.0 pip install jieba>=0.42.1 ``` ### Technical Analysis Every runtime dependency is specified using only a minimum version. There are no upper bounds, exact pins, lock files, or cryptographic hashes. As a result, two installations performed at different times can resolve to materially different dependency trees. A future compromised release, dependency takeover, malicious package-index substitution, or incompatible release could be selected without any change to this repository. The reviewed manifest does not itself contain a demonstrated typosquatted package or an explicitly malicious package source. The vulnerability is the absence of controls that make dependency selection deterministic and integrity-verifiable. ### Attack Path 1. A user follows the documented installation process or installs the package through `setup.py`. 2. The package resolver queries the configured Python package index. 3. Because only lower version bounds are defined, the resolver selects the newest version satisfying each constraint. 4. If a selected direct or transitive dependency has been compromised, replaced on an untrusted mirror, or released with malicious installation or import behavior, that code is downloaded and installed. 5. Package installation hooks or imported runtime code execute with the privileges of the ...[truncated 659 chars]
Remediation
View remediation
Vulnerability Patterns
  • 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
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (66)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

This finding again notes that the skill's practical emphasis is file identification, parser management, batch parsing, and directory scanning, while the description frames it mainly as a financial audit expert. In the context of highly sensitive financial documents, under-declared file access and bulk processing behavior materially increase privacy and confidentiality risk, even if the intent appears operational rather than malicious.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

This finding again notes that the skill's practical emphasis is file identification, parser management, batch parsing, and directory scanning, while the description frames it mainly as a financial audit expert. In the context of highly sensitive financial documents, under-declared file access and bulk processing behavior materially increase privacy and confidentiality risk, even if the intent appears operational rather than malicious.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

This finding again notes that the skill's practical emphasis is file identification, parser management, batch parsing, and directory scanning, while the description frames it mainly as a financial audit expert. In the context of highly sensitive financial documents, under-declared file access and bulk processing behavior materially increase privacy and confidentiality risk, even if the intent appears operational rather than malicious.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

This finding again notes that the skill's practical emphasis is file identification, parser management, batch parsing, and directory scanning, while the description frames it mainly as a financial audit expert. In the context of highly sensitive financial documents, under-declared file access and bulk processing behavior materially increase privacy and confidentiality risk, even if the intent appears operational rather than malicious.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

This finding again notes that the skill's practical emphasis is file identification, parser management, batch parsing, and directory scanning, while the description frames it mainly as a financial audit expert. In the context of highly sensitive financial documents, under-declared file access and bulk processing behavior materially increase privacy and confidentiality risk, even if the intent appears operational rather than malicious.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

This finding again notes that the skill's practical emphasis is file identification, parser management, batch parsing, and directory scanning, while the description frames it mainly as a financial audit expert. In the context of highly sensitive financial documents, under-declared file access and bulk processing behavior materially increase privacy and confidentiality risk, even if the intent appears operational rather than malicious.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

This finding again notes that the skill's practical emphasis is file identification, parser management, batch parsing, and directory scanning, while the description frames it mainly as a financial audit expert. In the context of highly sensitive financial documents, under-declared file access and bulk processing behavior materially increase privacy and confidentiality risk, even if the intent appears operational rather than malicious.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

This finding again notes that the skill's practical emphasis is file identification, parser management, batch parsing, and directory scanning, while the description frames it mainly as a financial audit expert. In the context of highly sensitive financial documents, under-declared file access and bulk processing behavior materially increase privacy and confidentiality risk, even if the intent appears operational rather than malicious.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

This finding again notes that the skill's practical emphasis is file identification, parser management, batch parsing, and directory scanning, while the description frames it mainly as a financial audit expert. In the context of highly sensitive financial documents, under-declared file access and bulk processing behavior materially increase privacy and confidentiality risk, even if the intent appears operational rather than malicious.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
90% confidence
Finding

This finding again notes that the skill's practical emphasis is file identification, parser management, batch parsing, and directory scanning, while the description frames it mainly as a financial audit expert. In the context of highly sensitive financial documents, under-declared file access and bulk processing behavior materially increase privacy and confidentiality risk, even if the intent appears operational rather than malicious.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

This finding again notes that the skill's practical emphasis is file identification, parser management, batch parsing, and directory scanning, while the description frames it mainly as a financial audit expert. In the context of highly sensitive financial documents, under-declared file access and bulk processing behavior materially increase privacy and confidentiality risk, even if the intent appears operational rather than malicious.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

This finding again notes that the skill's practical emphasis is file identification, parser management, batch parsing, and directory scanning, while the description frames it mainly as a financial audit expert. In the context of highly sensitive financial documents, under-declared file access and bulk processing behavior materially increase privacy and confidentiality risk, even if the intent appears operational rather than malicious.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
88% confidence
Finding

The skill documents and demonstrates file-reading, directory scanning, and report generation behavior, but it does not declare any explicit tool scope such as permissions or allowed-tools. In an agent environment, undeclared file access increases the chance of over-broad filesystem exposure, especially because the examples include recursive scanning and writing output reports.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill’s name and description are presented entirely in Chinese and explicitly anchor the skill to Chinese accounting and tax frameworks, but there is no statement offering a language choice or clarifying that the locale restriction is intentional and required. Under the policy, forcing a specific language without user opt-in is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The module docstring and descriptions are written entirely in Chinese and present the parser as a general Excel financial file parser, but they do not mention that the skill is Chinese-language only or offer any language choice. For a broadly applicable parser, this can violate language/locale policy because it implicitly constrains interaction and messaging to a single language without opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The module docstring and class description force a Chinese-language interface for user-facing skill identification and behavior description. Under the policy, a skill should not impose a specific language without opt-in unless the locale constraint is explicitly documented and justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

This code file contains natural-language strings in Chinese for the module description and later user-facing messages, but it does not provide any opt-in or alternative language behavior. Under the policy rule for language/locale, forcing a specific language without user choice is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

This code file contains natural-language strings, comments, docstrings, and console output entirely in Chinese, including the script description and all user-visible prompts. That imposes a specific language/locale on users without any indication of choice, opt-in, or justification, which matches the language-policy violation criteria.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This Python file contains all user-facing docstrings, prompts, and console output in Chinese, including the main usage flow and interactive instructions. Because the file provides no option to select another language and no documented justification for a Chinese-only locale, it violates the language/locale policy criteria.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

Natural-language strings, headings, comments, and generated report content are consistently hard-coded in Chinese, and the file does not indicate that users can opt into another language or that the skill is restricted to a Chinese-language context. This can violate language/locale policy when a skill forces a specific language without user choice.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The financial analysis section reports balance checks as '通过' and other review outcomes as if they were verified, yet the code does not perform those calculations and instead outputs static results. In the context of financial statement review, this is deceptive functionality that can cause users to rely on false assurances about accounting consistency and cash-flow reconciliation.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The tax compliance section asserts that specific VAT and corporate income tax checks were completed, but this function only emits canned language and aggregates precomputed risk lists. In a financial review skill, this can materially mislead users into believing controls or compliance procedures were actually performed, creating audit, legal, and decision-making risk.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

This Python file contains natural-language descriptions entirely in Chinese, beginning with the module docstring at L002, and there is no indication that language choice is optional or limited to a justified region-specific use case. Under the policy rule, forcing a specific language without user opt-in is a locale/language policy concern even when it appears in code comments or docstrings.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This code file contains natural-language strings and documentation that force a specific language/locale for users. Under the policy, locale-specific behavior should either offer user opt-in/choice or clearly document a justified regional constraint; this file does neither.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This Python file contains docstrings, output labels, report headings, and result text exclusively in Chinese, including the generated report and console output. Under the policy for natural-language violations, forcing a specific language without user opt-in is a locale/language policy issue.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.