{
  "cveId": "CVE-2026-9277",
  "url": "https://patchblox.com/security/cve/CVE-2026-9277",
  "summary": "CVE-2026-9277 is fixed in 2 products on 1 platform, first by node-shell-quote 1.6.1\u002B20160617-git72fb5a8ce29b-1ubuntu0.1~esm1, released May 22, 2026. It is not reported as exploited. Patch Radar priority: Routine.",
  "title": "node-shell-quote: shell-quote\u0027s \u0060quote()\u0060 function did not validate object-token inputs against the operator model used by \u0060parse()\u0060",
  "description": "shell-quote\u0027s \u0060quote()\u0060 function did not validate object-token inputs against the operator model used by \u0060parse()\u0060. The \u0060.op\u0060 field was backslash-escaped character by character using \u0060/(.)/g\u0060, which in JavaScript does not match line terminators (\\n, \\r, U\u002B2028, U\u002B2029). A line terminator in \u0060.op\u0060 therefore passed through unescaped into the output; POSIX shells treat a literal newline as a command separator, so any content after it would execute as a second command. The vulnerable code path is reachable in two ways: (1) direct construction of \u0060{ op: \u0027...\\n...\u0027 }\u0060 from external input, and (2) via \u0060parse(cmd, envFn)\u0060 when \u0060envFn\u0060 returns object tokens whose \u0060.op\u0060 is attacker-influenced. Both are documented API surface. Fixed by replacing the per-character escape with strict shape validation: \u0060.op\u0060 must match the parser\u0027s control-operator allowlist; \u0060{ op: \u0027glob\u0027, pattern }\u0060 validates \u0060pattern\u0060 and forbids line terminators; \u0060{ comment }\u0060 validates \u0060comment\u0060 and forbids line terminators; any other object shape throws \u0060TypeError\u0060.",
  "published": "2026-05-22T07:16:00Z",
  "severity": "Medium",
  "epss": 0.00793,
  "epssPercentile": 0.566,
  "priority": "Routine",
  "priorityTier": 4,
  "exploited": false,
  "vendorExploited": false,
  "disclosed": false,
  "fixes": [
    {
      "platform": "linux",
      "product": "agama-web-ui",
      "release": "opensuse-leap 16.0",
      "fixedVersion": "17\u002B612.d8bf69336-160000.11.1",
      "fix": "OPENSUSE-SU-2026:20919-1",
      "url": "https://patchblox.com/security/fix/linux/opensuse-su-2026-20919-1",
      "released": "2026-06-08T10:21:35Z"
    },
    {
      "platform": "linux",
      "product": "node-shell-quote",
      "release": "Debian 12.15 (bookworm)",
      "fixedVersion": "1.7.4\u002B~1.7.1-1\u002Bdeb12u1",
      "fix": "DEBIAN-CVE-2026-9277",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2026-9277",
      "released": "2026-05-27T17:38:13Z"
    },
    {
      "platform": "linux",
      "product": "node-shell-quote",
      "release": "Debian 13.5 (trixie)",
      "fixedVersion": "1.7.4\u002B~1.7.1-1\u002Bdeb13u1",
      "fix": "DEBIAN-CVE-2026-9277",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2026-9277",
      "released": "2026-05-27T17:38:13Z"
    },
    {
      "platform": "linux",
      "product": "node-shell-quote",
      "release": "Debian 14",
      "fixedVersion": "1.8.4\u002B~1.7.5-1",
      "fix": "DEBIAN-CVE-2026-9277",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2026-9277",
      "released": "2026-05-27T17:38:13Z"
    },
    {
      "platform": "linux",
      "product": "node-shell-quote",
      "release": "Ubuntu 18.04.6 LTS (bionic)",
      "fixedVersion": "1.6.1\u002B20160617-git72fb5a8ce29b-1ubuntu0.1~esm1",
      "fix": "node-shell-quote 1.6.1\u002B20160617-git72fb5a8ce29b-1ubuntu0.1~esm1",
      "url": "https://patchblox.com/security/fix/linux/ubuntu-bionic-node-shell-quote-1.6.1-20160617-git72fb5a8ce29b-1ubuntu0.1-esm1",
      "released": "2026-05-22T07:16:00Z"
    },
    {
      "platform": "linux",
      "product": "node-shell-quote",
      "release": "Ubuntu 22.04.1 LTS (jammy)",
      "fixedVersion": "1.7.3\u002B~1.7.1-1ubuntu0.1~esm1",
      "fix": "node-shell-quote 1.7.3\u002B~1.7.1-1ubuntu0.1~esm1",
      "url": "https://patchblox.com/security/fix/linux/ubuntu-jammy-node-shell-quote-1.7.3-1.7.1-1ubuntu0.1-esm1",
      "released": "2026-05-22T07:16:00Z"
    },
    {
      "platform": "linux",
      "product": "node-shell-quote",
      "release": "Ubuntu 24.04.5 LTS (noble)",
      "fixedVersion": "1.7.4\u002B~1.7.1-1ubuntu0.24.04.1",
      "fix": "node-shell-quote 1.7.4\u002B~1.7.1-1ubuntu0.24.04.1",
      "url": "https://patchblox.com/security/fix/linux/ubuntu-noble-node-shell-quote-1.7.4-1.7.1-1ubuntu0.24.04.1",
      "released": "2026-05-22T07:16:00Z"
    },
    {
      "platform": "linux",
      "product": "node-shell-quote",
      "release": "Ubuntu 25.10 (questing)",
      "fixedVersion": "1.7.4\u002B~1.7.1-1ubuntu0.25.10.1",
      "fix": "node-shell-quote 1.7.4\u002B~1.7.1-1ubuntu0.25.10.1",
      "url": "https://patchblox.com/security/fix/linux/ubuntu-questing-node-shell-quote-1.7.4-1.7.1-1ubuntu0.25.10.1",
      "released": "2026-05-22T07:16:00Z"
    },
    {
      "platform": "linux",
      "product": "node-shell-quote",
      "release": "Ubuntu 26.04.1 LTS (resolute)",
      "fixedVersion": "1.8.3\u002B~1.7.5-1ubuntu0.1~esm1",
      "fix": "node-shell-quote 1.8.3\u002B~1.7.5-1ubuntu0.1~esm1",
      "url": "https://patchblox.com/security/fix/linux/ubuntu-resolute-node-shell-quote-1.8.3-1.7.5-1ubuntu0.1-esm1",
      "released": "2026-05-22T07:16:00Z"
    }
  ],
  "noFixYet": [],
  "dataAsOf": "2026-11-08T00:53:09Z",
  "attribution": {
    "text": "Data: Patchblox Patch Radar",
    "url": "https://patchblox.com/security/patch-radar",
    "terms": "https://patchblox.com/security/patch-radar/use-the-data"
  }
}