Skip to main content

Dromara mayfly-go EUVDEUVD-2026-82379

| CVE-2026-92993 LOW
OS Command Injection (CWE-78)
2026-09-17 VulDB GHSA-7v39-cvrw-gj6m
2.1
CVSS 4.0 · Vendor: VulDB
View

Attack ChainAIDerived

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

  1. Access
    Authenticate with machine:script:run + tag access
  2. Exploit
    Craft params with shell metacharacters
  3. Execution
    Injection escapes {{.param}} template into Cli.Run SSH exec
  4. Impact
    Execute arbitrary OS commands on managed machine

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK

2 techniques across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires an authenticated account (PR:L) holding the machine:script:run permission AND tag access to at least one target machine - no admin account is needed. The injectable path additionally requires that the target machine's script template contains a {{.param}} placeholder, which is where the unsanitized 'params' argument is substituted before reaching the SSH exec layer (Cli.Run applies no input filtering). Exploitation is remote over the network with low complexity and no user interaction. The limiting factors are the two authorization grants (machine:script:run plus tag scope) and the template-placeholder configuration; a deployment where no accessible template uses {{.param}} is not reachable via this specific vector, though the note that Cli.Run filters no caller input suggests related exposure.

Impact

This is an authenticated OS command injection (CWE-78) with a publicly available exploit, which elevates it above a purely theoretical finding. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L, score 5.3, E:P) rates the technical impact as only Low across confidentiality/integrity/availability - yet the description explicitly states the flaw yields 'arbitrary command execution on machines,' which is a high-impact primitive. This is a notable internal conflict: a genuine RCE-class outcome scored with Low impact metrics under-rates the real severity; my independent assessment lands at CVSS 3.1 ~8.8. Mitigating the risk are concrete gates: the attacker must already hold an account with the machine:script:run permission plus tag access to a target, and the target machine's script template must contain a {{.param}} placeholder for the injection to reach the SSH exec layer. The E:P (Proof-of-Concept) maturity in the vector is consistent with the public gist exploit but does NOT indicate active exploitation - this is not in CISA KEV and no EPSS score is provided. Net: a real, patch-worthy priority for anyone running mayfly-go with multiple lower-trust operator accounts, but the authentication and template-configuration prerequisites keep it from being a wormable/unauthenticated internet-scale threat.

Exploit ScenarioDerived

A low-privilege mayfly-go operator who has been granted the machine:script:run permission and tag access to a fleet host crafts a script-run request whose 'params' argument embeds shell metacharacters. When the server substitutes the value into a template containing a {{.param}} placeholder and hands it to the SSH exec layer (Cli.Run), the injected commands execute on the managed machine with the SSH user's privileges. A public proof-of-concept exploit is available as a GitHub gist, lowering the skill barrier to reproduce it.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 1.5% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 17, 2026

Authenticated OS command injection in Dromara mayfly-go through version 1.11.5 allows a low-privileged user who holds the machine:script:run permission and tag access to a target machine to execute arbitrary operating-system commands on that machine via the params argument of the RunMachineScript handler. No admin account is required, and publicly available exploit code exists (a public gist referenced in the CVE record), though there is no CISA KEV confirmation of active exploitation. The attack is remote, low complexity, and requires no user interaction, but it is gated by the two authorization grants and by the target machine's script template containing a {{.param}} placeholder where the unsanitized input is substituted before reaching the SSH execution layer.

RemediationAI

No vendor-released patch version has been independently confirmed: the only fix reference in the data, https://github.com/dromara/mayfly-go/pull/129, contains a newly added SECURITY.md policy document rather than an input-sanitization change, so the 'patch available' signal should be treated as unverified and no exact fixed version can be cited; the disclosure notes that the vendor was contacted early and did not respond, meaning a fixed release may not exist at time of analysis. Until a patched build is available and validated, apply compensating controls in this order: revoke machine:script:run from all non-essential roles and restrict tag scoping so that the permission grants access to no machine templates, accepting that this disables the script-running feature for those users; audit all machine script templates for {{.param}} placeholders and either remove them or replace parameterized scripts with fixed, non-parameterized commands, accepting the loss of script reusability; where the feature must remain available, isolate the SSH credentials used by mayfly-go to low-privilege accounts with no sudo rights and restrict those accounts' reachable hosts, which limits post-exploitation impact but does not prevent injection; and monitor mayfly-go API logs for machine:script:run calls containing shell metacharacters, which provides detection but not prevention. Also note the assessment's observation that Cli.Run applies no input filtering to any caller, so the same class of exposure may exist in other callers of the SSH execution layer and should be reviewed separately. Track https://vuldb.com/vuln/406447 for updated remediation guidance and the project repository at https://github.com/dromara/mayfly-go/ for a future tagged release.

Affected VersionsENISA

mayfly-go 1.11.5
mayfly-go 1.11.1
mayfly-go 1.11.3
mayfly-go 1.11.0
mayfly-go 1.11.2
mayfly-go 1.11.4

Affected Packages

euvd mayfly_go no fix

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

