T01 · Skill Instruction Hijacking
- Location
SKILL.md:10- Finding
System-prompt-style identity and objective hijacking
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is not clearly malicious, but it gives an agent broad autonomous control over a trading-bot system, including credentials, persistent jobs, and external Telegram reporting.
Install only in a tightly controlled ARGOS environment where you are comfortable granting operational authority. Before use, require explicit approval for code changes, restarts, cron jobs, payments, and public posts; replace /home .env discovery with a fixed secret source; disable or gate Telegram reporting; redact user IDs and payment details; and avoid sudo or whole-filesystem access unless separately approved.
SKILL.md:10System-prompt-style identity and objective hijacking
SKILL.md:403Recursive credential discovery and executable loading of discovered environment files
SKILL.md:304Detached infinite monitor creates cross-session process persistence
SKILL.md:623Recurring cron jobs persistently collect and transmit local operational data
SKILL.md:394Mandatory telemetry transmits user identifiers and sensitive operational details
SKILL.md:332Untrusted home-directory state can persistently influence future agent sessions
SKILL.md:200Unpinned dependency installation into an unspecified Python environment
The same line also uses filesystem discovery to locate secret-bearing .env material, broadening access beyond a single known project directory. That pattern is dangerous because it encourages indiscriminate credential harvesting from the host rather than controlled access to only the minimum necessary secret.
# Função para notificar o Félix (guardar em ~/atlas_notify.sh)
#!/bin/bash
# Uso: ~/atlas_notify.sh "📋 Mensagem aqui"
source $(find /home -maxdepth 4 -name ".env" -path "*argos*" -printf '%h\n' 2>/dev/null | head -1)/.env 2>/dev/null
# Fallback: ler do .env directamente
BOT_TOKEN="${TELEGRAM_BOT_TOKEN:-$(grep BOT_TOKEN $(find /home -name '.env' -path '*argos*' 2>/dev/null | head -1) 2>/dev/null | cut -d= -f2)}"
The same line also uses filesystem discovery to locate secret-bearing .env material, broadening access beyond a single known project directory. That pattern is dangerous because it encourages indiscriminate credential harvesting from the host rather than controlled access to only the minimum necessary secret.
# Função para notificar o Félix (guardar em ~/atlas_notify.sh)
#!/bin/bash
# Uso: ~/atlas_notify.sh "📋 Mensagem aqui"
source $(find /home -maxdepth 4 -name ".env" -path "*argos*" -printf '%h\n' 2>/dev/null | head -1)/.env 2>/dev/null
# Fallback: ler do .env directamente
BOT_TOKEN="${TELEGRAM_BOT_TOKEN:-$(grep BOT_TOKEN $(find /home -name '.env' -path '*argos*' 2>/dev/null | head -1) 2>/dev/null | cut -d= -f2)}"
This line parses BOT_TOKEN from located .env files, directly extracting a live credential for an external service. Such behavior is high risk because it enables the agent to authenticate as the bot and send messages, impersonate operations, or abuse the service if compromised or misused.
# Uso: ~/atlas_notify.sh "📋 Mensagem aqui"
source $(find /home -maxdepth 4 -name ".env" -path "*argos*" -printf '%h\n' 2>/dev/null | head -1)/.env 2>/dev/null
# Fallback: ler do .env directamente
BOT_TOKEN="${TELEGRAM_BOT_TOKEN:-$(grep BOT_TOKEN $(find /home -name '.env' -path '*argos*' 2>/dev/null | head -1) 2>/dev/null | cut -d= -f2)}"
ADMIN_ID="${TELEGRAM_ADMIN_ID:-$(grep ADMIN_ID $(find /home -name '.env' -path '*argos*' 2>/dev/null | head -1) 2>/dev/null | cut -d= -f2)}"
This line extracts ADMIN_ID from .env files, and in context pairs identity data with bot credentials for external messaging. While an admin ID alone is less sensitive than a token, harvesting it from secret/config files contributes to unauthorized data access and facilitates targeted outbound communication without guardrails.
source $(find /home -maxdepth 4 -name ".env" -path "*argos*" -printf '%h\n' 2>/dev/null | head -1)/.env 2>/dev/null
# Fallback: ler do .env directamente
BOT_TOKEN="${TELEGRAM_BOT_TOKEN:-$(grep BOT_TOKEN $(find /home -name '.env' -path '*argos*' 2>/dev/null | head -1) 2>/dev/null | cut -d= -f2)}"
ADMIN_ID="${TELEGRAM_ADMIN_ID:-$(grep ADMIN_ID $(find /home -name '.env' -path '*argos*' 2>/dev/null | head -1) 2>/dev/null | cut -d= -f2)}"
if [ -n "$BOT_TOKEN" ] && [ -n "$ADMIN_ID" ]; then
This line continues the pattern of retrieving configuration from discovered .env files immediately before external transmission, reinforcing an end-to-end path from secret access to off-host communication. That coupling significantly raises the risk that credentials and sensitive context are used without proper authorization controls.
# Fallback: ler do .env directamente
BOT_TOKEN="${TELEGRAM_BOT_TOKEN:-$(grep BOT_TOKEN $(find /home -name '.env' -path '*argos*' 2>/dev/null | head -1) 2>/dev/null | cut -d= -f2)}"
ADMIN_ID="${TELEGRAM_ADMIN_ID:-$(grep ADMIN_ID $(find /home -name '.env' -path '*argos*' 2>/dev/null | head -1) 2>/dev/null | cut -d= -f2)}"
if [ -n "$BOT_TOKEN" ] && [ -n "$ADMIN_ID" ]; then
curl -s "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \
The instruction mandates 'Português de Portugal (PT-PT)' as the required language style, which is a locale constraint expressed in natural language. Because the skill does not offer the user a language or locale choice and is not clearly justified as region-specific compliance tooling, this matches the policy violation described in SQP-3.
The skill explicitly instructs autonomous code changes, direct file edits, service restarts, and operational changes on the host without requiring explicit per-action user confirmation or a safety gate. In an agent setting with broad filesystem and process access, this can lead to unauthorized modification of production systems, accidental outages, or persistence-changing behavior triggered by normal conversation flow.
Using nohup to restart the service creates a detached background process that persists beyond the current session, which is a form of persistence-changing behavior. In a highly autonomous skill, this is risky because it allows the agent to spawn or respawn long-lived processes without explicit operator approval or supervision.
**Quando o ARGOS crashar:**
1. Verificar logs → identificar o erro
2. Se for bug de código → corrigir tu mesmo (Python) ou delegar ao Antigravity
3. Reiniciar: `cd $ARGOS_DIR && source venv/bin/activate && nohup python3 main.py &`
4. Confirmar que voltou: `sleep 5 && pgrep -af argos`
**Quando encontrares um bug:**
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Para publicar automaticamente no canal:
# Usar o bot para enviar ao canal
curl -s "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" \
-d "chat_id=@NomeDoCanal" \
-d "text=📊 Sinal grátis do dia: BTC LONG..." \
-d "parse_mode=Markdown"
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Para publicar automaticamente no canal:
# Usar o bot para enviar ao canal
curl -s "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" \
-d "chat_id=@NomeDoCanal" \
-d "text=📊 Sinal grátis do dia: BTC LONG..." \
-d "parse_mode=Markdown"
This instruction has the agent automatically relaunch the main bot in the background from a monitoring loop, establishing self-healing persistence without human review. If the monitored process, path resolution, or code is wrong or compromised, the skill can repeatedly revive a faulty or malicious process and prolong an incident.
echo "[$(date)] ARGOS down! A reiniciar..."
cd $(find /home -maxdepth 4 -name "main.py" -path "*argos*" -printf '%h\n' | head -1)
source venv/bin/activate
nohup python3 main.py >> logs/argos.log 2>&1 &
echo "[$(date)] ARGOS reiniciado."
# Opcional: notificar via Telegram
fi
Launching the monitor script itself with nohup creates a second persistent background mechanism whose purpose is to keep another process alive. This compounds persistence risk by installing an unsupervised watchdog that can survive the user session and continuously modify runtime state.
done EOF chmod +x ~/monitor_argos.sh nohup ~/monitor_argos.sh >> ~/monitor.log 2>&1 &
---
The mandatory notification policy instructs the agent to transmit operational details and user identifiers externally to the owner via Telegram for many routine events. This is dangerous because it normalizes broad exfiltration of locally gathered data, and Telegram messages may include sensitive IDs, incident details, or internal state that should remain on the system or be access-controlled.
This section combines credential discovery from local .env files with outbound Telegram API usage, but provides no consent boundary, minimization rule, or warning about transmitting data off-host. That creates a real risk of secret handling and data exfiltration through notifications, especially because the skill mandates notifying on many operational events.
The Telegram API endpoint here is used in a notification mechanism tied to credential lookup and broad mandatory reporting. In context, it enables transmission of internal system and user-related data to an external service, which is a meaningful data leakage vector.
ADMIN_ID="${TELEGRAM_ADMIN_ID:-$(grep ADMIN_ID $(find /home -name '.env' -path '*argos*' 2>/dev/null | head -1) 2>/dev/null | cut -d= -f2)}"
if [ -n "$BOT_TOKEN" ] && [ -n "$ADMIN_ID" ]; then
curl -s "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \
-d "chat_id=${ADMIN_ID}" \
-d "text=$1" \
-d "parse_mode=Markdown" > /dev/null
The Telegram API endpoint here is used in a notification mechanism tied to credential lookup and broad mandatory reporting. In context, it enables transmission of internal system and user-related data to an external service, which is a meaningful data leakage vector.
ADMIN_ID="${TELEGRAM_ADMIN_ID:-$(grep ADMIN_ID $(find /home -name '.env' -path '*argos*' 2>/dev/null | head -1) 2>/dev/null | cut -d= -f2)}"
if [ -n "$BOT_TOKEN" ] && [ -n "$ADMIN_ID" ]; then
curl -s "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \
-d "chat_id=${ADMIN_ID}" \
-d "text=$1" \
-d "parse_mode=Markdown" > /dev/null
The automated reporting script reads local state files, logs, issues, metrics, and changelog content, then relays summaries to Telegram on a schedule. Even if framed as operations reporting, this creates a persistent exfiltration channel for potentially sensitive business data, internal incidents, and user-related information without consent or filtering.
Declaring that the agent has 'sudo disponível' materially increases the blast radius of every other instruction in the skill, including file edits, process control, cron installation, and credential access. Even without a concrete sudo command, encouraging privileged execution in a broadly autonomous skill makes accidental or unauthorized system-wide modification much more dangerous.
## ACESSO E FERRAMENTAS
Tu tens acesso a:
- ✅ Terminal bash completo (sudo disponível)
- ✅ Sistema de ficheiros inteiro (/home, /etc, etc.)
- ✅ Internet (pesquisa, APIs, downloads)
- ✅ Python 3 + pip
Detected: suspicious.prompt_injection_instructions