CVE-2026-120730 PUBLISHED

Mass assignment of organization, product and deployment group IDs allows users to write into other organizations and receive their firmware

Assigner: EEF
Reserved: 03.11.2026 Published: 10.11.2026 Updated: 10.11.2026

Improperly Controlled Modification of Dynamically-Determined Object Attributes vulnerability in the device API, device forms, signing key and product forms and JITP settings in nerves-hub nerves_hub_web allows an authenticated user who manages devices in any organization to write into other organizations via submitted org_id, product_id and deployment_id fields. The device API create and update actions and the dashboard device forms pass the request parameters to NervesHub.Devices.Device.changeset/2, which casts the organization, product, deployment group and update state as given. The signing key and product forms merge the session's organization into the submitted parameters so that a submitted org_id wins, and the JITP changeset accepts any product_id. Each request requires the manage role only in the user's own organization, and any account can create one.

A device placed on another organization's deployment group, or moved into its product, is sent that organization's firmware with a download URL. The user cannot change or control devices that already belong to the other organization, and cannot upload firmware to it.

This issue affects nerves_hub: from 1.0.0 before 2.5.3.

Metrics

CVSS Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
CVSS Score: 8.6

Product Status

Vendor nerves-hub
Product nerves_hub_web
Versions Default: unaffected
  • affected from 1.0.0 to 2.5.3 (excl.)
Vendor nerves-hub
Product nerves_hub_web
Versions Default: unaffected
  • affected from 1.0.0 to 2.5.3 (excl.)
Vendor nerves-hub
Product nerves_hub_web
Versions Default: unaffected
  • affected from f58d58233dbd355c58d3a140107ece18e8863f14 to c367d7d17d07f843e78a70d15904665616dde964 (excl.)

Solutions

The fixed release's migration takes every device off a deployment group that belongs to a different product and logs each one. Upgrading undoes nothing else done this way. After upgrading, check the database for devices whose organization does not own their product, for signing keys in org_keys whose created_by_id has never been a member of the key's organization, and for certificate authorities whose JITP product belongs to another organization, and remove what you do not recognize. A device moved wholly into another organization, and a product added to one, leave nothing that sets them apart, so review your organization's devices and products as well.

Credits

  • Josh Kalderimis finder
  • Josh Kalderimis reporter
  • Josh Kalderimis remediation developer
  • Jonatan Männchen / EEF coordinator

References

Problem Types

  • CWE-639 Authorization Bypass Through User-Controlled Key CWE
  • CWE-915 Improperly Controlled Modification of Dynamically-Determined Object Attributes CWE

Impacts

  • Any user who manages devices in an organization of their own can attach their device to another organization's deployment group and receive its firmware, move devices into that organization's product, add firmware signing keys and products to it, and have a certificate authority provision devices into its product. Devices that already belong to the other organization are not controlled, and no firmware can be uploaded to it.