DevOps Agent

Security checks across malware telemetry and agentic risk

Overview

This DevOps skill matches its stated purpose, but it should be reviewed because it can make persistent root-level server changes and includes unsafe monitoring and credential examples.

Install only on servers where you intend to allow real deployment, monitoring, backup, and diagnostic changes. Use dry-run first, review every sudo/systemctl/cron command, verify downloaded binaries and repository keys, change Grafana default credentials before API use, bind monitoring tools to localhost or a private network, and inspect generated backup scripts and destinations before scheduling them.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Rogue AgentSelf-Modification, Session Persistence
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (22)

Intent-Code Divergence

High
Confidence
96% confidence
Finding
The skill claims secrets will never be printed, yet it includes examples that pass credentials in command-line arguments such as curl basic auth and tokenized URLs. Secrets in command lines can be exposed through shell history, process listings, logs, audit systems, and copied reports, directly undermining the stated safety guarantees.

Intent-Code Divergence

High
Confidence
95% confidence
Finding
The skill promises explicit approval before destructive or service-affecting actions, but later workflows contain unattended enable/start/reload/install/configuration changes without any concrete confirmation gate. In a DevOps context this can cause outages, production drift, or unintended data loss because operators may assume the promised confirmation barrier exists when it does not.

Intent-Code Divergence

High
Confidence
97% confidence
Finding
The document states all commands support dry-run, but the procedures are written as directly executable commands with no branching or wrapper logic enforcing preview-only behavior. This creates a false sense of safety that can lead users to invoke the skill expecting simulation while it performs live deployments, installs, config changes, and scheduled persistence.

Intent-Code Divergence

Medium
Confidence
86% confidence
Finding
The skill mandates audit logging for each key action, but most workflows do not actually implement consistent logging. In operational security, missing logs reduce accountability, hinder incident response, and can conceal what state changes were applied to privileged systems.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The documentation includes a curl example with embedded `admin:admin` credentials in the URL, which normalizes use of default credentials and exposes secrets via shell history, process lists, logs, and copied documentation. Even though the target is `localhost`, operators may reuse the pattern in real environments, leaving Grafana dashboards and potentially broader administrative access exposed.

Sudo/Root Execution

Medium
Category
Privilege Escalation
Content
wget "https://github.com/prometheus/prometheus/releases/download/v${PROM_VERSION}/prometheus-${PROM_VERSION}.linux-${ARCH}.tar.gz"
tar xzf prometheus-*.tar.gz
sudo mv prometheus-*/prometheus /usr/local/bin/
sudo mv prometheus-*/promtool /usr/local/bin/

# 创建配置目录和用户
Confidence
88% confidence
Finding
sudo

Sudo/Root Execution

Medium
Category
Privilege Escalation
Content
wget "https://github.com/prometheus/prometheus/releases/download/v${PROM_VERSION}/prometheus-${PROM_VERSION}.linux-${ARCH}.tar.gz"
tar xzf prometheus-*.tar.gz
sudo mv prometheus-*/prometheus /usr/local/bin/
sudo mv prometheus-*/promtool /usr/local/bin/

# 创建配置目录和用户
sudo useradd --no-create-home --shell /bin/false prometheus 2>/dev/null
Confidence
84% confidence
Finding
sudo

Sudo/Root Execution

Medium
Category
Privilege Escalation
Content
# Ubuntu/Debian
sudo apt-get install -y apt-transport-https software-properties-common
wget -q -O - https://apt.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt-get update && sudo apt-get install -y grafana

sudo systemctl daemon-reload
Confidence
92% confidence
Finding
sudo

Sudo/Root Execution

Medium
Category
Privilege Escalation
Content
sudo apt-get install -y apt-transport-https software-properties-common
wget -q -O - https://apt.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt-get update && sudo apt-get install -y grafana

sudo systemctl daemon-reload
sudo systemctl enable grafana-server
Confidence
92% confidence
Finding
sudo

Sudo/Root Execution

Medium
Category
Privilege Escalation
Content
sudo apt-get install -y apt-transport-https software-properties-common
wget -q -O - https://apt.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt-get update && sudo apt-get install -y grafana

sudo systemctl daemon-reload
sudo systemctl enable grafana-server
Confidence
92% confidence
Finding
sudo

Sudo/Root Execution

Medium
Category
Privilege Escalation
Content
BACKUP_SCRIPT="/opt/scripts/backup_<target>.sh"

# 写入备份脚本
sudo cp generated_backup.sh "$BACKUP_SCRIPT"
sudo chmod +x "$BACKUP_SCRIPT"

