Skip to content
Heist/ feed
Back to feed
High

Allocation of Resources Without Limits or Throttling in flagd

Type: advisorySources: OSV

flagd is a feature flag daemon with a Unix philosophy. Prior to 0.14.2, flagd exposes OFREP (/ofrep/v1/evaluate/...) and gRPC (evaluation.v1, evaluation.v2) endpoints for feature flag evaluation. These endpoints are designed to be publicly accessible by client applications. The evaluation context included in request payloads is read into memory without any size restriction. An attacker can send a single HTTP request with an arbitrarily large body, causing flagd to allocate a corresponding amount of memory. This leads to immediate memory exhaustion and process termination (e.g., OOMKill in Kubernetes environments). flagd does not natively enforce authentication on its evaluation endpoints. While operators may deploy flagd behind an authenticating reverse proxy or similar infrastructure, the endpoints themselves impose no access control by default. This vulnerability is fixed in 0.14.2.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-31866
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 07:08 UTC · Revision 1

Source evidence

Allocation of Resources Without Limits or Throttling in flagd

core-osv · Original source

Published 11 Mar 2026, 17:49 UTC

flagd is a feature flag daemon with a Unix philosophy. Prior to 0.14.2, flagd exposes OFREP (/ofrep/v1/evaluate/...) and gRPC (evaluation.v1, evaluation.v2) endpoints for feature flag evaluation. These endpoints are designed to be publicly accessible by client applications. The evaluation context included in request payloads is read into memory without any size restriction. An attacker can send a single HTTP request with an arbitrarily large body, causing flagd to allocate a corresponding amount of memory. This leads to immediate memory exhaustion and process termination (e.g., OOMKill in Kubernetes environments). flagd does not natively enforce authentication on its evaluation endpoints. While operators may deploy flagd behind an authenticating reverse proxy or similar infrastructure, the endpoints themselves impose no access control by default. This vulnerability is fixed in 0.14.2.

