Skip to main content

Devicetype Library CVE-2026-55251

| EUVDEUVD-2026-91045 MEDIUM
Code Injection (CWE-94)
2026-10-01 GitHub_M
6.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Open pull request as any GitHub user
  2. Delivery
    Edit requirements.txt / .gitmodules / pre-commit configs
  3. Exploit
    CI triggers on pull_request before review
  4. Execution
    Install or checkout attacker code
  5. Impact
    Execute arbitrary code on CI runner

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 requires that the repository's .github/workflows/validation.yml run on the pull_request event and execute PR-supplied content before maintainer review - specifically via contributor edits to requirements.txt (pip install), .pre-commit-hooks-config.yaml / .pre-commit-yamlfmt-config.yaml (pre-commit hook execution), or .gitmodules (submodule checkout). The attacker only needs the ability to open a pull request (no repository write access), and no user interaction from a maintainer is needed because CI runs automatically. Exploitation is LIMITED to versions prior to commit f41fc1e, and the achievable impact is constrained because fork PRs run with a read-only token and no secrets; the patch adds a validate-inputs gate confining untrusted authors to the device-types/, module-types/, rack-types/, elevation-images/, and module-images/ contribution directories unless the author is trusted or a maintainer applies the ci-approved label.

Impact

This is a medium-severity CI/CD supply-chain weakness (CWE-94) in the NetBox devicetype-library repository's GitHub Actions workflow, scored CVSS 6.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N). The network vector and no-privilege, no-interaction metrics are accurate in the GitHub sense: any person with a GitHub account can open a pull request, and the vulnerable validation.yml ran PR-supplied code automatically before maintainer review. No EPSS score, CISA KEV listing, or POC was supplied in the intelligence, so there is no public exploit identified at time of analysis and no signal of active exploitation - this is a disclosed-and-patched issue rather than a fire. Real-world risk is tempered by two factors visible in the patch commit's own commentary: fork PRs run with a read-only token and no secrets, which is precisely why impact is capped at C:L/I:L/A:N rather than a high-confidentiality or integrity compromise. The practical worst case is arbitrary code execution on an ephemeral CI runner with limited privileges (e.g., cryptomining, abusing runner compute, or probing for misconfigured secrets), not theft of repository secrets or production compromise. Net: a legitimate issue worth patching that is already fixed, but not a high-urgency widespread threat; treat it as a medium priority confined to the single affected repository's CI.

Exploit ScenarioDerived

An attacker with an ordinary GitHub account forks the repository and opens a pull request that edits requirements.txt, a pre-commit hooks config, or .gitmodules to point at or install attacker-controlled code. When validation.yml triggers on the pull_request event, the CI runner installs/executes that code before any maintainer reviews the PR, giving the attacker code execution on the runner. No public exploit code is identified at time of analysis, and the runner executes with a read-only token and no secrets, limiting the blast radius.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 01, 2026

Untrusted code execution in the NetBox devicetype-library CI pipeline lets any contributor who can open a pull request run arbitrary commands on the repository's GitHub Actions runner before a maintainer ever reviews the change. Because validation.yml triggers on the pull_request event and consumes three PR-editable files (requirements.txt for pip install, the pre-commit hook configs, and .gitmodules for submodule checkout), an unauthenticated remote attacker with no repository write access can inject code that executes automatically with no user interaction; impact is capped at low confidentiality and integrity loss because fork PRs run with a read-only token and no secrets. Only versions prior to commit f41fc1e are affected, and no public exploit code identified at time of analysis.

RemediationAI

Adopt the upstream fix by updating to commit f41fc1e48dec8d7d31afba5f13a8c73652ff5796 or any later revision of the devicetype-library repository; the advisory at https://github.com/netbox-community/devicetype-library/security/advisories/GHSA-5x2m-x42f-g4cm and the commit at https://github.com/netbox-community/devicetype-library/commit/f41fc1e48dec8d7d31afba5f13a8c73652ff5796 document the change, which is an upstream fix delivered as a commit rather than a tagged release, so a released patched version is not independently confirmed. The commit adds a validate-inputs job that reads the PR author's effective repository permission and fails closed when the author is untrusted and touches anything outside the contribution directories, drops submodule checkout from the initial actions/checkout step, and requires the ci-approved maintainer label or write-level access before requirements.txt, .gitmodules, or the pre-commit configs can be modified; if you cannot adopt the commit, replicate those controls manually by enabling the repository setting requiring approval for workflows from fork pull requests and first-time contributors, which forces maintainer review before any PR-supplied code runs (trade-off: routine data contributions now require manual approval), adding the listed files to CODEOWNERS so changes require a trusted reviewer (trade-off: increases review load), and limiting the workflow's permissions to contents: read so fork PRs never receive secrets or write tokens (trade-off: some automation that needs to push or comment will stop working). Additional compensating controls include pinning pip dependencies with hashes and disabling remote pre-commit hook auto-update, which removes the most direct code-execution vectors but does not close the .gitmodules submodule-checkout path.

Affected VersionsENISA

devicetype-library < f41fc1e48dec8d7d31afba5f13a8c73652ff5796

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 flaw is a CWE-94 code injection into a CI/CD supply chain: the GitHub Actions workflow .github/workflows/validation.yml was configured to run on the pull_request event and to execute repository content supplied by the pull request itself. Three files under contributor control drive that execution - requirements.txt (consumed by pip install, which will run arbitrary setup code from a malicious package or VCS URL), .pre-commit-hooks-config.yaml and .pre-commit-yamlfmt-config.yaml (consumed by the pre-commit framework, which fetches and executes hook code from remote repositories), and .gitmodules (which causes submodule checkout of an attacker-controlled repository). None of these paths were protected by CODEOWNERS, and no gate verified the trust level of the PR author before the lint/format/test jobs ran. The CPE cpe:2.3:a:netbox-community:devicetype-library identifies the affected artifact as the community device type library repository itself rather than the NetBox application server. The upstream fix (commit f41fc1e48dec8d7d31afba5f13a8c73652ff5796) introduces a validate-inputs job that resolves the effective collaborator permission via the GitHub API, permits Dependabot PRs and PRs carrying a maintainer-applied ci-approved label, and otherwise performs a git diff against the PR base SHA to confine untrusted authors to the device-types/, module-types/, rack-types/, elevation-images/, and module-images/ directories; the job uses actions/checkout without submodules and the downstream jobs now declare needs: validate-inputs.

Know when Devicetype Library 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 6.5 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
vuln.today AI 6.5 MEDIUM

Any GitHub user can open a PR (PR:N) that auto-runs in CI without maintainer interaction (UI:N, AC:L); impact is limited to a read-only, secret-less runner, so C:L/I:L/A:N.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/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
Unchanged
Confidentiality
Low
Integrity
Low
Availability
None

DescriptionCVE.org

NetBox Device Type Library is a collection of community-sourced device type definitions for import into NetBox. Prior to commit f41fc1e, the CI workflow .github/workflows/validation.yml runs on pull_request and executes code supplied by the pull request before any maintainer review. Three PR-editable files drive this: "requirements.txt", ".pre-commit-hooks-config.yaml" / ".pre-commit-yamlfmt-config.yaml", and ".gitmodules". A contributor with no special repository access could open a pull request that modifies these files and have their code run on the CI runner. This issue has been patched via commit f41fc1e.

Threat Intelligence Overview

EPSS Score
0.1%
Top 99% exploitable
Prevalence
Low
niche community device-definition repo; vulnerable surface is one project's CI
Data Quality
5 sources
Confidence: Medium

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

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.

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