Skip to content
Heist/ feed
Back to feed
High

IDURAR ERP CRM through 4.1.1 Account Takeover via Unverified Identifier on Password Update

Type: advisorySources: OSV

IDURAR ERP CRM changes the password of whichever account a request names rather than the account making the request. The update handler in backend/src/controllers/middlewaresControllers/createUserController/updatePassword.js resolves the authenticated user from the request that the token middleware populated, then issues its update against a filter built from the identifier in the URL path, and never compares the two. The route is mounted behind the administrator token check only, so any valid administrator session is sufficient, and the sole ownership-like guard in the handler rejects a single hardcoded demo address. A caller can therefore set an arbitrary password on any other administrator account and sign in as it. The read handler in the same controller directory accepts an identifier the same way, which supplies the identifiers needed to pick a target.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-81031
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 09:54 UTC · Revision 1

Source evidence

IDURAR ERP CRM through 4.1.1 Account Takeover via Unverified Identifier on Password Update

core-osv · Original source

Published 26 Aug 2026, 15:44 UTC

IDURAR ERP CRM changes the password of whichever account a request names rather than the account making the request. The update handler in backend/src/controllers/middlewaresControllers/createUserController/updatePassword.js resolves the authenticated user from the request that the token middleware populated, then issues its update against a filter built from the identifier in the URL path, and never compares the two. The route is mounted behind the administrator token check only, so any valid administrator session is sufficient, and the sole ownership-like guard in the handler rejects a single hardcoded demo address. A caller can therefore set an arbitrary password on any other administrator account and sign in as it. The read handler in the same controller directory accepts an identifier the same way, which supplies the identifiers needed to pick a target.

osv:CVE-2026-81031
Complete source record
{
  "id": "1580bf96b9c573fc12c7f4f7ec649170e6e1c07dcdfd74d3e272ca45136367e8",
  "url": "https://osv.dev/vulnerability/CVE-2026-81031",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "IDURAR ERP CRM through 4.1.1 Account Takeover via Unverified Identifier on Password Update",
    "summary": "IDURAR ERP CRM changes the password of whichever account a request names rather than the account making the request. The update handler in backend/src/controllers/middlewaresControllers/createUserController/updatePassword.js resolves the authenticated user from the request that the token middleware populated, then issues its update against a filter built from the identifier in the URL path, and never compares the two. The route is mounted behind the administrator token check only, so any valid administrator session is sufficient, and the sole ownership-like guard in the handler rejects a single hardcoded demo address. A caller can therefore set an arbitrary password on any other administrator account and sign in as it. The read handler in the same controller directory accepts an identifier the same way, which supplies the identifiers needed to pick a target.",
    "evidence": "osv:CVE-2026-81031",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-81031",
      "aliases": [
        "CVE-2026-81031"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/idurar/idurar-erp-crm",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "last_affected": "82ff5d1bcb8aa5a3feda5e7f94d71ba00d3a1a50"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "last_affected": "4.1.1"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StandardRange"
                  }
                ]
              }
            }
          ],
          "versions": [
            "4.1.1",
            "4.1.0",
            "4.0.0-beta.3",
            "4.0.0-beta.2",
            "4.0.0-beta.1",
            "3.1.4",
            "3.1.3",
            "3.1.2",
            "3.1.1",
            "3.1.0",
            "3.0.1",
            "3.0.0",
            "3.0.0-beta.11",
            "3.0.0-beta.10",
            "3.0.0-beta.9",
            "3.0.0-beta.8",
            "3.0.0-beta.7",
            "3.0.0-beta.6",
            "3.0.0-beta.5",
            "3.0.0-beta.4",
            "3.0.0-beta.3",
            "3.0.0-beta.1",
            "3.0.0-beta.2",
            "3.0.0.beta",
            "2.1.0",
            "2.0.1",
            "2.0.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-81031.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:27.863955186Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/81xxx/CVE-2026-81031.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-81031",
        "https://www.vulncheck.com/advisories/idurar-erp-crm-through-4.1.1-account-takeover-via-unverified-identifier-on-password-update",
        "https://github.com/idurar/idurar-erp-crm/issues/1470",
        "https://github.com/idurar/idurar-erp-crm",
        "https://github.com/idurar/idurar-erp-crm/blob/4.1.0/backend/src/controllers/middlewaresControllers/createUserController/updatePassword.js"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-639"
        ],
        "cna_assigner": "VulnCheck",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/81xxx/CVE-2026-81031.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-81031",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 494348,
  "published_at": "2026-08-26T15:44:59.362+00:00"
}