KDP Publisher DE

Security checks across malware telemetry and agentic risk

Overview

The skill mostly matches its PDF-building purpose, but one compiler path can automatically read and upload extra local files referenced by Typst includes to an external service without clear path limits.

Review this skill before installing if you handle private manuscripts. It appears to be a legitimate PDF builder, but avoid compiling untrusted Typst files, check which files are included before remote compilation, and consider using a local Typst compiler or a locked-down project directory for sensitive work.

VirusTotal

67/67 vendors flagged this skill as clean.

View on VirusTotal

Risk analysis

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

#
ASI02: Tool Misuse and Exploitation
Medium
What this means

If the agent compiles a crafted or untrusted Typst file, additional readable local text files could be uploaded to the external compiler without the user explicitly selecting each file.

Why it was flagged

A #include path taken from the Typst document is joined and read without rejecting absolute paths or ../ traversal, then auxiliary_files are sent to the remote compile API.

Skill content
for inc in re.findall(r'#include\s+"([^"]+)"', main_content):
    inc_path = os.path.join(main_dir, inc)
    if os.path.exists(inc_path):
        aux[inc] = open(inc_path, encoding="utf-8").read()
...
r = requests.post(f"{API_URL}/public/compile/typst", json=payload, timeout=120)
Recommendation

Restrict includes to a user-approved project directory, reject absolute and parent-directory paths, display the include list before upload, or compile locally for untrusted documents.

#
ASI07: Insecure Inter-Agent Communication
Medium
What this means

Unpublished book content and QR/link data may leave the local machine during PDF generation.

Why it was flagged

The full Typst manuscript content and auxiliary files are sent to a remote TypeTex API. SKILL.md discloses that compile.py sends to TypeTex, so this is purpose-aligned but sensitive.

Skill content
API_URL = os.environ.get("TYPETEX_API_URL", "https://studio-intrinsic--typetex-compile-app.modal.run")
...
payload = {"content": main_content, "main_filename": "main.typ", "auxiliary_files": auxiliary_files or {}}
...
requests.post(f"{API_URL}/public/compile/typst", json=payload, timeout=120)
Recommendation

Only use the remote compiler for manuscripts you are comfortable sending to that service, or configure/use a local Typst compiler for sensitive drafts.

#
ASI04: Agentic Supply Chain Vulnerabilities
Low
What this means

Installing unpinned packages can change over time and depends on the package index and local Python environment.

Why it was flagged

The setup step asks users to install unpinned Python packages manually. This is common and purpose-aligned, but users should notice the dependency source.

Skill content
pip install requests qrcode
Recommendation

Install in a virtual environment and consider pinning reviewed versions of requests and qrcode.

#
ASI09: Human-Agent Trust Exploitation
Low
What this means

QR codes may be generated from an unexpected local links file or fall back to default URLs.

Why it was flagged

The code uses a hard-coded Desktop path for QR link configuration, while SKILL.md describes the standard path as $OPENCLAW_WORKSPACE/links.json. This can make the data source differ from user expectations.

Skill content
LINKS_JSON = os.path.expanduser(
    "~/Desktop/openclaw-projekt/agentic-authorship-dashboard/shared/links.json"
)
Recommendation

Verify the QR configuration path before building and update the script or documentation so it uses the intended workspace file.