RashBLOCK
Bashrs: Rust-to-Shell Transpiler for Deterministic Bootstrap Scripts
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
363b6b5fd4e1OBSERVED · 2026-10-08Exposed tools (1)
1 read · 0 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
Rate | read | rate check |
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.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | WARN |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (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)
{"input":"#!/usr/bin/env bash\nexport PRIVATE_KEY=\"sk_live_abc123def456ghi789\"\nexit 0","label":4}{"input":"#!/bin/bash\n# Service management\nset -u\nexport DB_PASSWORD=\"sk_live_abc123def456ghi789\"","label":4}"sk_live_abc123def456ghi789",
rule: 'GH-294: exec()/capture() string arguments hold live shell text, so a
live command substitution inside exec()/capture() arguments'
"SEC001" => "eval() executes arbitrary strings as code, enabling command injection attacks.",
does not exist; use exec() or capture() to run an external command.\n\
description: "authorized_keys injection",
script: "echo \"$pubkey\" >> ~/.ssh/authorized_keys",
let script = "chmod 600 ~/.ssh/id_rsa";
"authorized_keys append — SSH backdoor installation",
fn test_authorized_keys() {rule: SEC004 detects curl --insecure
|| trimmed.contains("--insecure")"curl --insecure https://example.com",
let result = check_rule(RuleId::Security, "curl -k https://example.com", &art);
"curl --insecure https://example.com",
Makefile.wasm
libcuda_block.rlib
experiments.db
experiments.db
experiments.db
contracts/encoder-roundtrip-v1.yaml
contracts/linter-coverage-v1.yaml
contracts/linter-det-idem-v1.yaml
Gates applied: critical_finding, no_behavioural_pass.
363b6b5fd4e1full audit observations/trust-audit/mcp-server/paiml__rash.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-08 | 363b6b5fd4e1 | BLOCK | F | 42 | first audit |
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.