Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconFork target repo
-
DeliveryCreate branch named 'main' with malicious Dockerfile
-
ExploitOpen PR from 'main' to upstream
-
InstallBuild workflow runs on PR
-
C2Deploy workflow checks out attacker head_sha
-
ExecutePush malicious image as latest
-
ImpactProduction bot compromise across Discord guilds
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V15 - Secure Coding and Architecture Trusted source inclusion only
|
| Exploitation Conditions | Requires the target repository to use the pre-1.0.3 workflow layout where an unprivileged build workflow runs on pull_request and a privileged deploy workflow triggers on its workflow_run completion, checks out github.event.workflow_run.head_sha, and gates on the head branch name being 'main'. The attacker must be able to open a pull request from a branch literally named 'main' (trivial from any fork) targeting the upstream repo, and the upstream must accept PRs from forks for the build workflow to run. Limiting factors: only repositories that copied this specific workflow pattern are exploitable (not a runtime bug in the bot itself), the deploy registry/credentials must still be wired to a production environment, and any branch-protection or required-reviewer environment gate on the deploy job blocks the chain. No user interaction beyond opening the PR is needed. |
| Impact | CVSS 4.0 base of 9.5 (AV:N/AC:L/AT:P/PR:N/UI:N with VC/VI/VA/SC/SI/SA all High) is plausible because successful exploitation yields full compromise of the production bot container and downstream Discord servers it operates in - a subsequent-system impact justifying the SC/SI/SA:H. AT:P (Present attack requirements) correctly reflects that the target repo must use this specific workflow_run + head_sha + branch-name-gated pattern, which is a real but non-default precondition. No EPSS, no CISA KEV entry, and no public PoC are referenced, so this is best treated as a targeted supply-chain risk against the duck-organization/questbot repository and any fork that copied the workflow rather than a broadly exploitable issue. The 'Information Disclosure' tag in the source feed understates impact - this is code execution and supply-chain compromise, not just disclosure. |
| Exploit ScenarioDerived | An attacker forks duck-organization/questbot, creates a branch literally named 'main' in their fork, commits a backdoored bot image build (e.g., a token exfiltrator or reverse shell in the Dockerfile), and opens a pull request from that 'main' branch into the upstream repository. The upstream build workflow runs on the PR and completes; the deploy workflow then fires on workflow_run, checks out the PR's head_sha, builds the attacker's Dockerfile, pushes it as the 'latest' tag to the registry, and triggers production rollout - at which point the malicious container runs with the production bot token and compromises every Discord guild it is installed in. No public exploit identified at time of analysis, though the advisory describes the chain in enough detail to reproduce. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 11, 2026
Privileged GitHub Actions workflow injection in Quest Bot (Discord moderation bot) prior to version 1.0.3 allows remote attackers to deploy malicious container images to production by opening a pull request from a branch named 'main'. The unprivileged build workflow's head_sha is consumed by a downstream privileged deploy workflow, which then builds and publishes attacker-controlled code as the 'latest' Docker image and triggers production rollout. No public exploit identified at time of analysis, but the GitHub Security Advisory (GHSA-9qf3-c86c-j346) documents the chain end-to-end.
RemediationAI
Upgrade to Quest Bot 1.0.3 (Vendor-released patch: questbot-v1.0.3) by pulling the fixed workflow definitions from https://github.com/duck-organization/questbot/releases/tag/questbot-v1.0.3 and re-deploying; forks must merge the workflow changes, not just rebase application code. As compensating controls until upgrade: change the deploy workflow trigger from workflow_run to a push/tag event on the protected main branch (removes the PR-origin head_sha problem entirely, at the cost of losing PR-built artifacts); or gate the deploy job on github.event.workflow_run.head_repository.full_name github.repository AND github.event.workflow_run.event 'push' to reject PR-origin runs (side effect: blocks all PR-driven deploys, including legitimate ones); or move the privileged Docker push/registry credentials into a GitHub Environment with required reviewers so a human must approve each deploy (adds release friction). Refer to the GHSA-9qf3-c86c-j346 advisory for the maintainer's specific fix.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw lives in the repository's CI/CD pipeline rather than the bot's runtime code: a GitHub Actions deploy workflow triggers on workflow_run completion of an upstream build workflow that runs on pull_request events. The deploy job uses the triggering workflow's head_sha to checkout code, which on a PR points at the fork/branch's HEAD - attacker-controlled content. A naive branch-name check ('if branch == main') was used as the deploy gate, but workflow_run exposes the source branch name of the PR head, so a PR opened from a branch literally named 'main' satisfies the condition. This pattern matches CWE-829 (Inclusion of Functionality from Untrusted Control Sphere) and is the same class of pwn_request / workflow_run privilege escalation documented by GitHub Security Lab. Affected CPE is cpe:2.3:a:duck-organization:quest-bot before 1.0.3.
Know when Quest Bot gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
Network-reachable via PR submission with no auth or UI, but AC:H reflects the required workflow_run+head_sha+branch-name-gate pattern; scope changes to the production bot and Discord guilds, all impacts High.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Quest Bot is an opensource modern Discord Bot built for moderation, utilities and support. Prior to version 1.0.3, the repository has a privileged deploy workflow that runs after the unprivileged build workflow completes. The build workflow runs on pull requests, and the deploy workflow checks out the triggering workflow’s head_sha, builds that code into a Docker image, pushes it as latest, and triggers production deployment. If an attacker can open a pull request from a branch named main, the deploy workflow condition can treat the PR build as deployable and build the attacker-controlled commit in a privileged deployment context. This can result in malicious container deployment and production bot compromise. This issue has been patched in version 1.0.3.
Articles & Coverage 1
Executive ViewAI
Quest Bot versions prior to 1.0.3 contain a critical vulnerability allowing remote attackers to inject malicious code directly into production deployment pipelines and compromise the latest Docker image distributed to all running instances. Organizations using this Discord moderation bot face immediate risk of complete service takeover and unauthorized access to moderated communities without any available vendor patch to remediate the issue. This represents a critical supply chain risk for any organization relying on this bot for production security operations.
No vendor-released patch identified at time of analysis. Implement these interim mitigations: (1) Require mandatory code review approval for all pull requests before merge; (2) Apply least-privilege access controls to GitHub Actions workflows; (3) Enforce separate approval authorization between build and deploy stages to prevent privilege escalation; (4) Enable comprehensive audit logging of GitHub Actions and container registry activities; (5) Monitor container registries for unauthorized image uploads; (6) Restrict branch creation to authorized personnel; (7) Temporarily disable automatic production deployments until patched version 1.0.3 is available.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Mass mention abuse in Quest Bot (open-source Discord moderation/utility bot) before version 1.0.3 allows any normal Disc
Cross-tenant AutoMod rule deletion in Quest Bot (Discord bot) prior to 1.0.5 lets a user with Manage Server permission i
Privilege escalation in Quest Bot (open-source Discord moderation bot) prior to version 1.0.3 allows a user holding only
Privilege escalation in Quest Bot Discord bot versions prior to 1.0.1 allows any guild member with slash-command access
Unsanitized output in Quest Bot's ticket creation workflow allows any unprivileged Discord server member to inject @ever
Ticket transcript redirection in Quest Bot (prior to v1.0.4) allows a privileged user with bot settings access to config
Quest Bot, an open-source Discord moderation/utility bot, exposes private channel message contents to privileged users w
Quest Bot (Discord moderation bot) prior to v1.0.4 allows low-privileged moderators to leverage the bot's elevated Disco
Unsanitized reason text in Quest Bot's /unban and /unwarn Discord commands enables authenticated moderators to trigger m
EUVD-2026-36300
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB