Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as uType=1 API user with both tokens
-
DeliverySend PUT /fog/storagenode/{id}/edit modifying user/pass/ftppath
-
ExploitInject shell command into Storage Node credential fields
-
ExecutionRoot FOGImageReplicator builds lftp command via proc_open()
-
ImpactArbitrary command execution as root
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 | Not remote-unauthenticated. Concrete prerequisites, all of which must hold: (1) a valid FOG account with uType=1 and uAllowAPI enabled; (2) possession of that user's API token AND the server-wide global FOG API token (both are validated by the API); (3) storage replication must be enabled; and (4) at least one usable Storage Node that FOGImageReplicator will actually contact, so the attacker-controlled user/pass/ftppath values are interpolated into the lftp command. Limiting factors that reduce real-world exposure: the attack requires authentication (PR:L), the global API token is an additional secret beyond the user token, and replication plus a usable node are deployment-dependent rather than universal defaults; command execution is reached only once the replicator runs against the tampered node. |
| Impact | The CVSS 3.1 base of 8.8 (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) captures the core danger: a network-reachable API flaw that lets an authenticated low-privileged user (PR:L) reach root command execution. However, several real-world signals temper the raw score. Exploitation is gated by multiple preconditions that CVSS does not express: the attacker needs a uType=1 account with API access enabled, possession of BOTH the user's API token AND the global FOG API token, storage replication turned on, and a usable Storage Node the replicator will actually contact. No EPSS score and no KEV listing are provided in the input, so there is no evidence of in-the-wild or widespread automated exploitation; the vuln.today decision label is 'this_week' (not act_now/emergency), consistent with a serious but non-emergency item. A detailed reproduction exists in the vendor GHSA advisory (performed only in a disposable lab), so this is a public PoC reference, not confirmed working weaponized exploit code and not confirmed active exploitation - these are distinct signals and should not be conflated. Net: this is a genuine high-severity privilege-escalation-to-root issue worth patching promptly, but the token and configuration prerequisites make it more plausible as a targeted/insider or chained scenario than mass opportunistic exploitation. Note a conflict in the supplied version intelligence (see confidence_notes) that should be resolved before scoping affected estates. |
| Exploit ScenarioDerived | An authenticated FOG user with uType=1 and API access, holding both their own API token and the global FOG API token, sends PUT /fog/storagenode/{id}/edit to write attacker-controlled values into the Storage Node's user, pass, and ftppath fields. With storage replication enabled, the root-running FOGImageReplicator later interpolates those fields into an lftp command run via proc_open(), executing the attacker's injected commands as root. A step-by-step reproduction (lab-only, synthetic node) is published in the vendor GHSA advisory, so a public PoC reference exists; it is not verified as standalone working exploit code. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
The Storage Node edit route in FOG Project's PHP API (PUT /fog/storagenode/{id}/edit) authenticates the request but never checks whether the caller is an administrator, so a low-privileged uType=1 "mobile" account holding both its own API token and the server-wide FOG API token can rewrite a node's user, pass and ftppath fields. When storage replication is enabled and a usable node exists, the root-owned FOGImageReplicator service interpolates those attacker-controlled values into an lftp command invoked through proc_open(), turning the API write into root-level command execution on the imaging server (CVSS 3.1 base 8.8, AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H, assessed with a changed scope for the pivot from the web process into the root service). This is not remote-unauthenticated: exploitation requires API-enabled uType=1 credentials, the additional global API token secret, replication enabled, and at least one Storage Node the replicator will actually contact, so real-world exposure is configuration-dependent rather than universal; no public exploit code and no CISA KEV entry were identified at time of analysis, although the upstream advisory publishes detailed reproduction steps.
RemediationAI
Upgrade to FOG 1.5.10.2253 for the 1.5 stable branch or to 1.6.0-RC-1 (or later) for the 1.6 line; the fix is carried by PR https://github.com/FOGProject/fogproject/pull/1001 and commits https://github.com/FOGProject/fogproject/commit/3098e4423588951d8f0cedac79b9b102f036761e and https://github.com/FOGProject/fogproject/commit/aeda5bc536e3eec0200366d6b109a66798abc438, which introduce a dispatch-time _requireAuthorized() gate that denies non-administrators everything except an explicit list of read/task classes and routes, closing the storagenode, storagegroup and service paths. If upgrading immediately is not possible, apply the vendor's own suggested constraints: restrict API access to accounts that genuinely need it (clear uAllowAPI on uType=1 users), rotate the global FOG API token if a low-privileged account has held it, and run FOGImageReplicator under a dedicated least-privileged service account instead of root - accepting that replication then cannot write root-owned image paths until ownership or permissions are adjusted, which is why the vendor frames the code change rather than the service-account change as the complete fix. The advisory also recommends that command construction stop interpolating user-controlled Storage Node fields, that FTP passwords not be passed on the command line, and that editable Storage Node fields be validated and restricted; until that code is deployed, treat every uType=1 holder of an API token as potentially able to obtain root. Advisory: https://github.com/FOGProject/fogproject/security/advisories/GHSA-2hqx-5ffg-w4c3.
Affected VersionsENISA
Affected Packages
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
FOG is a PHP/MySQL imaging and inventory platform whose administrative UI and REST API share a class-based router in packages/web/lib/router/route.class.php. The flaw combines CWE-862 (missing authorization) with CWE-78 (OS command injection): authentication in the API path only proved the credentials were valid and never consulted the user's uType, so any uType=0-vs-uType=1 distinction that the web UI enforced was absent at the API layer, and the storagenode class was reachable by a non-administrator. The stored fields are the second half of the chain - FOGImageReplicator, a systemd service with no User= restriction that therefore runs with UID 0, reads Storage Node records and builds an lftp invocation by string interpolation from user, pass, ftppath and host, launching it via proc_open(); shell metacharacters in those fields therefore execute in root context on the next replication run. The same authorization gap also exposed GET /storagenode/{id}, which returns the FTP password in cleartext, and the service class, which is the globalSettings table. The upstream fix (PR #1001, commits 3098e44 and aeda5bc) adds a deny-by-default dispatch-time gate, _requireAuthorized(), keyed on a new isAdminUser() check plus explicit allowlists ($nonAdminClasses, $nonAdminRoutes) that preserve only the mobile account's intended read-and-task workflow on host, image, group, task and related objects, and deny everything else - including storagenode, storagegroup, service, plugin, ipxe and pxemenuoptions - to non-administrators.
Know when Fogproject 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
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Network API reachable by an authenticated low-privileged user (AV:N/PR:L); injection into Storage Node fields crosses from the web-app authority to OS root via the replicator (S:C), yielding full host C/I/A; vendor scored S:U.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
FOG is a free open-source cloning/imaging/rescue suite/inventory management system. Prior to 1.5.10.2253 and 1.6.0-RC-1, an authenticated API-enabled user with uType=1 who possesses both the user's API token and the global FOG API token can use PUT /fog/storagenode/{id}/edit to modify Storage Node user, pass, and ftppath fields because the API validates the credentials but does not enforce an administrator-only role. With storage replication enabled and a usable Storage Node, FOGImageReplicator interpolates those fields into an lftp command executed through proc_open() by the root-running service, allowing the low-privileged user to execute commands as root. This issue is fixed in versions 1.5.10.2253 and 1.6.0-RC-1.
Technical POC Analysis
Two defects chained, both named in the advisory: CWE-862 (Missing Authorization) in the API, and CWE-78 (OS Command Injection) downstream in the replication service.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A high-severity privilege escalation and remote code execution vulnerability (CVE-2026-116778) in the FOG Project imaging management platform allows low-privileged mobile accounts to gain root-level control of the imaging server. This puts sensitive system images and the integrity of the imaging infrastructure at risk, potentially enabling attackers to compromise downstream endpoints. Leadership should prioritize remediation due to the high impact on confidentiality, integrity, and availability of critical IT provisioning systems.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
More in Fogproject
View allFOG is a free open-source cloning/imaging/rescue suite/inventory management system. Rated critical severity (CVSS 9.9),
FOG is a cloning/imaging/rescue suite/inventory management system. Rated critical severity (CVSS 9.8), this vulnerabilit
FOG is a cloning/imaging/rescue suite/inventory management system. Rated high severity (CVSS 8.8), this vulnerability is
FOGProject v1.5.9 is affected by a File Upload RCE (Authenticated). Rated high severity (CVSS 8.8), this vulnerability i
FOG is a cloning/imaging/rescue suite/inventory management system. Rated high severity (CVSS 8.6), this vulnerability is
FOG is a cloning/imaging/rescue suite/inventory management system. Rated high severity (CVSS 7.8), this vulnerability is
configureNFS in lib/common/functions.sh in FOG through 1.5.10 allows local users to gain privileges by mounting a crafte
FOG is a free open-source cloning/imaging/rescue suite/inventory management system. Rated medium severity (CVSS 5.9), th
FOG is a cloning/imaging/rescue suite/inventory management system. Rated medium severity (CVSS 5.3), this vulnerability
Stored cross-site scripting in FOG Project's inventory reporting pipeline allows an unauthenticated network attacker to
Stored XSS in FOG Project's unauthenticated inventory endpoint allows network-accessible attackers to inject persistent
Missing authorization in FOG Project (fogproject) before 1.5.10.1832 and 1.6.0-beta.2313 lets a remote unauthenticated a
EUVD-2026-112150
NVD
CVE.org
Vulnrichment
GitHub
Exploit-DB