// threat brief
Continue CLI Bash permission rule bypass: chaining commands after an allowed prefix runs commands nobody approved
- CVSS
- 7.7 HIGH
- CISA KEV
- Not listed
- Weakness
- CWE-863
- Topics
- AI security · Supply chain
AI review 2026-10-19 (not human-reviewed)Command tests: none yetReproduced: not yetVerification record ↓
Continue CLI through 1.5.47 matches Bash allow rules against the whole command, so an injected agent can chain unapproved commands after an allowed one.
| Who is affected | Developers using the npm package @continuedev/cli up to and including 1.5.47 who have a Bash prefix allow rule in their permission settings (for example, one saved when choosing "Continue + don't ask again" on the approval prompt, or one they set themselves; a one-time "Continue" does not save a rule). |
|---|---|
| What happens | If the agent reads a repository file or web page with planted instructions, commands you never approved may run without a confirmation prompt, with the privileges of the user running the agent. |
| What to do now | There is no fixed version; the latest version on npm, 1.5.47, is itself affected. PlainCVE suggests removing broad Bash prefix allow rules and not running the agent in untrusted environments or with elevated privileges. |
| Affected versions | All versions up to and including 1.5.47 |
| Fixed versions | No fixed version: the latest version on npm, 1.5.47, is itself in the affected range (the 2.0.0 mentioned in the README cannot be found on npm) |
| CVSS vector | Show full vectorCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N |
| Timeline |
|
Blue team playbook
Check, fix / mitigate, respond, harden. Matching the affected versions does not mean you were compromised, and a check that finds nothing does not prove you are safe; each item says what it can and cannot show. Tagged steps point to where the attack flow below can be stopped.
- 01Check whether you have an affected version
Run this in a terminal on the computer where Continue CLI is installed; if it is installed inside a project, run it in the project folder and drop -g. All @continuedev/cli versions up to and including 1.5.47 are in the CVE's affected range, and 1.5.47 is the latest version on npm.
Read-only checknpm ls -g @continuedev/cli - 02Check for Bash prefix allow rules
The bypass needs an allow rule like Bash(name*) to exist. Review every Bash(name*) allow rule in your permission settings, whether it was saved when you chose "Continue + don't ask again" on the approval prompt or you set it yourself.
- 01Remove broad Bash prefix allow rules
Our analysis: making every shell command ask for approval would likely reduce exposure. No source states this, and no source shows an official fix.
- 02Don't run the agent in untrusted environments or with elevated privileges
Advice from a third-party site (OffSeq), not vendor guidance.
- 01If you suspect abuse, review what commands the agent ran
PlainCVE's suggestion: look for commands that start with an approved prefix but have other commands chained after it, and check which repositories or pages the agent read at the time. The sources give no official detection guidance.
- 01Treat external content the agent reads as untrusted
Repository files and fetched pages can both carry instructions aimed at the AI.
- 02Keep the project's maintenance status in mind
The vendor says the continuedev/continue repository is no longer actively maintained and is read-only, so a fix may never come.
Full remediation steps and notes
There is no fixed version yet. The latest @continuedev/cli version on the npm registry is 1.5.47, which is itself affected, and no source names a merged fix. The researcher’s GitHub issue #13288 (that page contains attack code, so we do not link to it) is still open with no linked branch or pull request. The third-party trackers HOL Guard and OffSeq also say a fix has not been reported or confirmed. The vendor also says the continuedev/continue repository is no longer actively maintained and is read-only, so don’t count on a future fix.
- Check your version. In a terminal on the computer where Continue CLI is installed, run
npm ls -g @continuedev/cli(if it is installed inside a project, run it in the project folder and drop-g). - About PR #12248. An outside contributor submitted a PR that made the permission checker use the stricter of the static and dynamic policies, but the author closed it unmerged after declining to sign the CLA. Our analysis: the PR does not describe splitting chained commands before matching, so even if it had been merged it might not fully fix this CVE.
- There is no fixed version to upgrade to. The vendor’s README mentions a final CLI 2.0.0 release, but that version cannot be found on the npm registry. The latest version on npm, 1.5.47, is still in the affected range. Use the measures below instead.
- PlainCVE’s suggestion. Removing broad
Bash(prefix*)allow rules, so shell commands always ask for approval, would likely reduce exposure (no source states this directly). The third-party site OffSeq also advises not running the agent in untrusted environments or with elevated privileges until a fix exists; this is not vendor guidance.
Attack flow
Read left to right: this is the order the attack happens in. A blue shield means the step can be stopped; the earlier, the better. Click an icon for details.
Read top to bottom: this is the order the attack happens in. A blue shield means the step can be stopped; the earlier, the better. Tap an icon for details.
- Attacker
Plants instructions for the AI in a repository file or web page
This is called prompt injection: hiding instructions in content the agent will read. The attacker needs no privileges.
Defense: Third-party advice: until a fix exists, don't run the agent in untrusted environments.
- Your system
A Bash prefix allow rule exists in the permission settings
The rule may be one the user set themselves or one saved when the user chose "Continue + don't ask again" on the approval prompt. After that choice, the CLI saves an allow rule using only the first command name plus a wildcard, like Bash(name*). A one-time "Continue" does not save a rule.
Defense: Our analysis: remove broad Bash prefix allow rules so every shell command asks for approval.
- Your system
The agent reads the planted instructions and chains extra commands after the allowed one
The extra commands are joined after the allowed prefix with ;, && or |.
- Your system
The permission check treats the whole chain as matching the rule
The researcher says the rule becomes a regex matched against the entire command string, not just the first command. Separately, in the vendor's code a static allow rule overrides the dynamic security evaluator unless the evaluator returns 'disabled'.
Defense: Researcher's proposal: split compound commands before matching and check each part. This is a proposal, not a shipped fix.
- Attacker
Unapproved commands run silently as the user
The researcher says no confirmation prompt appears.
Defense: Third-party advice: don't run the agent with elevated privileges, to limit the damage.
Who is affected
Continue CLI (the npm package @continuedev/cli) is an AI coding assistant (an “agent”) that can run shell commands in your terminal for you. Before running one, it checks permission rules to decide whether to ask you first.
| Condition | Affected? |
|---|---|
@continuedev/cli up to and including 1.5.47, with a Bash prefix allow rule in place (for example, saved when choosing “Continue + don’t ask again”, or set by the user) | Affected |
| Up to and including 1.5.47, but no Bash prefix allow rules | The bypass needs an allowed prefix rule to work |
| 2.0.0 | The vendor’s README mentions a final 2.0.0 release, but that version cannot be found on the npm registry, so it is not an upgrade option |
There is no fixed version. The latest @continuedev/cli version on the npm registry is 1.5.47. Its gitHead is the same commit (d3f60ba) that the CVE record points to as the vulnerable code, so it is itself in the affected range.
The attack has one more condition: the attacker must get instructions into content the agent reads, such as a file in a repository or a web page the agent fetches (this is called “prompt injection”). According to CVSS, the attacker needs no privileges.
How it works
The CVE record only requires that “allowed Bash prefix rules” exist; it does not say where they come from, and the vendor’s permission checker matches all rules the same way. A Bash(name*) rule you set yourself counts too. When a Bash command needs approval, the prompt offers three choices: “Continue”, “Continue + don’t ask again”, and “No, and tell Continue what to do differently”. Only “Continue + don’t ask again” saves a rule; a one-time “Continue” does not. When you choose “Continue + don’t ask again”, the vendor’s code keeps only the first command name, adds a wildcard, and saves a rule like Bash(name*). The reporting researcher says this rule becomes a regular expression that is checked against the entire command string, not just the first command. So as long as it starts with an allowed name, anything chained after it with ;, && or | also matches.
On top of that, in the vendor’s permission checker, a static allow rule overrides the result of the dynamic security evaluator (unless the evaluator returns “disabled”). The researcher says these chained commands run silently, without a confirmation prompt, and they run with the privileges of the user running the agent. This kind of mistake is CWE-863 (incorrect authorization).
The flawed approach (conceptual illustration, not the original source code):
Show code example(text)
rule = "allow: any string starting with <name>"
if whole_command matches rule:
run it # commands chained after it are allowed tooThe approach the researcher proposed (a proposal, not a shipped fix):
Show code example(text)
parts = split command on ; && ||
if every part matches an allow rule on its own:
run it
else:
ask the userTimeline
| Date | Event |
|---|---|
| 2026-04-28 | An outside contributor’s PR #12248 publicly describes static allow rules in permissionChecker.ts overriding the dynamic policy evaluation (it does not mention command chaining); the PR was never merged |
| 2026-09-17 | The researcher opens issue #13288 publicly on GitHub (that page contains attack code, so we do not link to it); also the public date in the CVE record |
| 2026-10-12 | VulnCheck publishes the CVE record |
| 2026-10-13 | Not in CISA KEV as of this date; NVD has received the record but not analyzed it |
| 2026-10-16 | NVD record last modified; its current status is Deferred (analysis deferred). NVD’s data does not show the date the status changed |
Further reading
- Scoring: The CNA (VulnCheck) gives CVSS 4.0 7.7 and CVSS 3.1 7.5, both rated High. The numbers differ only because the CVSS versions differ; the sources do not actually disagree. CVSS 3.1 rates attack complexity as high and requires user interaction; CVSS 4.0 lists user interaction as passive and attack requirements as present.
- Exploitation: Not in CISA KEV. There is no evidence of exploitation in the wild, and no evidence either way on exploitation before a patch. HOL Guard says its sources do not mark it as known exploited, which does not prove it was never exploited. The researcher’s GitHub issue #13288 includes a reproduction (that page contains attack code, so we do not link to it).
- Who issued the CVE: VulnCheck assigned it, not the Continue project. The GitHub Advisory Database lists it as GHSA-f54m-g39v-qf2p, not yet reviewed. The CVE record credits Akıner Kısa and Tardfyou.
- Don’t confuse it with: CVE-2026-76072, a separate VulnCheck CVE for the same version range, about an incomplete list of blocked destructive commands in headless and auto mode (VulnCheck’s advisory for that CVE contains attack code, so we do not link to it).
- Related weakness type: CWE-863.
Verification Checked item by item against sources by AI under our review rules, all passed; not human-reviewed and not yet reproduced in our lab
| AI review | 2026-10-19 · review rules |
|---|
Verification records describe the environment and the result only, never reproduction steps or code that could attack other people’s systems. See our policy.
Sources
- CVE / NVD / OSVCVE-2026-109560 CVE record (JSON) · CVE Program (CNA: VulnCheck), 2026-10-12 · accessed 2026-10-13
- CVE / NVD / OSVNVD API - CVE-2026-109560 · NIST · accessed 2026-10-18
- AdvisoryGitHub Advisory Database - GHSA-f54m-g39v-qf2p (unreviewed) · GitHub · accessed 2026-10-13
- Othernpm registry - @continuedev/cli latest · npm · accessed 2026-10-17
- Vendorcontinuedev/continue repository README · Continue · accessed 2026-10-13
- VendorpermissionChecker.ts at d3f60ba · Continue (GitHub) · accessed 2026-10-13
- VendorpolicyWriter.ts at d3f60ba · Continue (GitHub) · accessed 2026-10-13
- VendorToolPermissionSelector.tsx at d3f60ba · Continue (GitHub) · accessed 2026-10-18
- OtherPull request #12248 (closed, not merged) · continuedev/continue (GitHub) · accessed 2026-10-13
- OtherCVE-2026-109560 - HOL Guard · HOL Guard · accessed 2026-10-13
- OtherCVE-2026-109560: Incorrect Authorization in continuedev continue · OffSeq Radar · accessed 2026-10-13
Press brief
In one sentence
Continue CLI is an AI coding assistant that can run shell commands for developers. In versions up to and including 1.5.47, a command approved with "Continue + don't ask again" becomes a broad allow rule (Bash prefix allow rules users set themselves behave the same way), so if an attacker hides instructions in a repository file or web page, the agent may chain other commands after the approved one and run them. There is no fixed version (the latest version on npm, 1.5.47, is itself affected), and the vendor says the repository is no longer actively maintained.
Key facts
- Severity
- CVSS 4.0 7.7; CVSS 3.1 7.5 (both from the CNA, VulnCheck) cveawg.mitre.org
- Affected versions
- @continuedev/cli up to and including 1.5.47 cveawg.mitre.org
- Issue made public
- 2026-09-17 (public date in the CVE record; the researcher's GitHub issue #13288 was opened the same day; that page contains attack code, so we do not link to it) cveawg.mitre.org
- CVE published
- 2026-10-12 cveawg.mitre.org
- Maintenance status
- Vendor says the repository is no longer actively maintained and is read-only github.com
Confirmed
- Continue CLI up to and including 1.5.47 lets commands chained after an allowed Bash prefix run without the user's approval.
- In the vendor's code, choosing "Continue + don't ask again" saves only the first command name plus a wildcard (a one-time "Continue" saves no rule), and a static allow rule overrides the dynamic security evaluator unless the evaluator returns 'disabled'.
- The researcher's GitHub issue #13288 (that page contains attack code, so we do not link to it) includes a reproduction, and it is still open with no linked fix.
- There is no fixed version: the latest @continuedev/cli version on the npm registry is 1.5.47, which is in the affected range.
- NVD's current status is Deferred (analysis deferred; record last modified 2026-10-16).
Unconfirmed / disputed
- The vendor's README mentions a final CLI 2.0.0 release, but that version cannot be found on the npm registry, so it is unknown whether it exists or contains a fix.
- There is no evidence of exploitation in the wild, nor of exploitation before a patch; it is not in CISA KEV.
Quotable line
You told it not to ask again about one command, but the tool remembered it as "anything that starts with this word."
Images
Download the share image (PNG) · Attack flow diagram (downloadable)
Please credit "PlainCVE" and link to this page. Full citation format is under "How to cite" below. Found a factual error? Report it.
Continue CLI Bash permission rule bypass: chaining commands after an allowed prefix runs commands nobody approved Continue CLI is an AI coding assistant that can run shell commands for developers. In versions up to and including 1.5.47, a command approved with "Continue + don't ask again" becomes a broad allow rule (Bash prefix allow rules users set themselves behave the same way), so if an attacker hides instructions in a repository file or web page, the agent may chain other commands after the approved one and run them. There is no fixed version (the latest version on npm, 1.5.47, is itself affected), and the vendor says the repository is no longer actively maintained. Key facts: - Severity:CVSS 4.0 7.7; CVSS 3.1 7.5 (both from the CNA, VulnCheck)(https://cveawg.mitre.org/api/cve/CVE-2026-109560) - Affected versions:@continuedev/cli up to and including 1.5.47(https://cveawg.mitre.org/api/cve/CVE-2026-109560) - Issue made public:2026-09-17 (public date in the CVE record; the researcher's GitHub issue #13288 was opened the same day; that page contains attack code, so we do not link to it)(https://cveawg.mitre.org/api/cve/CVE-2026-109560) - CVE published:2026-10-12(https://cveawg.mitre.org/api/cve/CVE-2026-109560) - Maintenance status:Vendor says the repository is no longer actively maintained and is read-only(https://github.com/continuedev/continue) Confirmed: - Continue CLI up to and including 1.5.47 lets commands chained after an allowed Bash prefix run without the user's approval. - In the vendor's code, choosing "Continue + don't ask again" saves only the first command name plus a wildcard (a one-time "Continue" saves no rule), and a static allow rule overrides the dynamic security evaluator unless the evaluator returns 'disabled'. - The researcher's GitHub issue #13288 (that page contains attack code, so we do not link to it) includes a reproduction, and it is still open with no linked fix. - There is no fixed version: the latest @continuedev/cli version on the npm registry is 1.5.47, which is in the affected range. - NVD's current status is Deferred (analysis deferred; record last modified 2026-10-16). Unconfirmed / disputed: - The vendor's README mentions a final CLI 2.0.0 release, but that version cannot be found on the npm registry, so it is unknown whether it exists or contains a fix. - There is no evidence of exploitation in the wild, nor of exploitation before a patch; it is not in CISA KEV. 「You told it not to ask again about one command, but the tool remembered it as "anything that starts with this word."」— PlainCVE https://plaincve.date/en/vulns/cve-2026-109560-continue-cli-bash-permission-bypass
How to cite this page
This article is CC BY 4.0. Please keep the attribution and link when republishing.
PlainCVE Team (2026). "Continue CLI Bash permission rule bypass: chaining commands after an allowed prefix runs commands nobody approved". PlainCVE. https://plaincve.date/en/vulns/cve-2026-109560-continue-cli-bash-permission-bypass (accessed YYYY-MM-DD)BibTeX
@misc{cve2026109560continueclibashpermissionbypass2026,
title = {Continue CLI Bash permission rule bypass: chaining commands after an allowed prefix runs commands nobody approved},
author = {PlainCVE Team},
year = {2026},
howpublished = {PlainCVE},
url = {https://plaincve.date/en/vulns/cve-2026-109560-continue-cli-bash-permission-bypass},
note = {Updated 2026-10-19}
}