Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Attacker needs only authenticated workflow-run rights (PR:L) over the network with no user interaction; container-to-host escape changes scope (S:C) with full host C/I/A impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Lifecycle Timeline
3DescriptionCVE.org
Gitea act_runner with the Docker backend (through act 0.262.0) passes a workflow's container.options string to the Docker job container's HostConfig and, when configured with privileged: false, forces only the Privileged flag off while merging options such as --pid=host, --cap-add, and --security-opt unchanged. A user who can run a workflow on a Docker-backed runner can create a job container with host namespaces and broad capabilities and escape to the host as root despite privileged mode being disabled.
Articles & Coverage 1
AnalysisAI
Container escape in Gitea act_runner (Docker backend, through act 0.262.0) lets an authenticated user with workflow-execution rights break out to the host as root even when privileged mode is disabled. The runner passes a workflow's container.options string straight into the Docker job container's HostConfig and only forces the Privileged flag off, leaving dangerous options like --pid=host, --cap-add, and --security-opt intact. Publicly available exploit code exists (reported by VulnCheck), though it is not listed in CISA KEV.
Technical ContextAI
Gitea act_runner is the CI/CD execution agent for Gitea (the act fork that interprets GitHub-Actions-style workflows). When using the Docker backend, each job runs in a container whose HostConfig is derived in part from the workflow author's container.options field. The flaw is a CWE-269 (Improper Privilege Management) hardening bypass: the runner's privileged: false setting is meant to be a security boundary, but the implementation only clears HostConfig.Privileged and merges the remaining attacker-supplied flags unchanged. Options such as --pid=host (shares the host PID namespace), --cap-add (grants Linux capabilities like CAP_SYS_ADMIN), and --security-opt (e.g. disabling seccomp/AppArmor) survive, so the container retains capabilities far beyond what disabling privileged mode implies - recreating the very isolation gaps privileged mode was supposed to remove.
RemediationAI
No vendor-released patched version of act_runner is identified in the provided data, so the exact fix version is not independently confirmed - consult the VulnCheck advisory (https://www.vulncheck.com/advisories/gitea-act-runner-container-hardening-bypass-via-workflow-container-options) for the latest fixed release and upgrade once available. As compensating controls: restrict workflow execution to trusted users only and never expose Docker-backed runners to untrusted or public-fork workflows (trade-off: limits open contribution/CI for external PRs); disable or strip the container.options capability so workflow authors cannot inject HostConfig flags (trade-off: breaks legitimate workflows that rely on custom options); enforce a Docker allow-list/deny-list or a runtime security policy that blocks --pid=host, --cap-add, and --security-opt regardless of workflow input; and where feasible run runners with rootless Docker or in disposable, isolated VMs so a successful escape lands in a throwaway host (trade-off: added operational overhead).
Broken access control in Gitea's Composer package registry (versions up to and including 1.26.1) lets remote attackers r
Gitea before 1.16.7 does not escape git fetch remote. Rated high severity (CVSS 7.5), this vulnerability is remotely exp
The git hook feature in Gitea 1.1.0 through 1.12.5 might allow for authenticated remote code execution in customer envir
Improper Neutralization of Input During Web Page Generation (XSS or 'Cross-site Scripting') vulnerability in Gitea Gitea
Reverse-proxy authentication bypass in the official Gitea Docker image (versions up to and including 1.26.2) allows any
models/repo_mirror.go in Gitea before 1.7.6 and 1.8.x before 1.8-RC3 mishandles mirror repo URL settings, leading to rem
Server-side request forgery and internal repository exfiltration in Gitea before 1.27.0 lets a low-privileged authentica
An issue was discovered in Gitea through 1.11.5. Rated high severity (CVSS 7.5), this vulnerability is remotely exploita
Missing Authorization in GitHub repository go-gitea/gitea prior to 1.16.4. Rated high severity (CVSS 7.1), this vulnerab
Open Redirect on login in GitHub repository go-gitea/gitea prior to 1.16.5. Rated medium severity (CVSS 6.1), this vulne
Authenticated command injection in Dokploy (self-hostable PaaS) versions 0.29.3 through 0.29.12 lets a low-privileged us
Branch-protection bypass in Gitea's self-hosted Git server (all versions before 1.26.0) allows a user with push access t
Same weakness CWE-269 – Improper Privilege Management
View allSame technique Privilege Escalation
View allVendor StatusVendor
Debian
| Release | Status | Fixed Version | Urgency |
|---|---|---|---|
| (unstable) | fixed | (unfixed) | - |
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-39973
GHSA-8qf9-pc52-j7cm