Every CVESearch/Get API key

GHSA-w7j5-j98m-w679

OpenClaw has multiple E2E/test Dockerfiles that run all processes as root

8.4 HighFix available

Three Dockerfiles in scripts/docker/ and scripts/e2e/ lack a USER directive, meaning all processes run as uid 0 (root). If any process is compromised, the attacker has root inside the container, making container breakout significantly easier. Partial fix (2026-02-08): Commit 28e1a65e added USER sandbox to Dockerfile.sandbox and Dockerfile.sandbox-browser. The E2E/test Dockerfiles listed below remain unpatched.

Affected components:

  • scripts/e2e/Dockerfile
  • scripts/e2e/Dockerfile.qr-import
  • scripts/docker/install-sh-e2e/Dockerfile
  • scripts/docker/install-sh-nonroot/Dockerfile (runs as app but with NOPASSWD sudo — see related advisory)

Technical Reproduction:

  1. Open each Dockerfile listed above and search for a USER directive — none found.
  2. Run any of these containers: docker run --rm -it <image> id
  3. Observe: returns uid=0(root).

Demonstrated Impact:

  • Root inside the container enables kernel exploit attempts, volume mount abuse, and privileged syscall access.
  • Test images share the same base (node:22-bookworm) as production, creating risk of accidental deployment of root-running images.

Environment: Base images node:22-bookworm and node:22-bookworm-slim default to root. Dockerfile.sandbox and Dockerfile.sandbox-browser were remediated in commit 28e1a65e; only the E2E/test images listed above remain affected.

Remediation: Add a USER directive before CMD/ENTRYPOINT in each remaining Dockerfile: RUN useradd --create-home --shell /bin/bash appuser USER appuser

Attack profile

How easy it is to exploit

Attack vector
Local
Complexity
Low
Privileges needed
Low
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
High
Availability
None

What each source reports

GitHub Advisories Score used8.4

OpenClaw has multiple E2E/test Dockerfiles that run all processes as root

Three Dockerfiles in scripts/docker/ and scripts/e2e/ lack a USER directive, meaning all processes run as uid 0 (root). If any process is compromised, the attacker has root inside the container, making container breakout significantly easier. Partial fix (2026-02-08): Commit 28e1a65e added USER sandbox to Dockerfile.sandbox and Dockerfile.sandbox-browser. The E2E/test Dockerfiles listed below remain unpatched.

Affected components:

  • scripts/e2e/Dockerfile
  • scripts/e2e/Dockerfile.qr-import
  • scripts/docker/install-sh-e2e/Dockerfile
  • scripts/docker/install-sh-nonroot/Dockerfile (runs as app but with NOPASSWD sudo — see related advisory)

Technical Reproduction:

  1. Open each Dockerfile listed above and search for a USER directive — none found.
  2. Run any of these containers: docker run --rm -it <image> id
  3. Observe: returns uid=0(root).

Demonstrated Impact:

  • Root inside the container enables kernel exploit attempts, volume mount abuse, and privileged syscall access.
  • Test images share the same base (node:22-bookworm) as production, creating risk of accidental deployment of root-running images.

Environment: Base images node:22-bookworm and node:22-bookworm-slim default to root. Dockerfile.sandbox and Dockerfile.sandbox-browser were remediated in commit 28e1a65e; only the E2E/test images listed above remain affected.

Remediation: Add a USER directive before CMD/ENTRYPOINT in each remaining Dockerfile: RUN useradd --create-home --shell /bin/bash appuser USER appuser

Record
GHSA-w7j5-j98m-w679
CVSS 4.0
8.4 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:H/SI:H/SA:H
Weakness
CWE-250
Updated
2026-11-02
OSV8.4

OpenClaw has multiple E2E/test Dockerfiles that run all processes as root

Three Dockerfiles in scripts/docker/ and scripts/e2e/ lack a USER directive, meaning all processes run as uid 0 (root). If any process is compromised, the attacker has root inside the container, making container breakout significantly easier. Partial fix (2026-02-08): Commit 28e1a65e added USER sandbox to Dockerfile.sandbox and Dockerfile.sandbox-browser. The E2E/test Dockerfiles listed below remain unpatched.

Affected components:

  • scripts/e2e/Dockerfile
  • scripts/e2e/Dockerfile.qr-import
  • scripts/docker/install-sh-e2e/Dockerfile
  • scripts/docker/install-sh-nonroot/Dockerfile (runs as app but with NOPASSWD sudo — see related advisory)

Technical Reproduction:

  1. Open each Dockerfile listed above and search for a USER directive — none found.
  2. Run any of these containers: docker run --rm -it <image> id
  3. Observe: returns uid=0(root).

Demonstrated Impact:

  • Root inside the container enables kernel exploit attempts, volume mount abuse, and privileged syscall access.
  • Test images share the same base (node:22-bookworm) as production, creating risk of accidental deployment of root-running images.

Environment: Base images node:22-bookworm and node:22-bookworm-slim default to root. Dockerfile.sandbox and Dockerfile.sandbox-browser were remediated in commit 28e1a65e; only the E2E/test images listed above remain affected.

Remediation: Add a USER directive before CMD/ENTRYPOINT in each remaining Dockerfile: RUN useradd --create-home --shell /bin/bash appuser USER appuser

Record
GHSA-w7j5-j98m-w679
CVSS 4.0
8.4 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:H/SI:H/SA:H
Weakness
CWE-250
Updated
2026-11-02

Affected packages

Affected packages
PackageAffectedFixed
openclaw
npm
before 2026.2.21
2026.2.21

History

History
RecordedChangedSources
first indexedGitHub Advisories, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

GHSA-w7j5-j98m-w679 is a high vulnerability (CVSS 8.4) in openclaw, published March 3, 2026. No source lists public exploit code. Fixed in openclaw 2026.2.21.

References

MoveEnter Open