Summary
OpenClaw versions before 2026.2.14 did not sufficiently validate TAR archive entry paths during extraction. A crafted archive could use path traversal sequences (for example ../../...) to write files outside the intended destination directory (Zip Slip).
Affected Packages / Versions
- Package:
openclaw (npm)
- Affected:
< 2026.2.14
- Fixed:
>= 2026.2.14
Details
The affected code path is extractArchive() in src/infra/archive.ts. Prior to 2026.2.14, TAR extraction used tar.x({ cwd: destDir }) without rejecting traversal and absolute entry paths.
This extraction is used by installation flows such as:
openclaw plugins install …
openclaw hooks install …
Impact
If a user installs an untrusted .tar / .tgz archive, an attacker can write files outside the extraction directory (within the permissions of the OpenClaw process). This can lead to configuration tampering and potentially code execution.
Mitigation
Upgrade to openclaw >= 2026.2.14. Avoid installing untrusted plugin/hook archives.
Fix Commit(s)
3aa94afcfd12104c683c9cad81faf434d0dadf87
OpenClaw thanks @xuemian168 for reporting.
References
Summary
OpenClaw versions before 2026.2.14 did not sufficiently validate TAR archive entry paths during extraction. A crafted archive could use path traversal sequences (for example
../../...) to write files outside the intended destination directory (Zip Slip).Affected Packages / Versions
openclaw(npm)< 2026.2.14>= 2026.2.14Details
The affected code path is
extractArchive()insrc/infra/archive.ts. Prior to 2026.2.14, TAR extraction usedtar.x({ cwd: destDir })without rejecting traversal and absolute entry paths.This extraction is used by installation flows such as:
openclaw plugins install …openclaw hooks install …Impact
If a user installs an untrusted
.tar/.tgzarchive, an attacker can write files outside the extraction directory (within the permissions of the OpenClaw process). This can lead to configuration tampering and potentially code execution.Mitigation
Upgrade to
openclaw >= 2026.2.14. Avoid installing untrusted plugin/hook archives.Fix Commit(s)
3aa94afcfd12104c683c9cad81faf434d0dadf87OpenClaw thanks @xuemian168 for reporting.
References