Search

Find a vulnerability

Search criteria

    2 vulnerabilities by sinamics

    CVE-2026-62967 (GCVE-0-2026-62967)

    Vulnerability from nvd – Published: 2026-10-30 20:54 – Updated: 2026-11-05 02:52
    VLAI
    Title
    ZTNET privilege bypass: any user can deactivate arbitrary accounts via /api/auth/user/invalidateUser
    Summary
    ZTNET is a ZeroTier web UI for private controllers with multiuser and organization support. Prior to 0.8.0, any authenticated low-privilege user can permanently deactivate another account, including an administrator, through `POST /api/auth/user/invalidateUser`. In `src/pages/api/auth/user/invalidateUser.ts`, `getServerSession` checks only that a session exists and does not compare `session.user.id` with the client-supplied `userId`. Supplying a victim's `userId` and a `deviceId` for which no matching pair exists in `UserDevice` makes the handler set the target account's `isActive` to false. Login is then refused by `src/server/auth.ts` with `account-expired`. An attacker needs only a normal authenticated account and the victim's user ID, which may be obtainable from member lists, UI responses, logs, or other application metadata. This can lock administrators out, disrupt organization management, and deny access to any targeted user. This issue is fixed in version 0.8.0.
    SSVC
    Exploitation: poc Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-11-05 02:51 UTC
    CWE
    Assigner
    GitHub_M CNA under the mitre root
    CNA scorecard C 72/100 over 7889 records in the last 180 days details
    Impacted products
    Vendor Product Version
    sinamics ztnet Affected: < 0.8.0
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-62967",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-11-05T02:51:41.328149Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-11-05T02:52:07.605Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/sinamics/ztnet/security/advisories/GHSA-vqfc-cmp9-c33q"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "product": "ztnet",
              "vendor": "sinamics",
              "versions": [
                {
                  "status": "affected",
                  "version": "\u003c 0.8.0"
                }
              ]
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "value": "ZTNET is a ZeroTier web UI for private controllers with multiuser and organization support. Prior to 0.8.0, any authenticated low-privilege user can permanently deactivate another account, including an administrator, through `POST /api/auth/user/invalidateUser`. In `src/pages/api/auth/user/invalidateUser.ts`, `getServerSession` checks only that a session exists and does not compare `session.user.id` with the client-supplied `userId`. Supplying a victim\u0027s `userId` and a `deviceId` for which no matching pair exists in `UserDevice` makes the handler set the target account\u0027s `isActive` to false. Login is then refused by `src/server/auth.ts` with `account-expired`. An attacker needs only a normal authenticated account and the victim\u0027s user ID, which may be obtainable from member lists, UI responses, logs, or other application metadata. This can lock administrators out, disrupt organization management, and deny access to any targeted user. This issue is fixed in version 0.8.0."
            }
          ],
          "metrics": [
            {
              "cvssV3_1": {
                "attackComplexity": "LOW",
                "attackVector": "NETWORK",
                "availabilityImpact": "HIGH",
                "baseScore": 8.1,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "NONE",
                "integrityImpact": "HIGH",
                "privilegesRequired": "LOW",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H",
                "version": "3.1"
              }
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-862",
                  "description": "CWE-862: Missing Authorization",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-10-30T20:54:52.378Z",
            "orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
            "shortName": "GitHub_M"
          },
          "references": [
            {
              "name": "https://github.com/sinamics/ztnet/security/advisories/GHSA-vqfc-cmp9-c33q",
              "tags": [
                "x_refsource_CONFIRM"
              ],
              "url": "https://github.com/sinamics/ztnet/security/advisories/GHSA-vqfc-cmp9-c33q"
            },
            {
              "name": "https://github.com/sinamics/ztnet/pull/941",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/sinamics/ztnet/pull/941"
            },
            {
              "name": "https://github.com/sinamics/ztnet/commit/7966af6e62aa5778d3a698cee97053fdcb07d742",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/sinamics/ztnet/commit/7966af6e62aa5778d3a698cee97053fdcb07d742"
            },
            {
              "name": "https://github.com/sinamics/ztnet/releases/tag/v0.8.0",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/sinamics/ztnet/releases/tag/v0.8.0"
            }
          ],
          "source": {
            "advisory": "GHSA-vqfc-cmp9-c33q",
            "discovery": "UNKNOWN"
          },
          "title": "ZTNET privilege bypass: any user can deactivate arbitrary accounts via /api/auth/user/invalidateUser"
        }
      },
      "cveMetadata": {
        "assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
        "assignerShortName": "GitHub_M",
        "cveId": "CVE-2026-62967",
        "datePublished": "2026-10-30T20:54:52.378Z",
        "dateReserved": "2026-07-14T22:48:09.780Z",
        "dateUpdated": "2026-11-05T02:52:07.605Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-62967 (GCVE-0-2026-62967)

    Vulnerability from cvelistv5 – Published: 2026-10-30 20:54 – Updated: 2026-11-05 02:52
    VLAI
    Title
    ZTNET privilege bypass: any user can deactivate arbitrary accounts via /api/auth/user/invalidateUser
    Summary
    ZTNET is a ZeroTier web UI for private controllers with multiuser and organization support. Prior to 0.8.0, any authenticated low-privilege user can permanently deactivate another account, including an administrator, through `POST /api/auth/user/invalidateUser`. In `src/pages/api/auth/user/invalidateUser.ts`, `getServerSession` checks only that a session exists and does not compare `session.user.id` with the client-supplied `userId`. Supplying a victim's `userId` and a `deviceId` for which no matching pair exists in `UserDevice` makes the handler set the target account's `isActive` to false. Login is then refused by `src/server/auth.ts` with `account-expired`. An attacker needs only a normal authenticated account and the victim's user ID, which may be obtainable from member lists, UI responses, logs, or other application metadata. This can lock administrators out, disrupt organization management, and deny access to any targeted user. This issue is fixed in version 0.8.0.
    SSVC
    Exploitation: poc Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-11-05 02:51 UTC
    CWE
    Assigner
    GitHub_M CNA under the mitre root
    CNA scorecard C 72/100 over 7889 records in the last 180 days details
    Impacted products
    Vendor Product Version
    sinamics ztnet Affected: < 0.8.0
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-62967",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-11-05T02:51:41.328149Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-11-05T02:52:07.605Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/sinamics/ztnet/security/advisories/GHSA-vqfc-cmp9-c33q"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "product": "ztnet",
              "vendor": "sinamics",
              "versions": [
                {
                  "status": "affected",
                  "version": "\u003c 0.8.0"
                }
              ]
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "value": "ZTNET is a ZeroTier web UI for private controllers with multiuser and organization support. Prior to 0.8.0, any authenticated low-privilege user can permanently deactivate another account, including an administrator, through `POST /api/auth/user/invalidateUser`. In `src/pages/api/auth/user/invalidateUser.ts`, `getServerSession` checks only that a session exists and does not compare `session.user.id` with the client-supplied `userId`. Supplying a victim\u0027s `userId` and a `deviceId` for which no matching pair exists in `UserDevice` makes the handler set the target account\u0027s `isActive` to false. Login is then refused by `src/server/auth.ts` with `account-expired`. An attacker needs only a normal authenticated account and the victim\u0027s user ID, which may be obtainable from member lists, UI responses, logs, or other application metadata. This can lock administrators out, disrupt organization management, and deny access to any targeted user. This issue is fixed in version 0.8.0."
            }
          ],
          "metrics": [
            {
              "cvssV3_1": {
                "attackComplexity": "LOW",
                "attackVector": "NETWORK",
                "availabilityImpact": "HIGH",
                "baseScore": 8.1,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "NONE",
                "integrityImpact": "HIGH",
                "privilegesRequired": "LOW",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H",
                "version": "3.1"
              }
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-862",
                  "description": "CWE-862: Missing Authorization",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-10-30T20:54:52.378Z",
            "orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
            "shortName": "GitHub_M"
          },
          "references": [
            {
              "name": "https://github.com/sinamics/ztnet/security/advisories/GHSA-vqfc-cmp9-c33q",
              "tags": [
                "x_refsource_CONFIRM"
              ],
              "url": "https://github.com/sinamics/ztnet/security/advisories/GHSA-vqfc-cmp9-c33q"
            },
            {
              "name": "https://github.com/sinamics/ztnet/pull/941",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/sinamics/ztnet/pull/941"
            },
            {
              "name": "https://github.com/sinamics/ztnet/commit/7966af6e62aa5778d3a698cee97053fdcb07d742",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/sinamics/ztnet/commit/7966af6e62aa5778d3a698cee97053fdcb07d742"
            },
            {
              "name": "https://github.com/sinamics/ztnet/releases/tag/v0.8.0",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/sinamics/ztnet/releases/tag/v0.8.0"
            }
          ],
          "source": {
            "advisory": "GHSA-vqfc-cmp9-c33q",
            "discovery": "UNKNOWN"
          },
          "title": "ZTNET privilege bypass: any user can deactivate arbitrary accounts via /api/auth/user/invalidateUser"
        }
      },
      "cveMetadata": {
        "assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
        "assignerShortName": "GitHub_M",
        "cveId": "CVE-2026-62967",
        "datePublished": "2026-10-30T20:54:52.378Z",
        "dateReserved": "2026-07-14T22:48:09.780Z",
        "dateUpdated": "2026-11-05T02:52:07.605Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }