Skip to main content

Duck Site CVE-2026-47174

| EUVDEUVD-2026-36290 CRITICAL
Inclusion of Functionality from Untrusted Control Sphere (CWE-829)
2026-06-11 GitHub_M
9.5
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Fork public Duck Site repo
  2. Delivery
    Open PR with malicious app code
  3. Exploit
    Build workflow runs on PR
  4. Install
    Deploy workflow_run satisfies main-branch gate
  5. C2
    Deploy job checks out PR commit
  6. Execute
    Push attacker image to GHCR as latest
  7. Impact
    Dokploy deploys backdoored production site

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

Exploitation requires (1) the target to be running a vulnerable Duck Site repository (pre-1.0.1) whose deploy workflow uses the workflow_run trigger paired with a main-branch condition that can be satisfied by a PR-originated run, (2) the attacker to be able to open a pull request that triggers the build workflow - trivial on a public repo, gated by collaborator/fork-PR-approval settings on a private one, and (3) the PR build to successfully complete so the deploy workflow_run fires. Limiting factors are GitHub's default 'Require approval for first-time contributors' Actions setting (which blocks unapproved external PR runs), any branch protection or environment protection rules that require manual approval before Dokploy deployment, and the fact that the deploy workflow must still be present and unpatched. The CVSS 4.0 vector lists AT:P precisely because of this required PR-to-deploy-gate-satisfaction step rather than fully unconditional exploitability.

Impact

The CVSS 4.0 base score of 9.5 is driven by network attack vector, low complexity, no privileges, no user interaction, and full high impact on both the vulnerable system (the CI/CD pipeline / GHCR registry) and a subsequent system (the deployed production site via Dokploy) - credible given the workflow design. AT:P (Attack Requirements: Present) acknowledges the attacker still has to craft a PR run that satisfies the deploy workflow's branch condition, which is the meaningful real-world gating factor. EPSS and CISA KEV data were not supplied, so widespread exploitation cannot be asserted; no public exploit code was identified in the references either, so this should be treated as a high-severity supply-chain risk that is theoretically internet-reachable (anyone with PR rights to the public repo) but not yet shown to be mass-exploited. Anyone running an unpatched fork of Duck Site that accepts external PRs should treat this as a priority fix, while private/internal-only deployments where PRs come only from trusted committers carry materially lower realistic risk.

Exploit ScenarioDerived

An attacker forks the public Duck Site repository, modifies the application source to inject a backdoor or credential-stealing payload, and opens a pull request that causes the build workflow to run. Because the deploy workflow fires on the build workflow's completion and its main-branch guard can be satisfied from the PR-originated run, it then checks out the attacker's PR commit, builds it, pushes it to GHCR as :latest, and instructs Dokploy to roll the production site to that image - all without the PR ever being reviewed or merged. No public exploit code is identified at time of analysis, but the workflow_run / pwn-request class of bug is well documented and trivially adapted by an experienced attacker.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jun 11, 2026

Production deployment compromise in Duck Site before 1.0.1 allows remote attackers to push attacker-controlled code as the live production Docker image without code review or merge approval. The flaw stems from a GitHub Actions deploy workflow that can be tricked into treating an unmerged pull request build as a main-branch deployment, then checking out the PR commit, building it, pushing it as the latest Docker tag, and triggering a Dokploy deployment. No public exploit identified at time of analysis, and CVE is not listed in CISA KEV.

RemediationAI

Vendor-released patch: upgrade to Duck Site 1.0.1, which corrects the deploy workflow's gating so that pull-request-originated workflow_run events can no longer satisfy the main-branch deployment condition; the fix is described in the GitHub Security Advisory at https://github.com/duck-organization/duck-site/security/advisories/GHSA-qj93-7xrg-rvhw. For operators who cannot immediately upgrade, the highest-leverage workarounds are to require GitHub Actions approval for pull requests from first-time/external contributors (Settings → Actions → 'Require approval for all outside collaborators'), remove the workflow_run trigger from the deploy workflow and instead trigger deploys only on push to main (trade-off: loses any intentional cross-workflow chaining), or scope the deploy job with an explicit if: github.event.workflow_run.head_branch 'main' && github.event.workflow_run.event 'push' check so PR-originated runs are filtered out (trade-off: requires careful auditing of every branch protection rule). As a defense-in-depth measure, rotate any GHCR tokens and Dokploy deployment secrets that may have been exposed to a malicious PR run while the workflow was vulnerable.

Affected VersionsENISA

duck-site < 1.0.1

Affected Packages

euvd duck_site fix: 1.0.1

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

Duck Site is a containerized site application built and shipped through a two-stage GitHub Actions pipeline: a build workflow that runs on pull_request events and a deploy workflow that runs on workflow_run completion with elevated permissions (packages: write) and access to deployment secrets. The deploy workflow is gated by a 'main branch' condition that is supposed to limit it to post-merge runs, but the condition can be satisfied by a pull-request-originated workflow run. CWE-829 (Inclusion of Functionality from Untrusted Control Sphere) applies here because the privileged deploy job ends up sourcing build artifacts and code (actions/checkout of the triggering workflow's commit) from an untrusted PR context while operating with trusted-context privileges, a well-known pwn_request / workflow_run anti-pattern in GitHub Actions. Affected CPE is cpe:2.3:a:duck-organization:duck-site, and the fix is delivered via GHSA-qj93-7xrg-rvhw.

Know when Duck Site 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

Vendor (GitHub_M) PRIMARY 9.5 CRITICAL
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
vuln.today AI 9.0 CRITICAL

PR-author can trigger it over the network with no auth or UI, but must craft a run that satisfies the main-branch gate (AC:H); deploy job's privileges compromise the production site (S:C, C/I/A:H).

3.1 AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
High
Subsequent system: Integrity
High
Subsequent system: Availability
High

Lifecycle Timeline

2
Patch available
Jun 11, 2026 - 20:01 EUVD
CVE Published
Jun 11, 2026 - 18:46 cve.org
CRITICAL 9.5

DescriptionCVE.org

In Duck Site before version 1.0.1, the repository has a deploy workflow that runs after the build workflow completes. The build workflow runs on pull requests, while the deploy workflow runs with package-write permissions and deployment secrets. If an attacker can make a pull request build satisfy the deploy workflow’s main branch condition, the deploy job checks out the triggering workflow commit, builds it into a Docker image, pushes it as latest, and triggers Dokploy deployment. This can allow attacker-controlled pull request code to become the deployed production site image without being merged. This issue has been patched in version 1.0.1.

Executive ViewAI

Why It Matters

Duck Site before version 1.0.1 contains a critical vulnerability in its GitHub Actions deployment workflow that allows remote code injection directly to production, completely bypassing code review and change approval processes. No public exploits have been identified, but this represents a severe operational risk to any organization using the product, as attackers could compromise the production Docker image and subsequently all running instances. Leadership must treat this as a production emergency and immediately restrict deployment capabilities.

Business Impact: Severe
Compensating Controls

Disable automatic PR-to-production deployments and require manual review and approval from multiple authorized personnel; enforce strict branch protection rules requiring reviews and status checks before merge; restrict who can create, approve, or merge pull requests in the repository; implement separate credentials for Docker registry and deployment tools with minimal required permissions; enable comprehensive audit logging for all GitHub Actions workflows and deployments; monitor and alert on all workflow executions; require independent security review of code changes before production deployment separate from standard code review process.

Threat Intelligence Overview

EPSS Score
0.0%
Top 86% exploitable
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

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.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
Very High
Technical Impact
Total

Priority Score

48
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +48
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy