CVE-2026-26205: Github.com/open policy agent/opa envoy plugin Opa-envoy-plugin Has An Authorization Bypass Vulnerability

HIGH
Advisory Identifier: GHSA-9f29-v6mm-pw6w
CWE-863
Published
Advisory Summary

CVE-2026-26205 is a HIGH opa-envoy-plugin has an authorization bypass vulnerability (CWE-863: Incorrect Authorization) affecting Github.com/open policy agent/opa envoy plugin libraries in the Go ecosystem. The issue involves opa-envoy-plugin has an authorization bypass via double-slash path misinterpretation in input.parsed_path. Remediation is available by upgrading affected packages to version 1.13.2-envoy-2.

CVE-2026-26205 at a Glance

CVE Identifier CVE-2026-26205
GHSA Identifier GHSA-9f29-v6mm-pw6w
Severity HIGH
CVSS v3.1 Base Score N/A
CWE Classification CWE-863: Incorrect Authorization
Affected Product Github.com/open policy agent/opa envoy plugin
Package Ecosystem Go
Published Date
Last Updated

How to Fix CVE-2026-26205

To remediate this vulnerability, upgrade all affected Github.com/open policy agent/opa envoy plugin dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

github.com/open-policy-agent/opa-envoy-plugin fixed: 1.13.2-envoy-2
Upgrade github.com/open-policy-agent/opa-envoy-plugin to 1.13.2-envoy-2
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

inspect dependencies for github.com/open-policy-agent/opa-envoy-plugin

How to Check if You Are Affected

To determine whether your application is affected by CVE-2026-26205, inspect your project dependencies for Github.com/open policy agent/opa envoy plugin:

inspect dependencies for github.com/open-policy-agent/opa-envoy-plugin

Analyze the terminal output to locate any version of Github.com/open policy agent/opa envoy plugin in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 1.13.2-envoy-2), your application is affected.

Note: Verify declared build manifests and deployed runtime container environments.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-863: Incorrect Authorization, where the product performs an authorization check when an actor attempts to access a resource or perform an action, but it does not correctly perform the check. In Github.com/open policy agent/opa envoy plugin, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

