T01 · Skill Instruction Hijacking
- Location
SKILL.md:5- Finding
Agent identity replacement and autonomous behavior hijacking
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is for operating a trading bot, but it asks for broad computer control, credential discovery, background jobs, and automatic Telegram reporting that require careful review.
Install only if you intend to give this skill operator-level control over the ARGOS machine. Before use, restrict it to a fixed ARGOS directory, remove sudo and broad /home searches, replace .env sourcing with explicit secret provisioning, require approval for code changes, payments, public posts, and restarts, and avoid cron or nohup persistence unless separately reviewed and easy to disable.
SKILL.md:5Agent identity replacement and autonomous behavior hijacking
SKILL.md:397Broad credential discovery and arbitrary shell execution through sourced environment files
SKILL.md:614Persistent scheduled reporting and recurring outbound transmission
SKILL.md:286Detached infinite monitoring process that autonomously restarts application code
SKILL.md:174Unpinned third-party package installation at runtime
SKILL.md:687Excessive system-wide permissions beyond the Skill's operational requirements
The skill grants sweeping host-level powers including full filesystem, terminal, internet, and process access, far beyond a narrowly bounded bot-management role. In the context of an agent skill, this materially increases blast radius: any prompt-induced mistake or abuse can affect the entire machine rather than just the ARGOS application.
The skill requires broad disclosure of crashes, user starts with IDs, payments, code changes, and other operational details to a Telegram recipient in natural language. This creates a persistent exfiltration channel for sensitive operational and user-related information, with little minimization or boundary control.
Reading raw .env content to recover secrets is a credential-handling anti-pattern. It trains the agent to harvest configuration secrets from disk rather than use least-privilege secret delivery, increasing the chance of accidental disclosure or abuse.
# 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)}"
Reading raw .env content to recover secrets is a credential-handling anti-pattern. It trains the agent to harvest configuration secrets from disk rather than use least-privilege secret delivery, increasing the chance of accidental disclosure or abuse.
# 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 fallback logic explicitly greps .env files for BOT_TOKEN and ADMIN_ID, which is direct credential extraction from local storage. In an autonomous agent context, this creates a reusable path to secrets that can be repurposed for unauthorized external communication.
# 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 continues the pattern of enumerating .env files to obtain secrets, broadening where the agent looks for credentials. Searching across /home for secret files increases exposure surface and normalizes secret harvesting behavior.
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
Using extracted credentials immediately before an external send operation ties credential access to outbound transmission, making the risk concrete rather than theoretical. If abused, the agent can impersonate the bot and message arbitrary recipients or leak operational data.
# 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 skill mandates sending user IDs, payments, incidents, and operational events to a Telegram recipient without warning that this is third-party data transmission. This leaks internal and user-related information outside the local system and may expose identifiers or business telemetry to an external messaging platform.
The automated report script aggregates local state, logs, metrics, changelog entries, and issue contents, then forwards them externally over Telegram. This centralizes and transmits potentially sensitive host and business data, making accidental leakage or unauthorized disclosure much more likely.
The skill claims 'security first' while elsewhere instructing the agent to locate .env files, extract bot/admin credentials, and use them for automatic outbound notifications. That contradiction is dangerous because it normalizes secret access and reuse for unrelated reporting, increasing the chance of credential exposure and unauthorized messaging.
The instructions explicitly require the assistant to use PT-PT terminology, and later repeat this as a standing rule. This is a language policy constraint presented as mandatory rather than offering user choice or documenting a justified regional limitation.
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
**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:**
The skill instructs storing payment and subscription status in a local JSON file without any retention, access control, minimization, or privacy guidance. Even if the data is not highly sensitive by itself, subscription/payment records are user-related data and can be exposed, misused, or retained indefinitely.
This instruction sends content to the Telegram API, which is an external transmission channel. External transmission is not always unsafe, but in this skill's broader context of broad autonomy and credential use, it increases data leakage risk if messages or tokens are mishandled.
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 sends content to the Telegram API, which is an external transmission channel. External transmission is not always unsafe, but in this skill's broader context of broad autonomy and credential use, it increases data leakage risk if messages or tokens are mishandled.
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"
The monitor script auto-restarts the bot and runs continuously in the background, creating an unsupervised persistence mechanism. In an autonomous agent setting, self-maintaining background processes can outlive oversight and make unwanted behavior harder to detect or stop.
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 itself under nohup establishes durable background execution independent of the current session. That persistence increases risk because the agent is being instructed to create a long-running watchdog with broad access and optional notification behavior.
done EOF chmod +x ~/monitor_argos.sh nohup ~/monitor_argos.sh >> ~/monitor.log 2>&1 &
---
This outbound Telegram call is paired with credential discovery from .env and is used for administrative notifications containing operational details. In context, it functions as an exfiltration path for internal system and user-related data to an external service.
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
This outbound Telegram call is paired with credential discovery from .env and is used for administrative notifications containing operational details. In context, it functions as an exfiltration path for internal system and user-related data to an external service.
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
Advertising that sudo is available to the agent materially increases privilege escalation risk. Combined with broad filesystem, process, and internet access, this can turn a prompt injection or operational mistake into full-host compromise.
## 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
This line reinforces that user-visible text must always be PT-PT, again imposing a fixed locale. Because no opt-in or alternative language handling is described, it constitutes the same language-policy concern in the operational rules.
Detected: suspicious.prompt_injection_instructions