Back to skill

Security audit

Celaut Skill

Security checks for vulnerabilities and agentic risk

Overview

This skill documents a real Celaut/Nodo workflow, but it asks agents to install and run mutable network-sourced code with high host privileges.

Install only on a dedicated Linux host or VM you are willing to administer closely. Pin source commits and verify checksums or signatures before running installers, do not let an agent run sudo automatically, and never configure wallet mnemonics or initiate Ergo spending without explicit review and consent.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (6)

T03 · Remote Payload Retrieval and Execution

Error
Location
SKILL.md:102
Finding

Mutable Remote Installers Are Executed Directly With Root Privileges

Content
View full analysis
Remediation
View remediation
/install.sh" \ -o /tmp/nodo-install.sh echo " /tmp/nodo-install.sh" | sha256sum -c - less /tmp/nodo-install.sh sudo bash /tmp/nodo-install.sh ``` ]]>

T08 · Insecure Dependencies

Error
Location
INSTALL.md:67
Finding

Downloaded yq Executable Is Installed Without Integrity Verification

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Error
Location
INSTALL.md:281
Finding

Cloud Hypervisor Binary Is Installed Without Integrity Verification

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Error
Location
SKILL.md:122
Finding

Mutable Nodo Source Checkout Is Passed to a Privileged Installer

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Error
Location
SKILL.md:328
Finding

Mutable MCP Server Checkout Installs and Runs Unreviewed npm Code

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Error
Location
INSTALL.md:49
Finding

Manual Installation Uses Mutable Source and Unverified Python Dependency Resolution

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (97)

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · INSTALL.md (reported line 177)May include surrounding context.

ln -sfn "$PY_CURRENT_BIN" "$PY_RUNTIME_BIN" fi

rm -rf "$TMP_PY_DIR" /tmp/nodo-python.tar.gz /tmp/nodo-python.SHA256SUMS

text

## 7) Install local portable Java runtime (Temurin JRE 21)

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · INSTALL.md (reported line 219)May include surrounding context.

ln -sfn "$JRE_INSTALL_DIR" "$JAVA_HOME_PATH" fi

rm -rf "$TMP_JRE_DIR" /tmp/nodo-jre.tar.gz /tmp/nodo-jre.sha256.txt

text

## 8) Create local Python venv and install Python deps

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
85% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · INSTALL.md (reported line 288)May include surrounding context.

md
fi
done
[ -n "$CH_OK" ] || { echo "Unable to download cloud-hypervisor"; exit 1; }
rm -f /tmp/cloud-hypervisor.bin

KERNEL_SOURCE="$(readlink -f /boot/vmlinuz 2>/dev/null || true)"
if [ -z "$KERNEL_SOURCE" ] || [ ! -f "$KERNEL_SOURCE" ]; then

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · PACKING.md (reported line 126)May include surrounding context.

"tests/", "*.pyc", "pycache", ".env" ] }

text

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · PACKING.md (reported line 171)May include surrounding context.

"tests/", "*.pyc", "pycache", ".env" ] }

text

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · PACKING.md (reported line 1375)May include surrounding context.

"tests/", "*.pyc", "pycache", ".env" ] }

text

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · PACKING.md (reported line 1482)May include surrounding context.

"tests/", "*.pyc", "pycache", ".env" ] }

text

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · PACKING.md (reported line 1591)May include surrounding context.

"tests/", "*.pyc", "pycache", ".env" ] }

text

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · PACKING.md (reported line 1678)May include surrounding context.

"tests/", "*.pyc", "pycache", ".env" ] }

text

Chaining Abuse

High
Category
Tool Misuse
Confidence
75% confidence
Finding

Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.

Content

Scanner excerpt · PACKING.md (reported line 1313)May include surrounding context.

COPY ./start.sh /var/www/start.sh

RUN chmod +x /var/www/start.sh
&& chown -R www-data:www-data /var/www/storage
&& chown -R www-data:www-data /var/www/bootstrap/cache

text

Chaining Abuse

High
Category
Tool Misuse
Confidence
75% confidence
Finding

Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.

Content

Scanner excerpt · PACKING.md (reported line 1314)May include surrounding context.

COPY ./start.sh /var/www/start.sh

RUN chmod +x /var/www/start.sh
&& chown -R www-data:www-data /var/www/storage
&& chown -R www-data:www-data /var/www/bootstrap/cache

text

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 81)May include surrounding context.

md
[`../PACKING.md`](./PACKING.md).

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 143)May include surrounding context.

md
[`../PACKING.md`](./PACKING.md).

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 204)May include surrounding context.

md
[`../PACKING.md`](./PACKING.md).

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 438)May include surrounding context.

md
[`../PACKING.md`](./PACKING.md).

Chaining Abuse

High
Category
Tool Misuse
Confidence
99% confidence
Finding

This is a classic chained-abuse pattern: remote download immediately piped into a privileged shell. It collapses all trust boundaries—network, source control, and privilege escalation—into one step, enabling full host takeover if any upstream component is compromised.

Content

Scanner excerpt · SKILL.md (reported line 102)May include surrounding context.

routing (iptables) and the virtualization runtime:

bash
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/celaut-project/nodo/stable/install.sh | sudo bash

Verify-first alternative (sanctioned). If piping a remote script into `sudo

Chaining Abuse

High
Category
Tool Misuse
Confidence
99% confidence
Finding

This repeats the same chaining-abuse pattern against a mutable dev branch, making the trust boundary even weaker. A malicious or accidental change upstream would be executed as root immediately, giving an attacker total control of the system.

Content

Scanner excerpt · SKILL.md (reported line 130)May include surrounding context.

To install from a specific branch (e.g. dev):

bash
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/celaut-project/nodo/dev/install.sh | sudo bash -s -- --branch dev

For manual bootstrapping without install.sh (no-sudo path, exact package and

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 175)May include surrounding context.

md
Full key reference: [`../CONFIG.md`](./CONFIG.md).

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 402)May include surrounding context.

md
Full key reference: [`../CONFIG.md`](./CONFIG.md).

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 439)May include surrounding context.

md
Full key reference: [`../CONFIG.md`](./CONFIG.md).

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 295)May include surrounding context.

md
structure of *this* bridge skill file (`SKILL.md`), **Unstoppable Skills** (Celaut

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 413)May include surrounding context.

md
> that [`../USAGE.md`](./USAGE.md) does not document these either; consult

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 437)May include surrounding context.

md
> that [`../USAGE.md`](./USAGE.md) does not document these either; consult

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
85% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · UNINSTALL.md (reported line 93)May include surrounding context.

sudo systemctl daemon-reload sudo rm -f "$WRAPPER_SCRIPT"

System-level shell completions installed by install.sh (uninstall.sh does not remove these):

sudo rm -f /etc/bash_completion.d/nodo /usr/local/share/zsh/site-functions/_nodo

text

### 2.5 Remove installation directory

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
80% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

Scanner excerpt · INSTALL.md (reported line 300)May include surrounding context.

md
CH_INITRAMFS_TARGET="$TARGET_DIR/cloud_hypervisor/initramfs/${CH_ARCH_TAG}/initramfs"
mkdir -p "$(dirname "$CH_KERNEL_TARGET")" "$(dirname "$CH_INITRAMFS_TARGET")"
cp -f "$KERNEL_SOURCE" "$CH_KERNEL_TARGET"
chmod 0644 "$CH_KERNEL_TARGET"

bash "$TARGET_DIR/bash/build_ch_initramfs.sh" "$TARGET_DIR" "$CH_ARCH_TAG" "$CH_INITRAMFS_TARGET"

Static analysis

No suspicious patterns detected.