Skip to main content

Meshtastic CVE-2026-44359

CRITICAL
Code Injection (CWE-94)
2026-07-19 GitHub_M
10.0
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Recon
    Fork meshtastic/firmware repo
  2. Delivery
    Open PR with malicious build script
  3. Exploit
    pull_request_target auto-runs job
  4. Install
    Fork code checked out and executed
  5. C2
    Access secrets and GITHUB_TOKEN
  6. Execute
    Exfiltrate keys and poison artifacts
  7. Impact
    Supply chain / repo takeover

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Code injection prevention, sandbox exec
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Initial Access

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

Exploitation Conditions

Exploitation required only that the target repository used the pull_request_target trigger with jobs that checked out the fork head (ref: github.event.pull_request.head.ref / repository: head.repo.full_name) and had no environment approval gate - all true for meshtastic/firmware before 2.7.21.1370b23. A PR from any external account with author_association NONE was sufficient and the workflow ran automatically, so no maintainer interaction, no repository membership, and no prior authentication were needed. The practical limits: the flaw is exploitable only against the project's own CI (not against firmware running on end-user devices), the malicious PR is visible in the public PR list (some forensic exposure for the attacker), and value depends on the secrets/permissions actually granted to the runner. Post-patch (pull_request trigger, no fork checkout in privileged context) the conditions no longer hold.

Impact

The signals are largely consistent and point to genuine high priority for the maintainers, though the exposure is unusual. The CVSS 3.1 vector AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N with a 10.0 score reflects unauthenticated, low-complexity, network-reachable exploitation with a scope change (CI secrets and downstream supply chain). Any GitHub user could open a PR and automatically trigger execution - no maintainer approval was required - which is as low-friction as CI attacks get. No EPSS score, KEV listing, or confirmed POC is provided, so there is no evidence of active exploitation; the risk is the ease and impact of exploitation rather than observed abuse. One caveat: this is not a vulnerability in deployed Meshtastic devices - the blast radius is the project's build infrastructure, secrets, self-hosted runners, and the supply chain of published artifacts, so 'who is affected' is the project and its downstream consumers rather than end-user nodes. The A:N in the supplied vector is arguable given that repository takeover and self-hosted runner compromise plausibly impact availability.

Exploit ScenarioDerived

An external attacker forks meshtastic/firmware, adds a malicious build script or modified source to their branch, and opens a pull request; because the workflow triggers on pull_request_target with author_association NONE and no approval gate, the check/build jobs automatically check out and execute the attacker's code with repository secrets and an elevated GITHUB_TOKEN. From there the attacker exfiltrates secrets, poisons build artifacts, or compromises self-hosted runners, potentially achieving repository takeover and downstream supply chain compromise. No public exploit is confirmed, but the linked Google Drive document may contain a proof of concept.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
No patch listed yet 1.0% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Jul 19, 2026

Poisoned-pipeline (pwn request) code execution in the Meshtastic firmware repository's GitHub Actions CI allows any external user to run arbitrary code inside the project's trusted CI context prior to firmware 2.7.21.1370b23. Because main_matrix.yml (and related workflows) triggered on pull_request_target while the check, build, and build-debian-src jobs checked out and executed code from the attacker's fork with no approval gate, a pull request from an author_association of NONE automatically ran attacker-controlled files with access to repository secrets and an elevated GITHUB_TOKEN. This is CWE-94 code injection scoring CVSS 10.0; no public exploit identified at time of analysis, though a linked Google Drive writeup may contain proof-of-concept detail.

RemediationAI

Vendor-released patch: 2.7.21.1370b23, delivered in commit 5716aeba3bc1e1d34fba9567ff88917ede4a78a5, which switches the main workflow trigger from pull_request_target to pull_request and removes the explicit fork checkout (ref/repository) lines across the check, build, build-debian-src, docker, and test jobs, and gates privileged steps behind github.event_name == 'pull_request'. Maintainers should adopt this patched workflow state, then rotate any secrets (signing keys such as the GPG key, tokens, registry credentials) that a fork PR could have exfiltrated while the flaw was live, and audit self-hosted runners for tampering. As durable compensating controls, avoid pull_request_target for jobs that build or run PR code; if privileged post-processing on PRs is genuinely required, split it into a two-workflow pattern (untrusted build on pull_request with no secrets, privileged step on workflow_run) and require an approval gate/environment protection for first-time contributors - note this adds latency to external PR CI. See the advisory at https://github.com/meshtastic/firmware/security/advisories/GHSA-mjx5-98jq-q736.

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The root cause is the well-known GitHub Actions pull_request_target anti-pattern. Unlike the pull_request trigger, pull_request_target runs the workflow in the context of the base repository with read/write GITHUB_TOKEN and access to repository secrets, but it is designed to check out only trusted base-branch code. Here the workflows explicitly checked out the untrusted fork by setting ref: github.event.pull_request.head.ref and repository: github.event.pull_request.head.repo.full_name, then built/executed that code - combining privileged context with attacker-controlled content. CWE-94 (Improper Control of Generation of Code) captures this: the CI effectively executes attacker-supplied build scripts and source as if trusted. The affected asset per CPE cpe:2.3:a:meshtastic:firmware is the meshtastic/firmware repository CI, not the compiled firmware on devices. This issue is distinct from GHSA-6mwm-v2vv-pp96, which fixed a separate github.head_ref command injection in the setup job by moving it to environment variables; the fork-checkout flaw in the check, build, and build-debian-src jobs remained until this patch.