A security vulnerability has been discovered in how the `input.parsed_path` field is constructed. HTTP request paths are treated as full URIs when parsed; interpreting leading path segments prefixed with double slashes (`//`) as [authority](https://datatracker.ietf.org/doc/html/rfc3986#section-3.2) components, and therefore dropping them from the parsed path. This creates a path interpretation mismatch between authorization policies and backend servers, enabling attackers to bypass access controls by crafting requests where the authorization filter evaluates a different path than the one ultimately served. #### Attack example **HTTP request:** ``` GET //admin/users HTTP/1.1 Host: example.com ``` **Policy sees:** The leading `//admin` path segment is interpreted as an authority component, and dropped from `input.parsed_path` field: ```json { "parsed_path": ["users"] } ``` **Backend receives:** `//admin/users` path, normalized to `/admin/users`. #### Affected Request Pattern Examples | Request path | `input.parsed_path` | `input.attributes.request.http.path` | Discrepancy | | - | - | - | - | | / | [""] | / | ✅ None | | //foo | [""] | //foo| ❌ Mismatch | | /admin | ["admin"] | /admin | ✅ None | | /admin/users | ["admin", "users"] | /admin/users | ✅ None | | //admin/users | ["users"] | //admin/users | ❌ Mismatch | ### Impact Users are impacted if all the following conditions apply: 1. Protected resources are path-hierarchical (e.g., `/admin/users` vs `/users`) 2. Authorization policies use `input.parsed_path` for path-based decisions 3. Backend servers apply lenient path normalization ### Patches Go: `v1.13.2-envoy-2` Docker: `1.13.2-envoy-2`, `1.13.2-envoy-2-static` ### Workarounds Users who cannot immediately upgrade opa-envoy-plugin are recommended to apply one, or more, of the workarrounds described below. #### 1. Enable the `merge_slashes` Envoy configuration option As per [Envoy best practices](https://www.envoyproxy.io/docs/envoy/v1.37.0/configuration/best_practices/edge.html), enabling the [merge_slashes](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-merge-slashes) configuration option in Envoy will remove redundant slashes from the request path before filtering is applied, effectively mitigating the `input.parsed_path` issue described in this advisory. #### 2. Use `input.attributes.request.http.path` instead of `input.parsed_path` in policies The `input.attributes.request.http.path` field contains the unprocessed, raw request path. Users are recommended to update any policy using `input.parsed_path` to instead use the `input.attributes.request.http.path` field. ##### Example #### ```rego package example # Use instead of input.parsed_path parsed_path := split( # tokenize into array trim_left( # drop leading slashes urlquery.decode(input.attributes.request.http.path), # url-decode the path "/", ), "/", ) ```

CVE-2026-26205 Affected Github.com/open policy agent/opa envoy plugin Versions

1 component(s)
Fixed Versions:
1.13.2-envoy-2
Product / Package Ecosystem Affected Versions Fixed Version
github.com/open-policy-agent/opa-envoy-plugin
Go
< 1.13.2-envoy-2
1.13.2-envoy-2

References

Frequently Asked Questions

What is CVE-2026-26205?
CVE-2026-26205 is a security vulnerability in Github.com/open policy agent/opa envoy plugin involving opa-envoy-plugin has an Authorization Bypass via Double-Slash Path Misinterpretation in input.parsed_path under CWE-863: Incorrect Authorization.
Which Github.com/open policy agent/opa envoy plugin versions are affected?
Affected versions include releases prior to 1.13.2-envoy-2 across affected packages: github.com/open-policy-agent/opa-envoy-plugin.
What version fixes CVE-2026-26205?
Upgrading to 1.13.2-envoy-2 (or the latest patched release for your respective branch) resolves the vulnerability.
Is github.com/open-policy-agent/opa-envoy-plugin affected?
Yes, github.com/open-policy-agent/opa-envoy-plugin is affected in releases prior to 1.13.2-envoy-2. Upgrade your dependency to 1.13.2-envoy-2 or later.
What CWE is associated with CVE-2026-26205?
CVE-2026-26205 is classified under CWE-863: Incorrect Authorization (The product performs an authorization check when an actor attempts to access a resource or perform an action, but it does not correctly perform the check.).
How can I check Go dependencies for CVE-2026-26205?
Run the dependency tree command: 'inspect dependencies for github.com/open-policy-agent/opa-envoy-plugin'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-9f29-v6mm-pw6w",
  "modified" : "2026-02-19T21:56:34Z",
  "published" : "2026-02-18T15:25:04Z",
  "aliases" : [ "CVE-2026-26205" ],
  "summary" : "opa-envoy-plugin has an Authorization Bypass via Double-Slash Path Misinterpretation in input.parsed_path",
  "details" : "A security vulnerability has been discovered in how the `input.parsed_path` field is constructed. HTTP request paths are treated as full URIs when parsed; interpreting leading path segments prefixed with double slashes (`//`) as [authority](https://datatracker.ietf.org/doc/html/rfc3986#section-3.2) components, and therefore dropping them from the parsed path. This creates a path interpretation mismatch between authorization policies and backend servers, enabling attackers to bypass access controls by crafting requests where the authorization filter evaluates a different path than the one ultimately served.\n\n#### Attack example\n\n**HTTP request:**\n\n```\nGET //admin/users HTTP/1.1\nHost: example.com\n```\n\n**Policy sees:**\n\nThe leading `//admin` path segment is interpreted as an authority component, and dropped from `input.parsed_path` field:\n\n\n```json\n{\n  \"parsed_path\": [\"users\"]\n}\n```\n\n**Backend receives:**\n\n`//admin/users` path, normalized to `/admin/users`.\n\n#### Affected Request Pattern Examples\n\n| Request path | `input.parsed_path` | `input.attributes.request.http.path` | Discrepancy |\n| - | - | - | - |\n| / | [\"\"] | / | ✅ None |\n| //foo  | [\"\"] | //foo| ❌ Mismatch |\n| /admin | [\"admin\"] | /admin | ✅ None |\n| /admin/users | [\"admin\", \"users\"] |  /admin/users | ✅ None |\n| //admin/users  | [\"users\"] | //admin/users | ❌ Mismatch |\n\n### Impact\n\nUsers are impacted if all the following conditions apply:\n\n1. Protected resources are path-hierarchical (e.g., `/admin/users` vs `/users`)\n2. Authorization policies use `input.parsed_path` for path-based decisions\n3. Backend servers apply lenient path normalization\n\n### Patches\n\nGo: `v1.13.2-envoy-2`\nDocker: `1.13.2-envoy-2`, `1.13.2-envoy-2-static`\n\n### Workarounds\n\nUsers who cannot immediately upgrade opa-envoy-plugin are recommended to apply one, or more, of the workarrounds described below.\n\n#### 1. Enable the `merge_slashes` Envoy configuration option\n\nAs per [Envoy best practices](https://www.envoyproxy.io/docs/envoy/v1.37.0/configuration/best_practices/edge.html), enabling the [merge_slashes](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-merge-slashes) configuration option in Envoy will remove redundant slashes from the request path before filtering is applied, effectively mitigating the `input.parsed_path` issue described in this advisory.\n\n\n#### 2. Use `input.attributes.request.http.path` instead of `input.parsed_path` in policies\n\nThe `input.attributes.request.http.path` field contains the unprocessed, raw request path. Users are recommended to update any policy using `input.parsed_path` to instead use the `input.attributes.request.http.path` field.\n\n##### Example ####\n\n```rego\npackage example\n\n# Use instead of input.parsed_path\nparsed_path := split(                                        # tokenize into array\n\ttrim_left(                                               # drop leading slashes\n\t\turlquery.decode(input.attributes.request.http.path), # url-decode the path\n\t\t\"/\",\n\t),\n\t\"/\",\n)\n```",
  "severity" : [ {
    "type" : "CVSS_V4",
    "score" : "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:H/SI:H/SA:H"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "Go",
      "name" : "github.com/open-policy-agent/opa-envoy-plugin"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "fixed" : "1.13.2-envoy-2"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 1.13.1-envoy"
    }
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/open-policy-agent/opa-envoy-plugin/security/advisories/GHSA-9f29-v6mm-pw6w"
  }, {
    "type" : "ADVISORY",
    "url" : "https://nvd.nist.gov/vuln/detail/CVE-2026-26205"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/open-policy-agent/opa-envoy-plugin/commit/58c44d4ec408d5852d1d0287599e7d5c5e2bc5c3"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/open-policy-agent/opa-envoy-plugin"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/open-policy-agent/opa-envoy-plugin/releases/tag/v1.13.2-envoy-2"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-863" ],
    "severity" : "HIGH",
    "github_reviewed" : true,
    "github_reviewed_at" : "2026-02-18T15:25:04Z",
    "nvd_published_at" : "2026-02-19T20:25:43Z"
  }
}