Files
vibe-kanban/crates/remote
Louis Knight-Webb 6900b1df52 Fix: Prevent code execution when cloning untrusted repositories (Vibe Kanban) (#1564)
* Done. All three git commands now have security protections:

**Changes made to `crates/remote/src/github_app/service.rs`:**

1. **Clone** (line 284): Added `-c core.hooksPath=/dev/null`, `-c core.autocrlf=false`, `-c core.symlinks=false` flags plus environment variables

2. **Fetch** (line 318): Added `-c core.hooksPath=/dev/null` flag plus environment variables

3. **Checkout** (line 349): Added `-c core.hooksPath=/dev/null` flag plus environment variables

**Security protections now in place:**
- `core.hooksPath=/dev/null` - Disables all git hooks
- `core.symlinks=false` - Prevents symlink attacks (on clone)
- `core.autocrlf=false` - Prevents line ending manipulation (on clone)
- `GIT_CONFIG_GLOBAL=/dev/null` - Ignores global git config
- `GIT_CONFIG_SYSTEM=/dev/null` - Ignores system git config
- `GIT_TERMINAL_PROMPT=0` - Prevents credential prompts

The repository cloning is now safe for untrusted repositories.

* Cleanup script changes for task attempt 8324c5ea-8505-49a7-a9f3-dfeb2d83cf54
2025-12-16 14:54:53 +00:00
..
2025-12-15 19:42:13 +00:00
2025-12-15 19:42:13 +00:00
2025-12-16 14:24:51 +00:00
2025-12-15 19:42:13 +00:00
2025-12-15 19:42:13 +00:00
2025-11-14 15:37:56 +00:00
2025-11-14 15:37:56 +00:00

Remote service

The remote crate contains the implementation of the Vibe Kanban hosted API.

Prerequisites

Create a .env.remote file in the repository root:

VIBEKANBAN_REMOTE_JWT_SECRET=your_base64_encoded_secret
SERVER_PUBLIC_BASE_URL=http://localhost:3000
GITHUB_OAUTH_CLIENT_ID=your_github_web_app_client_id
GITHUB_OAUTH_CLIENT_SECRET=your_github_web_app_client_secret
GOOGLE_OAUTH_CLIENT_ID=your_google_web_app_client_id
GOOGLE_OAUTH_CLIENT_SECRET=your_google_web_app_client_secret

Generate VIBEKANBAN_REMOTE_JWT_SECRET once using openssl rand -base64 48 and copy the value into .env.remote.

At least one OAuth provider (GitHub or Google) must be configured.

Run the stack locally

docker compose --env-file .env.remote -f docker-compose.yml up --build

Exposes the API on http://localhost:8081. The Postgres service is available at postgres://remote:remote@localhost:5432/remote.

Run Vibe Kanban

export VK_SHARED_API_BASE=http://localhost:8081

pnpm run dev