Back to skill

Security audit

Content Publisher Pro

Security checks across malware telemetry and agentic risk

Overview

This is a straightforward publishing tool that uses user-provided credentials to post user-selected Markdown articles to GitHub Pages and Dev.to.

Install in a virtual environment, pin or audit dependency versions, keep config.yaml private, and use least-privilege GitHub and Dev.to tokens. Run with --dry-run first and only publish content you are comfortable sending to those services.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (8)

Lp3

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding
The skill describes executable workflow behavior that reads local article/config files and makes outbound network requests to GitHub and Dev.to, but it does not declare permissions or capabilities explicitly. This creates a transparency and consent problem: users or hosting platforms may not realize the skill can access local files and transmit content and credentials to external services.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The README instructs users to configure GitHub and Dev.to credentials and publish content externally, but it does not clearly warn that article content, metadata, and authentication secrets will be used to communicate with third-party services. This can lead users to run the tool without fully understanding data egress and credential exposure risk, especially in an automation context where unintended publication or token misuse could occur.

Unpinned Dependencies

Low
Category
Supply Chain
Content
requests>=2.28.0
pyyaml>=6.0
markdown>=3.4.0
Confidence
96% confidence
Finding
The dependency is specified with a lower bound only, which allows future installs to resolve to different versions over time. This weakens reproducibility and can silently introduce vulnerable or incompatible releases into the publishing workflow, especially in automation or CI environments.

Unpinned Dependencies

Low
Category
Supply Chain
Content
requests>=2.28.0
pyyaml>=6.0
markdown>=3.4.0
Confidence
97% confidence
Finding
Using an unpinned PyYAML version permits installation of arbitrary later releases, making builds non-reproducible and increasing the chance of pulling a vulnerable package version. Because YAML parsers are frequently exposed to untrusted content in content-processing tools, dependency drift here is more dangerous than a purely internal library.

Unpinned Dependencies

Low
Category
Supply Chain
Content
requests>=2.28.0
pyyaml>=6.0
markdown>=3.4.0
Confidence
94% confidence
Finding
The markdown package is not pinned, so installations may change over time and unexpectedly pick up buggy or vulnerable releases. In a content publishing skill that transforms user-authored text, this can expose the system to parser flaws or denial-of-service issues introduced by newer versions.

Known Vulnerable Dependency: requests — 10 advisory(ies): CVE-2014-1830 (Exposure of Sensitive Information to an Unauthorized Actor in Requests); CVE-2024-47081 (Requests vulnerable to .netrc credentials leak via malicious URLs); CVE-2024-35195 (Requests `Session` object does not verify requests after making first request wi) +7 more

High
Category
Supply Chain
Confidence
93% confidence
Finding
The requirement allows requests versions affected by multiple advisories, and the package is commonly used for outbound HTTP calls where credential handling, redirects, and TLS behavior matter. In a publishing skill that likely talks to GitHub Pages and Dev.to APIs, a vulnerable HTTP client can leak credentials or mishandle secure connections when interacting with attacker-controlled URLs or redirects.

Known Vulnerable Dependency: pyyaml — 8 advisory(ies): CVE-2019-20477 (Deserialization of Untrusted Data in PyYAML); CVE-2020-1747 (Improper Input Validation in PyYAML); CVE-2020-14343 (Improper Input Validation in PyYAML) +5 more

Critical
Category
Supply Chain
Confidence
98% confidence
Finding
PyYAML has a history of unsafe deserialization and input validation issues, and the requirement as written permits vulnerable versions. In a content-publishing skill, YAML is especially sensitive because blog tooling often uses front matter or config files; parsing untrusted YAML with a vulnerable version can lead to code execution, data tampering, or service compromise.

Known Vulnerable Dependency: markdown — 2 advisory(ies): CVE-2025-69534 (Python-Markdown has an Uncaught Exception); CVE-2025-69534 (Python-Markdown version 3.8 contain a vulnerability where malformed HTML-like se)

High
Category
Supply Chain
Confidence
88% confidence
Finding
The markdown dependency is associated with parser-related advisories, and the broad version specifier may resolve to affected releases. Since this skill processes article content from users or operators, a vulnerable parser could be abused for denial of service, crashes, or malformed output that impacts publishing pipelines.

VirusTotal

64/64 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

No suspicious patterns detected.