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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
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
3DescriptionCVE.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
AnalysisAI
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.
Technical ContextAI
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.
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.
An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl
runc through version 1.0-rc6 (used in Docker before 18.09.2) contains a container escape vulnerability that allows attac
Netmaker makes networks with WireGuard. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no a
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
The News & Blog Designer Pack - WordPress Blog Plugin - (Blog Post Grid, Blog Post Slider, Blog Post Carousel, Blog Post
Path traversal in JFrog Artifactory (CWE-22) enables an authenticated low-privilege user to write data outside the inten
Docker 1.3.2 allows remote attackers to execute arbitrary code with root privileges via a crafted (1) image or (2) build
Remote code execution in Gogs through 0.14.2 allows authenticated users (and unauthenticated attackers on default-config
Remote code execution in Flowise before 3.1.2 allows any authenticated user (or API caller with chatflow view/update per
Remote code execution in NocoBase Workflow Script Node (npm @nocobase/plugin-workflow-javascript) allows authenticated l
Docker Desktop Community Edition before 2.1.0.1 allows local users to gain privileges by placing a Trojan horse docker-c
Vasion Print (formerly PrinterLogic) Virtual Appliance Host prior to version 25.2.169 and Application prior to version 2
Same technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-36300