diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d28d23..4eea9bb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.1.4] - 2026-09-14 + +### Fixed +- `rm -rf` on nested paths (e.g. `/root/myapp/build`, `/tmp/build`) is allowed again — the #18 hardening had started blocking every absolute-path `rm -rf`, breaking the tool's normal use and trivially bypassable via `cd && rm -rf ` (#21) +- `rm -rf` still blocked for: top-level absolute paths (any argument, e.g. `rm -rf /home /tmp`), wildcard wipes (`/home/*`), critical system files (`/etc/shadow`, `/etc/passwd`, `/etc/sudoers`, `/etc/fstab`, `/boot/*`), and parent traversal +- Keyword-layer pattern `rm -rf /root\b` no longer matches `/root/child` (word boundary between `t` and `/`) + ## [1.1.3] - 2026-09-14 ### Fixed diff --git a/pyproject.toml b/pyproject.toml index 9411a27..391bcfb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "remoteshell-mcp" -version = "1.1.3" +version = "1.1.4" description = "MCP server for managing SSH connections and executing remote commands" readme = "README.md" requires-python = ">=3.11" diff --git a/src/remoteshell_mcp/__init__.py b/src/remoteshell_mcp/__init__.py index cc61122..b39a199 100644 --- a/src/remoteshell_mcp/__init__.py +++ b/src/remoteshell_mcp/__init__.py @@ -1,4 +1,4 @@ """Remote Shell MCP Server - SSH connection management and remote command execution.""" -__version__ = "1.1.3" +__version__ = "1.1.4" diff --git a/uv.lock b/uv.lock index 5ee53b7..5086ad6 100644 --- a/uv.lock +++ b/uv.lock @@ -1187,7 +1187,7 @@ wheels = [ [[package]] name = "remoteshell-mcp" -version = "1.1.3" +version = "1.1.4" source = { editable = "." } dependencies = [ { name = "fastmcp" },