Back to skill

Security audit

wps-office-suite

Security checks across malware telemetry and agentic risk

Overview

This office automation skill is mostly coherent, but it under-discloses cloud data transfer and exposes powerful local document/app-control actions.

Review this skill before installing in sensitive environments. Use explicit local-only options where available, avoid cloud ASR/LLM modes for confidential meetings, review backups created under WPS_Backup, and be careful with COM cleanup or release-all commands because they may close or kill Office/WPS processes.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • Taint TrackingDirect Taint Flow, Variable-Mediated Taint Flow, Credential Exfiltration Chain
Findings (52)

subprocess module call

Medium
Category
Dangerous Code Execution
Content
if self.is_windows:
            for proc in self.WPS_PROCESSES:
                try:
                    subprocess.run(
                        ["taskkill", "/F", "/IM", proc],
                        capture_output=True, timeout=5
                    )
Confidence
89% confidence
Finding
subprocess.run( ["taskkill", "/F", "/IM", proc], capture_output=True, timeout=5 )

subprocess module call

Medium
Category
Dangerous Code Execution
Content
for proc in self.MS_PROCESSES:
                try:
                    subprocess.run(
                        ["taskkill", "/F", "/IM", proc],
                        capture_output=True, timeout=5
                    )
Confidence
89% confidence
Finding
subprocess.run( ["taskkill", "/F", "/IM", proc], capture_output=True, timeout=5 )

subprocess module call

Medium
Category
Dangerous Code Execution
Content
# SkillHub 反馈页面(假设的 URL,实际需替换)
        url = "https://skillhub.cn/feedback"
        if platform.system() == "Windows":
            subprocess.Popen(["start", url], shell=True)
        elif platform.system() == "Darwin":
            subprocess.Popen(["open", url])
        else:
Confidence
91% confidence
Finding
subprocess.Popen(["start", url], shell=True)

subprocess module call

Medium
Category
Dangerous Code Execution
Content
mailto = f"mailto:{email}?subject={subject}&body={body}"

        if platform.system() == "Windows":
            subprocess.Popen(["start", mailto], shell=True)
        elif platform.system() == "Darwin":
            subprocess.Popen(["open", mailto])
        else:
Confidence
96% confidence
Finding
subprocess.Popen(["start", mailto], shell=True)

Tainted flow: 'req' from os.environ.get (line 450, credential/environment) → urllib.request.urlopen (network output)

Critical
Category
Data Flow
Content
)
        
        try:
            with urllib.request.urlopen(req, timeout=30) as resp:
                result = json.loads(resp.read().decode("utf-8"))
                content = result["choices"][0]["message"]["content"]
                return {"summary": {"raw": content}, "structured": False}
Confidence
95% confidence
Finding
with urllib.request.urlopen(req, timeout=30) as resp:

Lp3

Medium
Category
MCP Least Privilege
Confidence
88% confidence
Finding
The skill advertises and documents capabilities that imply environment inspection, local file access, shell execution, and network access, yet no permissions are explicitly declared. This creates a transparency and least-privilege failure: users and platform controls cannot accurately assess or constrain what the skill may do, especially given update checks and optional cloud integrations.

Tp4

High
Category
MCP Tool Poisoning
Confidence
92% confidence
Finding
The documented behavior goes beyond the core declared office-automation purpose by including arbitrary local document opening, recent-file scanning, feedback/mail launching, backup/metadata utilities, update checks, and optional external AI services. This mismatch is dangerous because users may invoke the skill expecting local document processing while the skill also touches broader local data and external services not clearly bounded by the top-level declaration.

Intent-Code Divergence

High
Confidence
98% confidence
Finding
The architecture explicitly documents WebOffice and cloud API fallback paths, yet the security section states there is 'no network egress behavior.' This creates a materially misleading trust boundary: users or reviewers may approve the skill believing documents stay local when the design allows remote service interaction and potential document transfer.

Intent-Code Divergence

High
Confidence
97% confidence
Finding
The privacy claim says user document content is not uploaded, but the documented cloud document-processing, conversion, and collaboration features imply that document contents may be sent to external services. Such contradictory statements can cause users to expose sensitive files under false assumptions about data handling.

Description-Behavior Mismatch

High
Confidence
98% confidence
Finding
The skill claims 'all processing is local' and 'zero upload', but elsewhere documents cloud fallback chains for ASR and LLM plus automatic update checks. This is a serious integrity and privacy issue because users may provide sensitive audio or documents under a false assumption that nothing leaves the machine.

Intent-Code Divergence

