Agent Economy Report

Skill code audit

CAUTION version 1.0.0 · audited 2026-09-17

web-search @billyutw

This skill is a web-search tool. It installs and uses a third-party Python package to query DuckDuckGo for web, news, image, and video results, then prints the results as text, Markdown, or JSON or saves them to a file. It does not access credentials, payments, or persistence features. The main cautions are the unpinned dependency install and the ability to write result files to arbitrary local paths. No hidden network destinations, obfuscated code, or download-and-execute behavior were found.

Instructions try to steer the agent beyond the declared purpose. The tool returns arbitrary external web page titles and body/description text verbatim (scripts/search.py lines 206-208 and 219-228). This output is untrusted content and could include prompt-injection instructions if the agent later reads or acts on the search results. No package file itself contains hidden instructions targeting the agent.

Declared purposeSearch the web using DuckDuckGo's API to find information across web pages, news articles, images, and videos, returning results in text, Markdown, or JSON (SKILL.md line 10).
Observed behaviorThe Python script imports duckduckgo_search, sends query and filter parameters to DuckDuckGo through DDGS methods, formats returned results, prints them to stdout, and optionally writes them to a user-supplied file path when --output is used.
Verdict, rules onlySAFE
Verdict, AICAUTION
Final verdictCAUTION (never better than either pass)

Capabilities

capabilityvs purposedetail
networkneededThe script calls DDGS text, news, images, and videos methods, which make outbound requests to DuckDuckGo (scripts/search.py lines 66-73, 97-104, 135-145, 171-178).
shellneededSKILL.md instructs the agent to run shell commands such as pip install duckduckgo-search and python scripts/search.py "<query>" (SKILL.md lines 28-29 and 41).
filesystem_writeneededWhen --output is supplied, the script creates parent directories and writes the search results to the chosen path (scripts/search.py lines 565-567).
install_packagesneededSKILL.md directs the user or agent to run pip install duckduckgo-search without a pinned version or checksum (SKILL.md line 29).

Findings

severityfinding
mediumUnpinned third-party dependency
The skill tells the agent to install a third-party package without pinning a version or checksum. This is a supply-chain review point, and the skill-card acknowledges it at skill-card.md line 28.
SKILL.md:29 pip install duckduckgo-search
infoOutbound search requests
The script sends the user-provided query to DuckDuckGo through the duckduckgo_search library. Search terms are exposed to an external service; skill-card.md line 24 warns not to search secrets or credentials.
scripts/search.py:67 results = list(ddgs.text(
lowCreates local directories
When --output is used, the script will create missing parent directories for the output file path.
scripts/search.py:566 output_path.parent.mkdir(parents=True, exist_ok=True)
lowWrites local files
When --output is used, the script writes search results to the path supplied by the caller. An agent that supplies an arbitrary path could create or overwrite local files.
scripts/search.py:567 output_path.write_text(output, encoding='utf-8')
infoPublisher discloses dependency risk
The skill card itself notes that the dependency is not version-pinned, supporting the need for review before installation.
skill-card.md:28 Risk: The dependency installation command does not pin duckduckgo-search to a reviewed version.

0 AI finding(s) were dropped because their file, line or quote did not match the package.

Network destinations in the code

domainservice ratingwhere
clawhub.ainot in the service indexskill-card.md:9
example.comnot in the service indexSKILL.md:281

Other facts

Binaries invokedbash, pip, python, python3
Environment variables readnone
Hard-coded walletsnone
Pipes a download to a shell0
eval / exec / subprocess0
base64 blobs0
File writes11
Persistence0

Files audited

filelinessha256
SKILL.md519c9dc9a11b8a2d3a2…
_meta.json675a216cab75f9406…
scripts/search.py5762f52e5ad57b7b219…
skill-card.md5658f56f432b91aed1…

For agents

JSON: https://agenteconomy.report/k/web-search.audit.json · badge: https://agenteconomy.report/k/web-search.audited.svg · skill rating: /k/web-search · commission an audit of any skill: US$ 29 per version.

How this is computed

The complete published package of this exact version was downloaded from the registry and read statically; nothing was executed. A deterministic pass extracts network destinations, binaries, environment variables, writes, install commands, obfuscation markers, subprocesses and wallets, each with file and line. An AI then reads the whole package with those facts and writes the summary, the capabilities and the findings under a strict schema; every finding it produces must cite a file, a line and the exact text, or it is dropped. The final verdict is the worst of the two passes. The audit does not change the skill's trust tier (policy); the author may respond through the dispute channel and the response is published here. Commissioned by: the Agent Economy Report (free program: the 150 most downloaded skills, September 2026).