mayfly-go is a self-hosted Go-based DevOps/operations platform (dromara ecosystem) that provides machine, database, Redis, MongoDB and auth modules, including a Machine Script feature that runs templated scripts against managed hosts over SSH. The flaw is a classic CWE-78 OS Command Injection: in server/internal/machine/api/machine_script.go, the RunMachineScript function takes the caller-supplied params argument and substitutes it directly into the target machine's script template at the {{.param}} placeholder without sanitization. The resulting command string is then handed to the SSH execution layer (Cli.Run), which per the assessment applies no input filtering to any caller, so injected shell metacharacters are interpreted by the remote shell. The CVSS 4.0 vector published with the advisory (AV:N/AC:L/AT:N/PR:L/UI:N, low confidentiality/integrity/availability impact, E:P) reflects a privileges-required, network-reachable injection with public exploitability; our independent assessment scores the same conditions higher under CVSS 3.1 (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) because successful command execution on a managed host is typically full compromise of that host rather than a limited-impact event. The CPE entry cpe:2.3:a:dromara:mayfly-go:*:*:*:*:*:*:*:* is a wildcard, so all versions up to and including 1.11.5 should be treated as affected until a fixed release is confirmed.

Know when Go 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 (VulDB) PRIMARY 2.1 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P
vuln.today AI 8.8 HIGH

Network-reachable, low-complexity, requires a low-privilege account with machine:script:run+tag access (PR:L); command execution on the target machine yields full C/I/A, contradicting the vendor's Low impact metrics.

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

Primary rating from Vendor (VulDB).

CVSS VectorVendor: VulDB

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

Lifecycle Timeline

3
Severity Changed
Sep 17, 2026 - 20:22 NVD
MEDIUM LOW
CVSS changed
Sep 17, 2026 - 20:22 NVD
5.3 (MEDIUM) 2.1 (LOW)
CVE Published
Sep 17, 2026 - 19:15 cve.org
MEDIUM 5.3

DescriptionCVE.org

A vulnerability was detected in Dromara mayfly-go up to 1.11.5. The impacted element is the function RunMachineScript of the file server/internal/machine/api/machine_script.go of the component Machine Script Feature. The manipulation of the argument params results in os command injection. The attack can be executed remotely. The exploit is now public and may be used. Exploitation needs no admin account. Any account holding machine:script:run plus tag access reaches arbitrary command execution on machines whose templates contain {{.param}} placeholders; the SSH exec layer (Cli.Run) also applies no input filtering to any caller. The vendor was contacted early about this disclosure but did not respond in any way.

Threat Intelligence Overview

EPSS Score
1.5%
Top 28% exploitable
Prevalence
Low
self-hosted OSS DevOps platform (Dromara ecosystem), niche footprint
Exploit
POC
Public exploit code exists
Data Quality
6 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 LOW
CISA KEV No
Public POC Yes
EPSS 1.5%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
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· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

31
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +10
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

OS command injection occurs when an application passes unsanitized user input directly into system shell commands.

More in Go

View all
CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2016-5386 HIGH
8.1 Jul 19

The net/http package in Go through 1.6 does not attempt to address RFC 3875 section 4.1.18 namespace conflicts and there

CVE-2025-68121 CRITICAL POC
10.0 Feb 05

Critical certificate validation bypass in Go crypto/tls during session resumption. If ClientCAs or RootCAs fields are mu

CVE-2019-14809 CRITICAL POC
9.8 Aug 13

net/url in Go before 1.11.13 and 1.12.x before 1.12.8 mishandles malformed hosts in URLs, leading to an authorization by

CVE-2026-90942 CRITICAL POC
9.3 Sep 14

Casdoor through 4.4.0 exposes its instance-wide built-in JWT signing private key unmasked through the /api/get-certs and

CVE-2026-101090 CRITICAL POC
9.3 Sep 27

Host header injection in Nezha 2.2.3's OAuth2 redirect endpoint (/api/v1/oauth2/{provider}) allows an unauthenticated re

CVE-2026-78428 HIGH POC
8.8 Sep 17

Session cross-wiring in SUSE NeuVector before 5.6.1 allows an unauthenticated remote attacker to obtain another user's a

CVE-2026-92791 HIGH POC
8.7 Sep 16

Unauthenticated path traversal in Uber Kraken through 0.1.29 allows remote attackers to read files outside the configure

CVE-2018-7187 HIGH POC
8.8 Feb 16

The "go get" implementation in Go 1.9.4, when the -insecure command-line option is used, does not validate the import pa

CVE-2026-16651 HIGH POC
8.7 Sep 21

Denial of service in Temporal Server allows an authenticated caller holding at least namespace read permission to crash

CVE-2026-82405 HIGH POC
8.7 Sep 23

Account takeover in Klever-Go's KleverUpdateAccountPermission built-in (all versions prior to 1.7.20) allows an attacker

CVE-2026-82409 HIGH POC
8.4 Sep 23

Maliciously crafted on-chain account names processed by Klever-Go prior to 1.7.20 are spliced into Elasticsearch _bulk r

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