osv:CVE-2026-31866
Complete source record
{
  "id": "4bc8d395fe275812c9dad7d0a6972f8f6022943abe150005a093cd62d19526a8",
  "url": "https://osv.dev/vulnerability/CVE-2026-31866",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Allocation of Resources Without Limits or Throttling in flagd",
    "summary": "flagd is a feature flag daemon with a Unix philosophy. Prior to 0.14.2, flagd exposes OFREP (/ofrep/v1/evaluate/...) and gRPC (evaluation.v1, evaluation.v2) endpoints for feature flag evaluation. These endpoints are designed to be publicly accessible by client applications. The evaluation context included in request payloads is read into memory without any size restriction. An attacker can send a single HTTP request with an arbitrarily large body, causing flagd to allocate a corresponding amount of memory. This leads to immediate memory exhaustion and process termination (e.g., OOMKill in Kubernetes environments). flagd does not natively enforce authentication on its evaluation endpoints. While operators may deploy flagd behind an authenticating reverse proxy or similar infrastructure, the endpoints themselves impose no access control by default. This vulnerability is fixed in 0.14.2.",
    "evidence": "osv:CVE-2026-31866",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-31866",
      "aliases": [
        "CVE-2026-31866",
        "GHSA-rmrf-g9r3-73pm",
        "GO-2026-4674"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/open-feature/flagd",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "c250d1c81d9917ac9a2ca5360f1fcd7266d29533"
                },
                {
                  "fixed": "25c5fd7e80c26eb2c00b20317b2456fe6f927ea3"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:openfeature:flagd:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "0.14.2"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "range": [
                      {
                        "fixed": "25c5fd7e80c26eb2c00b20317b2456fe6f927ea3"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  }
                ]
              }
            }
          ],
          "versions": [
            "flagd/v0.14.1",
            "flagd/v0.14.0",
            "flagd-proxy/v0.9.0",
            "core/v0.14.0",
            "flagd/v0.13.3",
            "core/v0.13.3",
            "flagd/v0.13.2",
            "flagd-proxy/v0.8.3",
            "core/v0.13.2",
            "flagd/v0.13.1",
            "flagd-proxy/v0.8.2",
            "core/v0.13.1",
            "flagd/v0.13.0",
            "flagd-proxy/v0.8.1",
            "core/v0.13.0",
            "flagd/v0.12.9",
            "core/v0.12.1",
            "flagd/v0.12.8",
            "flagd-proxy/v0.8.0",
            "core/v0.12.0",
            "flagd/v0.12.7",
            "flagd-proxy/v0.7.6",
            "core/v0.11.8",
            "core/v0.11.7",
            "flagd/v0.12.6",
            "flagd-proxy/v0.7.5",
            "core/v0.11.6",
            "flagd/v0.12.5",
            "core/v0.11.5",
            "flagd/v0.12.4",
            "flagd-proxy/v0.7.4",
            "core/v0.11.4",
            "flagd/v0.12.3",
            "flagd-proxy/v0.7.3",
            "core/v0.11.3",
            "flagd/v0.12.2",
            "flagd-proxy/v0.7.2",
            "core/v0.11.2",
            "flagd/v0.12.1",
            "flagd-proxy/v0.7.1",
            "core/v0.11.1",
            "flagd/v0.12.0",
            "flagd-proxy/v0.7.0",
            "core/v0.11.0",
            "flagd/v0.11.8",
            "flagd-proxy/v0.6.11",
            "core/v0.10.8",
            "flagd/v0.11.7",
            "flagd-proxy/v0.6.10",
            "core/v0.10.7",
            "flagd/v0.11.6",
            "flagd-proxy/v0.6.9",
            "core/v0.10.6",
            "flagd/v0.11.5",
            "flagd-proxy/v0.6.8",
            "core/v0.10.5",
            "flagd/v0.11.4",
            "flagd-proxy/v0.6.7",
            "core/v0.10.4",
            "flagd/v0.11.3",
            "flagd-proxy/v0.6.6",
            "core/v0.10.3",
            "flagd/v0.11.2",
            "flagd-proxy/v0.6.5",
            "core/v0.10.2",
            "flagd/v0.11.1",
            "flagd-proxy/v0.6.4",
            "core/v0.10.1",
            "flagd/v0.11.0",
            "flagd-proxy/v0.6.3",
            "core/v0.10.0",
            "flagd/v0.10.3",
            "core/v0.9.3",
            "flagd/v0.10.2",
            "flagd-proxy/v0.6.2",
            "core/v0.9.2",
            "flagd/v0.10.1",
            "flagd-proxy/v0.6.1",
            "core/v0.9.1",
            "flagd/v0.10.0",
            "flagd-proxy/v0.6.0",
            "core/v0.9.0",
            "flagd/v0.9.2",
            "flagd-proxy/v0.5.2",
            "core/v0.8.2",
            "flagd/v0.9.1",
            "flagd-proxy/v0.5.1",
            "core/v0.8.1",
            "flagd/v0.9.0",
            "flagd-proxy/v0.5.0",
            "core/v0.8.0",
            "flagd/v0.8.2",
            "flagd-proxy/v0.4.2",
            "core/v0.7.5",
            "flagd/v0.8.1",
            "flagd-proxy/v0.4.1",
            "core/v0.7.4",
            "flagd/v0.8.0",
            "flagd-proxy/v0.4.0",
            "core/v0.7.3",
            "flagd/v0.7.2",
            "flagd-proxy/v0.3.2",
            "core/v0.7.2",
            "flagd/v0.7.1",
            "flagd-proxy/v0.3.1",
            "core/v0.7.1",
            "flagd/v0.7.0",
            "flagd-proxy/v0.3.0",
            "core/v0.7.0",
            "flagd/v0.6.8",
            "flagd-proxy/v0.2.13",
            "core/v0.6.8",
            "flagd/v0.6.7",
            "flagd-proxy/v0.2.12",
            "core/v0.6.7",
            "flagd/v0.6.6",
            "flagd-proxy/v0.2.11",
            "core/v0.6.6",
            "flagd/v0.6.5",
            "flagd-proxy/v0.2.10",
            "core/v0.6.5",
            "flagd/v0.6.4",
            "flagd-proxy/v0.2.9",
            "core/v0.6.4",
            "flagd/v0.6.3",
            "flagd-proxy/v0.2.8",
            "core/v0.6.3",
            "flagd/v0.6.2",
            "flagd-proxy/v0.2.7",
            "core/v0.6.2",
            "flagd/v0.6.1",
            "flagd-proxy/v0.2.6",
            "core/v0.6.1",
            "flagd/v0.6.0",
            "flagd-proxy/v0.2.5",
            "core/v0.6.0",
            "flagd/v0.5.4",
            "flagd-proxy/v0.2.4",
            "core/v0.5.4",
            "flagd/v0.5.3",
            "flagd-proxy/v0.2.3",
            "core/v0.5.3",
            "flagd/v0.5.2",
            "flagd-proxy/v0.2.2",
            "core/v0.5.2",
            "flagd/v0.5.1",
            "flagd-proxy/v0.2.1",
            "core/v0.5.1",
            "flagd/v0.5.0",
            "flagd-proxy/v0.2.0",
            "core/v0.5.0",
            "kube-flagd-proxy/v0.1.2",
            "flagd/v0.4.5",
            "core/v0.4.5",
            "kube-flagd-proxy/v0.1.1",
            "flagd/v0.4.4",
            "core/v0.4.4",
            "v0.4.2",
            "v0.4.1",
            "v0.4.0",
            "v0.3.7",
            "v0.3.6",
            "v0.3.5",
            "v0.3.4",
            "v0.3.3",
            "v0.3.2",
            "v0.3.1",
            "v0.3.0",
            "v0.2.7",
            "v0.2.5",
            "v0.2.4",
            "v0.2.3",
            "v0.2.2",
            "v0.2.1",
            "v0.2.0",
            "v0.1.1",
            "v0.1.0",
            "v0.0.9",
            "v0.0.8",
            "v0.0.7",
            "v0.0.6",
            "v0.0.5",
            "v0.0.4",
            "v0.0.3",
            "v0.0.2-1",
            "v0.0.2",
            "v0.0.1"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-31866.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:26.821544978Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/31xxx/CVE-2026-31866.json",
        "https://github.com/open-feature/flagd/security/advisories/GHSA-rmrf-g9r3-73pm",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-31866",
        "https://github.com/open-feature/flagd/commit/25c5fd7e80c26eb2c00b20317b2456fe6f927ea3"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-770"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/31xxx/CVE-2026-31866.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-31866",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 493232,
  "published_at": "2026-03-11T17:49:48.52+00:00"
}