High
Confidence
95% confidence
Finding
The documentation says the skill does not support HTTP/URL downloads or networking, yet other sections describe network-based update checks and external ASR/LLM integrations. Contradictory statements about networking undermine informed consent and can cause users to expose sensitive content despite believing the skill is offline-only.

Context-Inappropriate Capability

Low
Confidence
80% confidence
Finding
Opening a feedback page or mail client is not inherently malicious, but it extends the skill beyond core document processing into launching external applications. That creates a small but real trust and UX risk, especially if invoked unexpectedly or with prefilled system information.

Description-Behavior Mismatch

Medium
Confidence
87% confidence
Finding
The script enumerates recent documents across user directories and returns full paths, modification times, and sizes. In an agent skill, this creates an unnecessary local file-discovery capability that can expose sensitive user document metadata beyond the stated office-automation purpose.

Description-Behavior Mismatch

Medium
Confidence
84% confidence
Finding
The backup function copies arbitrary user documents to another location, including a default Desktop backup folder, without any access control, policy check, or prominent disclosure. This can duplicate sensitive files unexpectedly, increasing exposure and persistence of confidential data.

Context-Inappropriate Capability

Medium
Confidence
91% confidence
Finding
The code opens any local path through the platform default handler, which is broader than a normal office-processing workflow and may trigger execution of unsafe file types or external helper applications. In an agent context, this expands the skill's ability from document processing to arbitrary local file launching.

Description-Behavior Mismatch

Medium
Confidence
94% confidence
Finding
The unified entrypoint rejects non-existent file paths before dispatching tasks, but the nl2formula feature is documented and implemented to work without a workbook context. This mismatch can cause denial of intended functionality and may push callers to supply arbitrary existing local paths unnecessarily, increasing accidental exposure of filesystem metadata or confusing integrations.

Context-Inappropriate Capability

Medium
Confidence
92% confidence
Finding
This module can upload audio/transcript material to Azure Speech, Google STT, and external LLM services while sourcing credentials from environment variables. In a meeting-minutes skill, the processed data is often sensitive business content, so silent cloud transfer materially raises confidentiality risk.

Context-Inappropriate Capability

Medium
Confidence
93% confidence
Finding
The feedback-email helper imports a diagnostic module and collects environment data unrelated to the minimal action of opening a feedback page or blank feedback email. This broadens data exposure and may leak local system details into a support workflow without a strong need-to-know justification.

Description-Behavior Mismatch

Medium
Confidence
85% confidence
Finding
The natural-language analyzer performs in-place modification of the user-supplied workbook by writing chart source data into empty columns and then saving the file. In a skill framed as analysis, this can silently alter user documents, damage workbook integrity, overwrite formulas/layout assumptions, or cause unintended persistence of derived data.

Intent-Code Divergence

Medium
Confidence
98% confidence
Finding
The function writes the 'last checked' timestamp before deciding whether a check is due. As a result, non-forced executions will usually conclude that the check interval has not elapsed, effectively disabling the intended periodic update check and potentially preventing users from learning about security or compatibility updates.

Context-Inappropriate Capability

Medium
Confidence
81% confidence
Finding
The COM health endpoint exposes residual-process inspection and forced release operations that go beyond normal office-document processing and can interfere with other local Office/WPS sessions. If an untrusted caller can invoke this worker, they may terminate or disrupt active automation state, creating a local denial-of-service and visibility into host process state.

Vague Triggers

Medium
Confidence
81% confidence
Finding
Triggers such as '创建文档', '制作表格', and '做PPT' are broad, everyday phrases likely to appear in normal conversation. Overbroad activation increases the chance the skill runs unintentionally with file-system, app-control, and possible network permissions, which can lead to unintended document actions or data exposure.

Missing User Warnings

High
Confidence
93% confidence
Finding
The meeting-minutes feature references external ASR and LLM fallback chains without a prominent privacy warning. Because meeting audio often contains highly sensitive business or personal data, silent fallback to cloud providers can materially increase confidentiality risk.

Missing User Warnings

Medium
Confidence
86% confidence
Finding
Automatic update checks are network activity, but the documentation does not clearly warn users that enabling or using this feature performs outbound requests. This reduces transparency and may violate expectations in restricted or sensitive environments.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The release-all path combines forceful process termination with optional cache deletion and exposes it directly through the CLI without any warning, preview, or confirmation barrier. In a user-facing automation skill, that increases the chance of accidental destructive execution leading to loss of unsaved work and disruption of other applications.

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Static analysis

No suspicious patterns detected.