Back to skill

Security audit

Multi Source Tech News Digest

Security checks for vulnerabilities and agentic risk

Overview

This is a public tech-news digest skill with some implementation and dependency hygiene issues, but no artifact-backed evidence of hidden data access, exfiltration, or destructive behavior.

Before installing, review whether you want the auto-start daily Telegram trigger enabled, and consider pinning/auditing the Python dependencies. Treat the 109+ source claim as overstated unless the maintainer expands the implementation.

Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • 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 (7)

subprocess module call

Medium
Category
Dangerous Code Execution
Content
try:
            # 使用OpenClaw的web_fetch工具获取内容
            import subprocess
            result = subprocess.run([
                sys.executable, "-c", 
                f"import requests; import feedparser; \
                feed = feedparser.parse('{source_url}'); \
Confidence
94% confidence
Finding
The skill spawns a Python subprocess and builds the code to execute via an f-string that interpolates source_url directly into a python -c command. While the current URLs are hardcoded, this pattern is dangerous because any future config change or user-controlled source value could break out of the string literal and trigger arbitrary code execution; using a subprocess here is also unnecessary for RSS fetching.

subprocess module call

Medium
Category
Dangerous Code Execution
Content
releases = []
            for repo in self.config["github_repos"]:
                import subprocess
                result = subprocess.run([
                    sys.executable, "-c",
                    f"import requests; \
                    response = requests.get('{repo}', headers={{'Accept': 'application/vnd.github.v3+json'}}); \
Confidence
97% confidence
Finding
This subprocess call constructs Python source code with the repo URL embedded into a python -c string, creating a code-injection sink. Even though the current repository endpoints are statically defined, the pattern is unsafe and could become exploitable if configuration is modified, loaded externally, or influenced by another component.

Unpinned Dependencies

Low
Category
Supply Chain
Content
feedparser>=6.0.0
requests>=2.25.0
beautifulsoup4>=4.9.0
Confidence
96% confidence
Finding
The dependency is specified with a lower-bound version only, which allows installation of any newer release, including unexpected major versions or versions with newly introduced vulnerabilities or breaking changes. In a security-sensitive agent skill, this weakens supply-chain integrity and makes builds non-reproducible.

Unpinned Dependencies

Low
Category
Supply Chain
Content
feedparser>=6.0.0
requests>=2.25.0
beautifulsoup4>=4.9.0
Confidence
97% confidence
Finding
Using requests>=2.25.0 permits resolution to a wide range of versions, which creates non-deterministic builds and can pull in releases affected by known advisories. This increases supply-chain risk and can expose the skill to transport-layer or credential-handling flaws depending on the installed version.

Unpinned Dependencies

Low
Category
Supply Chain
Content
feedparser>=6.0.0
requests>=2.25.0
beautifulsoup4>=4.9.0
Confidence
95% confidence
Finding
An unpinned beautifulsoup4 dependency allows arbitrary newer versions at install time, reducing reproducibility and increasing the chance of incompatible or vulnerable transitive resolution. While this package is not itself flagged here as vulnerable, the versioning practice is still a supply-chain weakness.

Known Vulnerable Dependency: feedparser — 10 advisory(ies): CVE-2011-1157 (feedparser Cross-site Scripting vulnerability); CVE-2009-5065 (feedparser Cross-site Scripting vulnerability); CVE-2011-1158 (feedparser Cross-site Scripting vulnerability) +7 more

High
Category
Supply Chain
Confidence
90% confidence
Finding
The requirement allows installation of feedparser versions at or above 6.0.0, and the package has multiple known advisories. Without pinning to a specifically patched version, deployments may resolve to vulnerable releases, exposing the skill to parsing-related security issues such as XSS when feed content is later rendered or processed unsafely.

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
94% confidence
Finding
The skill depends on requests with only a minimum version, and the package has several published security advisories, including issues affecting credential handling and TLS/request verification behavior. In an agent skill that likely fetches remote content, a vulnerable requests version could enable sensitive information disclosure, SSRF-adjacent abuse, or weakened transport security.

Static analysis

No suspicious patterns detected.