T06 · System Persistence
- Location
SKILL.md:32- Finding
Persistent User-Level DDGS Service
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a coherent web-search integration, but it asks users to install an unpinned third-party package and optionally enable a persistent local service without enough containment or removal guidance.
Install only if you are comfortable running DDGS as a local service and sending search queries through its configured backends. Prefer an on-demand or virtual-environment install, avoid enabling the systemd service unless you need always-on search, and add your own disable/removal and package pinning controls before using it in automation.
SKILL.md:32Persistent User-Level DDGS Service
SKILL.md:9Unpinned Upgrade and Installation of a Third-Party Python Package
The skill advertises itself for broad 'general web search' use, which can cause over-activation for many user requests and route tasks to an external/local search service without clear user intent or least-privilege scoping. In agent environments, broad activation increases the chance of unnecessary network access, privacy leakage in queries, and accidental invocation in contexts where safer built-in tools should be preferred.
The instructions to create a user-level systemd service establish durable session persistence for the search server. Even though the service binds to 127.0.0.1, a long-lived local service still broadens the local attack surface and can be abused by other local processes or invoked unintentionally in later sessions.
### Optional: systemd user service (always available)
Create `~/.config/systemd/user/ddgs.service`:
```ini
[Unit]
Description=DDGS MCP SSE server
The skill instructs enabling a persistent user systemd service, causing the DDGS server to auto-start and remain available across sessions. Persistence expands the attack surface by keeping a local HTTP/SSE service running continuously, increasing exposure to misuse, stale configurations, or unintended data access beyond the immediate task.
Then:
systemctl --user daemon-reload
systemctl --user enable --now ddgs
systemctl --user status ddgs --no-pager
The skill sets a default region of 'us-en' without user opt-in, which can bias results and silently transmit locale preferences that may not match the user's location or intent. While not a direct code-execution risk, it can create privacy and integrity issues by returning skewed search results and mishandling geographically sensitive requests.
No suspicious patterns detected.