[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"repo-stars":3,"vuln-UBUNTU-CVE-2026-9277":6},{"stargazers_count":4,"fetched_at":5},8,"2026-09-19T17:35:29.592Z",{"id":7,"descriptions":8,"cisa":9,"weaknesses":10,"exploits":11,"aliases":12,"duplicate_of":9,"upstream":13,"downstream":16,"duplicates":19,"related":20,"reserved_at":9,"published_at":22,"modified_at":23,"state":9,"summary":24,"references_raw":26,"kevs":66,"epss":9,"epss_history":67,"metrics":68,"affected":78},"UBUNTU-CVE-2026-9277","shell-quote's `quote()` function did not validate object-token inputs against the operator model used by `parse()`. The `.op` field was backslash-escaped character by character using `/(.)/g`, which in JavaScript does not match line terminators (\\n, \\r, U+2028, U+2029). A line terminator in `.op` 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 `{ op: '...\\n...' }` from external input, and (2) via `parse(cmd, envFn)` when `envFn` returns object tokens whose `.op` is attacker-influenced. Both are documented API surface. Fixed by replacing the per-character escape with strict shape validation: `.op` must match the parser's control-operator allowlist; `{ op: 'glob', pattern }` validates `pattern` and forbids line terminators; `{ comment }` validates `comment` and forbids line terminators; any other object shape throws `TypeError`.",null,[],[],[],[14],{"_key":15},"CVE-2026-9277",[17],{"_key":18},"USN-8410-1",[],[21],{"_key":18},"2026-05-22T14:16:00Z","2026-06-30T18:18:17.533240370Z",{"cisa_kev":25,"cisa_ransomware":25,"cisa_vendor":9,"epss_severity":9,"epss_score":9,"severity":9,"severity_score":9,"severity_version":9,"severity_source":9,"severity_vector":9,"severity_status":9},false,[27,33,37,41,45,49,53,57,61],{"url":28,"sources":29,"tags":31},"https://ubuntu.com/security/CVE-2026-9277",[30],"osv_ubuntu",[32],"REPORT",{"url":34,"sources":35,"tags":36},"https://www.cve.org/CVERecord?id=CVE-2026-9277",[30],[32],{"url":38,"sources":39,"tags":40},"https://github.com/ljharb/shell-quote/security/advisories/GHSA-w7jw-789q-3m8p",[30],[32],{"url":42,"sources":43,"tags":44},"https://github.com/ljharb/shell-quote",[30],[32],{"url":46,"sources":47,"tags":48},"https://github.com/ljharb/shell-quote/commit/1518179",[30],[32],{"url":50,"sources":51,"tags":52},"https://www.npmjs.com/package/shell-quote",[30],[32],{"url":54,"sources":55,"tags":56},"http://www.openwall.com/lists/oss-security/2026/05/23/2",[30],[32],{"url":58,"sources":59,"tags":60},"https://github.com/ljharb/shell-quote/commit/4378a6e613db5948168684864e49b42b83134d2d",[30],[32],{"url":62,"sources":63,"tags":64},"https://ubuntu.com/security/notices/USN-8410-1",[30],[65],"Advisory",[],[],[69],{"source":30,"cvss_v2_0":9,"cvss_v3_0":9,"cvss_v3_1":70,"cvss_v4_0":75},{"baseScore":71,"baseSeverity":9,"vectorString":72,"impactScore":73,"exploitabilityScore":74},8.1,"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H",9.8,5.6,{"baseScore":76,"baseSeverity":9,"vectorString":77,"impactScore":9,"exploitabilityScore":9},9.2,"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N",[79],{"ecosystem":80,"name":81,"vendor":82,"product":81,"cpe_part":9,"purl_type":83,"purl_namespace":82,"purl_name":81,"source":9,"versions":84},"Ubuntu","node-shell-quote","ubuntu","deb",[85,89,90,91,92,93,94,98,101,104,107],{"version":86,"is_range":87,"range_type":88,"version_start":9,"version_start_type":9,"version_end":9,"version_end_type":9,"fixed_in":9},"all",true,"ecosystem",{"version":86,"is_range":87,"range_type":88,"version_start":9,"version_start_type":9,"version_end":9,"version_end_type":9,"fixed_in":9},{"version":86,"is_range":87,"range_type":88,"version_start":9,"version_start_type":9,"version_end":9,"version_end_type":9,"fixed_in":9},{"version":86,"is_range":87,"range_type":88,"version_start":9,"version_start_type":9,"version_end":9,"version_end_type":9,"fixed_in":9},{"version":86,"is_range":87,"range_type":88,"version_start":9,"version_start_type":9,"version_end":9,"version_end_type":9,"fixed_in":9},{"version":86,"is_range":87,"range_type":88,"version_start":9,"version_start_type":9,"version_end":9,"version_end_type":9,"fixed_in":9},{"version":95,"is_range":87,"range_type":88,"version_start":9,"version_start_type":9,"version_end":96,"version_end_type":97,"fixed_in":9},"lt1_6_1+20160617_git72fb5a8ce29b_1ubuntu0_1~esm1","1.6.1+20160617-git72fb5a8ce29b-1ubuntu0.1~esm1","excluding",{"version":99,"is_range":87,"range_type":88,"version_start":9,"version_start_type":9,"version_end":100,"version_end_type":97,"fixed_in":9},"lt1_7_3+~1_7_1_1ubuntu0_1~esm1","1.7.3+~1.7.1-1ubuntu0.1~esm1",{"version":102,"is_range":87,"range_type":88,"version_start":9,"version_start_type":9,"version_end":103,"version_end_type":97,"fixed_in":9},"lt1_7_4+~1_7_1_1ubuntu0_24_04_1","1.7.4+~1.7.1-1ubuntu0.24.04.1",{"version":105,"is_range":87,"range_type":88,"version_start":9,"version_start_type":9,"version_end":106,"version_end_type":97,"fixed_in":9},"lt1_7_4+~1_7_1_1ubuntu0_25_10_1","1.7.4+~1.7.1-1ubuntu0.25.10.1",{"version":108,"is_range":87,"range_type":88,"version_start":9,"version_start_type":9,"version_end":109,"version_end_type":97,"fixed_in":9},"lt1_8_3+~1_7_5_1ubuntu0_1~esm1","1.8.3+~1.7.5-1ubuntu0.1~esm1"]