# 添加 cron 任务(先检查是否已存在)
Confidence
91% confidence
Finding
sudo

Sudo/Root Execution

Medium
Category
Privilege Escalation
Content
# 写入备份脚本
sudo cp generated_backup.sh "$BACKUP_SCRIPT"
sudo chmod +x "$BACKUP_SCRIPT"

# 添加 cron 任务(先检查是否已存在)
(crontab -l 2>/dev/null | grep -v "$BACKUP_SCRIPT"; echo "$CRON_SCHEDULE $BACKUP_SCRIPT") | crontab -
Confidence
90% confidence
Finding
sudo

Sudo/Root Execution

Medium
Category
Privilege Escalation
Content
# 连接数
sudo -u postgres psql -c "SELECT count(*) FROM pg_stat_activity;" 2>/dev/null
sudo -u postgres psql -c "SHOW max_connections;" 2>/dev/null

# 认证配置
sudo cat /etc/postgresql/*/main/pg_hba.conf 2>/dev/null | grep -v "^#" | grep -v "^$"
Confidence
80% confidence
Finding
sudo

Sudo/Root Execution

Medium
Category
Privilege Escalation
Content
sudo -u postgres psql -c "SHOW max_connections;" 2>/dev/null

# 认证配置
sudo cat /etc/postgresql/*/main/pg_hba.conf 2>/dev/null | grep -v "^#" | grep -v "^$"

# 监听地址
sudo cat /etc/postgresql/*/main/postgresql.conf 2>/dev/null | grep listen_addresses
Confidence
79% confidence
Finding
sudo

Session Persistence

Medium
Category
Rogue Agent
Content
sudo chmod +x "$BACKUP_SCRIPT"

# 添加 cron 任务(先检查是否已存在)
(crontab -l 2>/dev/null | grep -v "$BACKUP_SCRIPT"; echo "$CRON_SCHEDULE $BACKUP_SCRIPT") | crontab -
```

#### Step 4: 备份保留策略
Confidence
96% confidence
Finding
crontab -l

Session Persistence

Medium
Category
Rogue Agent
Content
```bash
sudo systemctl daemon-reload
sudo systemctl enable <app-name>
sudo systemctl start <app-name>
```
Confidence
93% confidence
Finding
systemctl enable

Session Persistence

Medium
Category
Rogue Agent
Content
sudo apt-get update && sudo apt-get install -y grafana

sudo systemctl daemon-reload
sudo systemctl enable grafana-server
sudo systemctl start grafana-server
```
Confidence
92% confidence
Finding
systemctl enable

Session Persistence

Medium
Category
Rogue Agent
Content
echo ""
        read -rp "是否添加到 crontab?(y/N): " add_cron
        if [ "$add_cron" = "y" ] || [ "$add_cron" = "Y" ]; then
            (crontab -l 2>/dev/null | grep -v "$SCRIPT_PATH"; echo "$SCHEDULE $SCRIPT_PATH >> ${LOG_FILE} 2>&1") | crontab -
            echo -e "${GREEN}[✓]${NC} cron 任务已添加"
        fi
    fi
Confidence
91% confidence
Finding
crontab -l

Chaining Abuse

High
Category
Tool Misuse
Content
```bash
# 启用站点(需要 sudo,提前告知用户)
sudo ln -s /etc/nginx/sites-available/<domain> /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
```

#### Step 5: SSL 证书
Confidence
84% confidence
Finding
&& sudo

Chaining Abuse

High
Category
Tool Misuse
Content
sudo apt-get install -y apt-transport-https software-properties-common
wget -q -O - https://apt.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt-get update && sudo apt-get install -y grafana

sudo systemctl daemon-reload
sudo systemctl enable grafana-server
Confidence
90% confidence
Finding
&& sudo

Chaining Abuse

High
Category
Tool Misuse
Content
```bash
# Ubuntu/Debian
sudo apt-get install -y apt-transport-https software-properties-common
wget -q -O - https://apt.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt-get update && sudo apt-get install -y grafana
Confidence
93% confidence
Finding
| sudo

Chaining Abuse

High
Category
Tool Misuse
Content
# Ubuntu/Debian
sudo apt-get install -y apt-transport-https software-properties-common
wget -q -O - https://apt.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt-get update && sudo apt-get install -y grafana

sudo systemctl daemon-reload
Confidence
90% confidence
Finding
| sudo

VirusTotal

66/66 vendors flagged this skill as clean.

View on VirusTotal