Know when Firmware 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 10.0 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N
vuln.today AI 10.0 CRITICAL

Unauthenticated PR auto-triggers CI code execution (AV:N/AC:L/PR:N/UI:N); secrets and downstream supply chain make it S:C, and repo/runner takeover justifies full C:H/I:H/A:H.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
None

DescriptionCVE.org

Meshtastic is an open source mesh networking solution. Prior to version 2.7.21.1370b23, the Meshtastic GitHub repository's main_matrix.yml workflow is triggered by pull_request_target and multiple jobs check out the attacker's fork code and execute it with access to repository secrets and elevated GITHUB_TOKEN permissions. No approval gate exists. Pull requests from external users with author_association: "NONE" triggered the CI workflow automatically. The workflow directly executes attacker-controlled files from the fork checkout. This issue could have resulted in supply chain compromise, self-hosted runner compromise, and/or repository takeover for the repo. This issue is separate from GHSA-6mwm-v2vv-pp96, which addressed a command injection via github.head_ref in the setup job of the same workflow. That fix correctly moved to environment variables. However, the more critical fork checkout vulnerability across the check, build, and build-debian-src jobs was not addressed. Version 2.7.21.1370b23 contains a patch for thie issue.

Executive ViewAI

Why It Matters

A code injection vulnerability in Meshtastic's GitHub Actions CI pipeline allows any external GitHub user to execute arbitrary code with access to repository secrets and deployment credentials, compromising the integrity of firmware releases distributed to all end users. Attackers only need to open a pull request-no repository access or special privileges required-to inject malicious code in the trusted CI context; no public exploit identified at time of analysis. This represents a critical supply chain risk that could enable widespread distribution of compromised firmware to the entire user base.

Business Impact: Severe
Compensating Controls

No vendor-released patch identified at time of analysis. Restrict GitHub Actions pull_request_target workflows to require explicit manual approval before any code execution for external pull requests; prevent code checkout from external forks and only execute code from the main repository branch; disable automated CI execution for contributors with author_association=NONE; require signed commits and maintainer code review approval; immediately audit and rotate all GitHub repository secrets, deploy tokens, and API credentials; implement firmware cryptographic signing and verification; monitor firmware release channels for unauthorized or unsigned variants.

Threat Intelligence Overview

EPSS Score
1.0%
Top 41% exploitable
Prevalence
Medium
popular open-source LoRa mesh firmware, but exposure is limited to project CI
Social Media
8
Sightings
Data Quality
6 sources
Confidence: High
NVD CVE.org EPSS Vulnrichment CIRCL 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 1.0%
Patch available No
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
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
Very High
Technical Impact
Total

Priority Score

51
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +50
PoC: 0
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.

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

Affected Products (CPE)CVE.org

cpe:2.3:a:meshtastic:firmware:*:*:*:*:*:*:*:*
CVE-2014-8656 CRITICAL POC
10.0 Nov 06

The Compal Broadband Networks (CBN) CH6640E and CG6640E Wireless Gateway 1.0 with firmware CH6640-3.5.11.7-NOSH have a d

CVE-2013-2645 CRITICAL POC
9.3 Oct 06

Multiple cross-site request forgery (CSRF) vulnerabilities on the TP-LINK WR1043N router with firmware TL-WR1043ND_V1_12

CVE-2014-8657 MEDIUM POC
5.0 Nov 06

The Compal Broadband Networks (CBN) CH6640E and CG6640E Wireless Gateway 1.0 with firmware CH6640-3.5.11.7-NOSH allows r

CVE-2026-102793 HIGH POC
8.5 Sep 29

Authenticated command injection in Ziroom ZHOME A0101 firmware 1.0.1.0 lets a privileged user execute arbitrary operatin

CVE-2014-8655 MEDIUM POC
5.0 Nov 06

The Compal Broadband Networks (CBN) CH6640E and CG6640E Wireless Gateway 1.0 with firmware CH6640-3.5.11.7-NOSH allows r

CVE-2014-8654 MEDIUM POC
6.8 Nov 06

Multiple cross-site request forgery (CSRF) vulnerabilities in Compal Broadband Networks (CBN) CH6640E and CG6640E Wirele

CVE-2014-8653 MEDIUM POC
4.3 Nov 06

Cross-site scripting (XSS) vulnerability in Compal Broadband Networks (CBN) CH6640E and CG6640E Wireless Gateway 1.0 wit

CVE-2026-11405 CRITICAL
9.8 Jul 06

Authentication bypass in Tenda router firmware (AC10, AC5, AC6, FH1201, W15E) lets any user log in as administrator via

CVE-2026-7415 CRITICAL
9.8 May 07

Anonymous MQTT access in Yarbo firmware v2.3.9 allows remote unauthenticated attackers on the local network to fully con

CVE-2026-7414 CRITICAL
9.8 May 07

Hardcoded administrative credentials in Yarbo firmware v2.3.9 allow remote unauthenticated attackers to gain full device

CVE-2026-7413 CRITICAL
9.8 May 07

Undocumented persistent backdoor in Yarbo firmware v2.3.9 grants remote privileged access that survives factory reset an

CVE-2026-91191 HIGH
7.7 Sep 29

Lantronix G520 Series firmware (2.6.0.4R6 stable, covering G526, G526RP, G527 and G528) can be induced to treat forged s

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