CVE-2026-58053 - Gitea act_runner Docker container options host escape

CVE-2026-58053 - Gitea act_runner Docker container options host escape - Critical - 2026-06-28

Business risk: A workflow author can turn a non-privileged CI job into root-level access on the runner host.

Root cause: container.options is merged into Docker HostConfig while only Privileged=false is forced.

Affected versions

  • Vulnerable: Gitea act_runner with Docker backend through act 0.262.0 when untrusted users can run workflows with container.options.
  • Fixed / safe target: Upgrade/backport runner hardening that blocks dangerous Docker options and allow-lists safe container settings.
  • CVSS: 9.9 (Critical)

Exact vulnerable code pattern

jobs:
  build:
    container:
      image: alpine
      options: --pid=host --cap-add=SYS_ADMIN --security-opt apparmor=unconfined

Fixed / mitigated code pattern

jobs:
  build:
    container:
      image: alpine
      # runner policy strips host namespace, cap-add, device, privileged, and security-opt overrides

Step-by-step integration guide

  1. Identify all Gitea act_runner Docker backends and act versions.
  2. Upgrade/harden the runner.
  3. Disable or strip container.options for untrusted repositories.
  4. Rotate runner host credentials if untrusted workflows previously ran.
  5. Add CI policy tests rejecting dangerous Docker options.

Alternative mitigations

  • Pause Docker-backed runners for untrusted repositories.
  • Use ephemeral isolated runners with no host secrets.
  • Block workflow container.options in admission policy.

Detection signature

rg -n "act_runner|container\.options|--pid=host|--cap-add|--security-opt|--privileged|gitea" . .gitea .github

Copy-paste skill block

Model context: this prompt was generated by GPT 5.5 Extra High reasoning.

Remediate CVE-2026-58053: Gitea act_runner Docker container options host escape.

Required output:
- A reviewer-ready PR with dependency/config/code changes, tests, and deployment notes; or
- TRIAGE.md if the affected runtime is outside this repository.

Steps:
1. Confirm exposure using the detection signature above.
2. Apply the fixed or mitigated pattern.
3. Add or run a regression test for the exploit shape.
4. Record commands, versions, and residual risk in the PR body.

Boundaries:
- Scope only CVE-2026-58053 and directly related hardening.
- Do not run destructive exploit payloads against production.
- Preserve existing behavior except for the vulnerable path.

Tags and revenue routing

  • Keywords: cve, gitea, act-runner, docker, ci, container-escape, sellable_to_devsecops, zero_day_gold, critical
  • Affected tech stack: go/docker
  • Revenue tags: sellable_to_devsecops, zero_day_gold

References