Skip to content
Heist/ feed
Back to feed
Medium

Egress Policy Bypass via DNS over HTTPS (DoH) in Harden-Runner (Community Tier)

Type: advisorySources: OSV

Harden-Runner is a CI/CD security agent that works like an EDR for GitHub Actions runners. In versions 2.15.1 and below, a DNS over HTTPS (DoH) vulnerability allows attackers to bypass egress-policy: block network restrictions by tunneling exfiltrated data through permitted HTTPS endpoints like dns.google. The attack works by encoding sensitive data (e.g., the runner's hostname) as subdomains in DoH queries, which appear as legitimate HTTPS traffic to Harden-Runner's domain-based filtering but are ultimately forwarded to an attacker-controlled domain. This effectively enables data exfiltration without directly connecting to any blocked destination. Exploitation requires the attacker to already have code execution within the GitHub Actions workflow. The issue was fixed in version 2.16.0.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-32947
Confirmed fixed CVEs
Not specified
Updated in this feed
7 Nov 2026, 09:28 UTC · Revision 1

Source evidence

Egress Policy Bypass via DNS over HTTPS (DoH) in Harden-Runner (Community Tier)

core-osv · Original source

Published 20 Mar 2026, 04:03 UTC

Harden-Runner is a CI/CD security agent that works like an EDR for GitHub Actions runners. In versions 2.15.1 and below, a DNS over HTTPS (DoH) vulnerability allows attackers to bypass egress-policy: block network restrictions by tunneling exfiltrated data through permitted HTTPS endpoints like dns.google. The attack works by encoding sensitive data (e.g., the runner's hostname) as subdomains in DoH queries, which appear as legitimate HTTPS traffic to Harden-Runner's domain-based filtering but are ultimately forwarded to an attacker-controlled domain. This effectively enables data exfiltration without directly connecting to any blocked destination. Exploitation requires the attacker to already have code execution within the GitHub Actions workflow. The issue was fixed in version 2.16.0.

osv:CVE-2026-32947
Complete source record
{
  "id": "be399e830350ac17c5ec53de370e42ffbd64282c02879cec4170106bcf918ead",
  "url": "https://osv.dev/vulnerability/CVE-2026-32947",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Egress Policy Bypass via DNS over HTTPS (DoH) in Harden-Runner (Community Tier)",
    "summary": "Harden-Runner is a CI/CD security agent that works like an EDR for GitHub Actions runners. In versions 2.15.1 and below, a DNS over HTTPS (DoH) vulnerability allows attackers to bypass egress-policy: block network restrictions by tunneling exfiltrated data through permitted HTTPS endpoints like dns.google. The attack works by encoding sensitive data (e.g., the runner's hostname) as subdomains in DoH queries, which appear as legitimate HTTPS traffic to Harden-Runner's domain-based filtering but are ultimately forwarded to an attacker-controlled domain. This effectively enables data exfiltration without directly connecting to any blocked destination. Exploitation requires the attacker to already have code execution within the GitHub Actions workflow. The issue was fixed in version 2.16.0.",
    "evidence": "osv:CVE-2026-32947",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-32947",
      "aliases": [
        "CVE-2026-32947",
        "GHSA-46g3-37rh-v698"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:N/VC:N/VI:N/VA:N/SC:H/SI:N/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/step-security/harden-runner",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "2.16"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "fixed": "fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "v2.16.0"
                  },
                  {
                    "cpe": "cpe:2.3:a:stepsecurity:harden-runner:*:*:*:*:community:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "2.16.0"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v2.15.1",
            "v2.15.0",
            "v2.14.2",
            "v2",
            "v2.14.1",
            "v2.14.0",
            "v2.13.3",
            "v2.13.2",
            "v2.13.1",
            "v2.13.0",
            "v2.12.2",
            "v2.12.1",
            "v2.12.0",
            "v2.11.1",
            "v2.11.0",
            "v2.10.4",
            "v2.10.3",
            "v2.10.2",
            "v2.10.1",
            "v2.10.0",
            "v2.9.1",
            "v2.9.0",
            "v2.8.1",
            "v2.8.0",
            "v2.7.1",
            "v2.7.0",
            "v2.6.1",
            "v2.6.0",
            "v2.5.1",
            "v2.5.0",
            "v2.4.1",
            "v2.4.0",
            "v2.3.1",
            "v2.3.0",
            "v2.2.1",
            "v2.2.0",
            "v2.1.0",
            "v2.0.0",
            "v1.5.0",
            "v1",
            "v1.4.5",
            "v1.4.4",
            "v1.4.3",
            "v1.4.2",
            "v1.4.1",
            "v1.4.0",
            "v1.3.0",
            "v0.4.0",
            "v0.3.0",
            "v0.2.0",
            "v0.1.1",
            "v0.1.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-32947.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:50.577354249Z",
      "provider": "osv",
      "references": [
        "https://github.com/step-security/harden-runner/releases/tag/v2.16.0",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/32xxx/CVE-2026-32947.json",
        "https://github.com/step-security/harden-runner/security/advisories/GHSA-46g3-37rh-v698",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-32947"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-693",
          "CWE-863"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/32xxx/CVE-2026-32947.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-32947",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 518876,
  "published_at": "2026-03-20T04:03:03.687+00:00"
}