{
  "affected": [
    {
      "ecosystem_specific": {},
      "package": {
        "ecosystem": "Alpine:v3.23",
        "name": "caddy",
        "purl": "pkg:apk/alpine/caddy?arch=source"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "2.7.5"
            },
            {
              "fixed": "2.11.2-r0"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    },
    {
      "ecosystem_specific": {},
      "package": {
        "ecosystem": "Alpine:v3.24",
        "name": "caddy",
        "purl": "pkg:apk/alpine/caddy?arch=source"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "2.7.5"
            },
            {
              "fixed": "2.11.2-r0"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "details": "Caddy is an extensible server platform that uses TLS by default. From version 2.7.5 to before version 2.11.2, the vars_regexp matcher in vars.go:337 double-expands user-controlled input through the Caddy replacer. When vars_regexp matches against a placeholder like {http.request.header.X-Input}, the header value gets resolved once (expected), then passed through repl.ReplaceAll() again (the bug). This means an attacker can put {env.DATABASE_URL} or {file./etc/passwd} in a request header and the server will evaluate it, leaking environment variables, file contents, and system info. This issue has been patched in version 2.11.2.",
  "id": "ALPINE-CVE-2026-30852",
  "modified": "2026-11-03T06:18:01.036529576Z",
  "published": "2026-03-07T17:15:52.733Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://security.alpinelinux.org/vuln/CVE-2026-30852"
    }
  ],
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N",
      "type": "CVSS_V3"
    }
  ],
  "upstream": [
    "CVE-2026-30852"
  ]
}