Atlas / MCP servers / paiml / Rash

RashBLOCK

mcp/paiml/rash

Bashrs: Rust-to-Shell Transpiler for Deterministic Bootstrap Scripts

Verdict
BLOCK
Grade
F
Trust score
42 /100
Exposed tools
1 1r · 0w · 0d
Transport
—
License
MIT
Stars
41
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

bashrs

Rust-to-POSIX Shell Transpiler

<img src="https://github.com/paiml/bashrs/actions/workflows/ci.yml/badge.svg" alt="CI">

Installation | Quick Start | Features | Book | API Docs

A bidirectional shell safety tool that transpiles Rust to deterministic POSIX shell scripts and purifies legacy bash into safe, portable shell. Also known as Rash (the library crate). Part of the PAIML Sovereign AI Stack transpiler family alongside depyler and decy.

Table of Contents

  • What is bashrs?
  • Installation
  • Quick Start
  • Features
  • Architecture
  • Quality
  • Sovereign AI Stack
  • Documentation
  • License

What is bashrs?

Shell scripts power CI/CD pipelines, deployment automation, and system configuration across every production environment. They are also notoriously fragile -- unquoted variables, non-idempotent op

Read from source at commit 363b6b5fd4e1OBSERVED · 2026-10-08
Advertisement
02

Exposed tools (1)

1 read · 0 write · 0 destructive.

ToolRiskDescription
Ratereadrate check
03

Trust audit

BLOCKgrade F · trust 42/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryWARN
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (16 observation(s))
Network
declared (11 observation(s))
Shell
declared (4 observation(s))
Dependencies
pinned
Secrets in source
found

Findings (25)

CRITICALHard-coded secrets · secret.stripe · CWE-798, CWE-321
adversarial.jsonl:298
{"input":"#!/usr/bin/env bash\nexport PRIVATE_KEY=\"sk_live_abc123def456ghi789\"\nexit 0","label":4}
CRITICALHard-coded secrets · secret.stripe · CWE-798, CWE-321
adversarial.jsonl:300
{"input":"#!/bin/bash\n# Service management\nset -u\nexport DB_PASSWORD=\"sk_live_abc123def456ghi789\"","label":4}
CRITICALHard-coded secrets · secret.stripe · CWE-798, CWE-321
rash/src/corpus/adversarial_templates.rs:109
"sk_live_abc123def456ghi789",
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
provable-contracts/contracts/transpiler-core-v1.yaml:120
rule: 'GH-294: exec()/capture() string arguments hold live shell text, so a
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
provable-contracts/contracts/transpiler-core-v1.yaml:127
live command substitution inside exec()/capture() arguments'
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
rash/src/cli/explain_command.rs:377
"SEC001" => "eval() executes arbitrary strings as code, enabling command injection attacks.",
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
rash/src/emitter/posix_verify.rs:116
does not exist; use exec() or capture() to run an external command.\n\
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
rash/src/corpus/generalization_tests.rs:288
description: "authorized_keys injection",
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
rash/src/corpus/generalization_tests.rs:289
script: "echo \"$pubkey\" >> ~/.ssh/authorized_keys",
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
rash/src/linter/rules/sec017.rs:201
let script = "chmod 600 ~/.ssh/id_rsa";
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
rash/src/linter/rules/sec022.rs:107
"authorized_keys append — SSH backdoor installation",
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
rash/src/linter/rules/sec022.rs:186
fn test_authorized_keys() {
Why it matters. touches a credential store
HIGHNetwork egress · net.tls_off · CWE-200, CWE-319
provable-contracts/contracts/linter-security-rules-v1.yaml:108
rule: SEC004 detects curl --insecure
Why it matters. certificate verification is disabled
Fix. leave verification on
HIGHNetwork egress · net.tls_off · CWE-200, CWE-319
rash/src/comply/rules_check.rs:183
|| trimmed.contains("--insecure")
Why it matters. certificate verification is disabled
Fix. leave verification on
HIGHNetwork egress · net.tls_off · CWE-200, CWE-319
rash/src/comply/rules_tests_a.rs:14
"curl --insecure https://example.com",
Why it matters. certificate verification is disabled
Fix. leave verification on
HIGHNetwork egress · net.tls_off · CWE-200, CWE-319
rash/src/comply/rules_tests_a.rs:36
let result = check_rule(RuleId::Security, "curl -k https://example.com", &art);
Why it matters. certificate verification is disabled
Fix. leave verification on
HIGHNetwork egress · net.tls_off · CWE-200, CWE-319
rash/src/comply/rules_tests_tests_idempotency.rs:196
"curl --insecure https://example.com",
Why it matters. certificate verification is disabled
Fix. leave verification on
MEDIUMInventory / provenance · inv.binary · CWE-1104
Makefile.wasm
Makefile.wasm
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMInventory / provenance · inv.binary · CWE-1104
libcuda_block.rlib
libcuda_block.rlib
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMInventory / provenance · inv.binary · CWE-1104
training/checkpoints/ssc-chat-v2/.entrenar/experiments.db
experiments.db
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMInventory / provenance · inv.binary · CWE-1104
training/checkpoints/ssc-chat-v3/.entrenar/experiments.db
experiments.db
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMInventory / provenance · inv.binary · CWE-1104
training/checkpoints/ssc-chat-v7-qwen3-4b/.entrenar/experiments.db
experiments.db
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMInventory / provenance · inv.symlink · CWE-1104
contracts/encoder-roundtrip-v1.yaml
contracts/encoder-roundtrip-v1.yaml
Why it matters. link not followed
MEDIUMInventory / provenance · inv.symlink · CWE-1104
contracts/linter-coverage-v1.yaml
contracts/linter-coverage-v1.yaml
Why it matters. link not followed
MEDIUMInventory / provenance · inv.symlink · CWE-1104
contracts/linter-det-idem-v1.yaml
contracts/linter-det-idem-v1.yaml
Why it matters. link not followed

Gates applied: critical_finding, no_behavioural_pass.

Audited 2026-10-08 · audit v0.4.1 · source sha 363b6b5fd4e1full audit observations/trust-audit/mcp-server/paiml__rash.json · Report an issue / request a re-scan
04

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-08363b6b5fd4e1BLOCKF42first audit
05

Questions

What is the Rash MCP server?

Bashrs: Rust-to-Shell Transpiler for Deterministic Bootstrap Scripts

What tools does Rash expose?

1 in total: 1 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is Rash safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (42/100) and found 17 critical or high issues in the source. Each one is listed on this page with the file and line it is on.

What credentials does Rash need?

It reads DB_PASSWORD from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How current is this page?

The grade is for one exact copy of the source (363b6b5fd4e1), read on 2026-10-08. The repository is watched and re-audited when it changes.

Advertisement