spawn/sh/docker/openclaw.Dockerfile
A cfa1ae7a08
fix(security): add --proto '=https' to all curl bun installer calls (#2138)
* fix(security): add --proto '=https' to all curl bun installer calls

Fixes #2134

All _ensure_bun() functions across aws, hetzner, gcp, local, daytona,
and sprite scripts now enforce HTTPS-only downloads via --proto '=https'.
This prevents MITM attacks during bun installation on remote VMs.
DigitalOcean scripts were already correct and are not changed.

Agent: security-auditor
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(security): add --proto '=https' to bun installer in TS files

Address security reviewer feedback: the same MITM vulnerability
existed in 5 TypeScript programmatic provisioning files.

Agent: pr-maintainer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(security): quote --proto '=https' in su -c curl calls

The aws.ts and gcp.ts files had --proto =https without quotes inside
su -c '...' blocks. Uses double quotes ("=https") to properly nest
inside the single-quoted su -c argument while maintaining protocol
restriction.

Agent: security-auditor
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

---------

Co-authored-by: B <6723574+louisgv@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-03 11:52:54 -08:00

32 lines
1 KiB
Docker

FROM ubuntu:24.04
ENV DEBIAN_FRONTEND=noninteractive
# Base packages
RUN apt-get update -y && \
apt-get install -y --no-install-recommends \
curl git ca-certificates build-essential unzip xz-utils zsh && \
rm -rf /var/lib/apt/lists/*
# Node.js 22 via apt + n
RUN apt-get update -y && \
apt-get install -y --no-install-recommends nodejs npm && \
npm install -g n && n 22 && \
ln -sf /usr/local/bin/node /usr/bin/node && \
ln -sf /usr/local/bin/npm /usr/bin/npm && \
ln -sf /usr/local/bin/npx /usr/bin/npx && \
rm -rf /var/lib/apt/lists/*
# Bun
RUN curl -fsSL --proto '=https' https://bun.sh/install | bash
ENV PATH="/root/.bun/bin:/root/.local/bin:${PATH}"
# OpenClaw via npm (Node runtime needs standard node_modules layout)
RUN npm install -g openclaw
# Ensure tools are on PATH for all shells
RUN for rc in /root/.bashrc /root/.zshrc; do \
grep -q '.bun/bin' "$rc" 2>/dev/null || \
echo 'export PATH="$HOME/.local/bin:$HOME/.bun/bin:$PATH"' >> "$rc"; \
done
CMD ["/bin/sleep", "inf"]