{
  "affected": [
    {
      "database_specific": {
        "unresolved_ranges": [
          {
            "events": [
              {
                "introduced": "0"
              },
              {
                "fixed": "3.8.0"
              }
            ]
          },
          {
            "events": [
              {
                "introduced": "0"
              },
              {
                "fixed": "3.8.0"
              }
            ]
          }
        ]
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "476d00078dfb2827d7c9ee0f2392c81b864f7bc5"
            }
          ],
          "repo": "https://github.com/panates/putil-merge",
          "type": "GIT"
        },
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "476d00078dfb2827d7c9ee0f2392c81b864f7bc5"
            }
          ],
          "repo": "https://github.com/panates/putil-merge",
          "type": "GIT"
        }
      ]
    }
  ],
  "details": "This affects the package putil-merge before 3.8.0. The merge() function does not check the values passed into the argument. An attacker can supply a malicious value by adjusting the value to include the constructor property. Note: This vulnerability derives from an incomplete fix in https://security.snyk.io/vuln/SNYK-JS-PUTILMERGE-1317077",
  "id": "CVE-2021-23470",
  "modified": "2026-03-13T21:51:17.596472264Z",
  "published": "2022-02-04T20:15:08.363Z",
  "references": [
    {
      "type": "FIX",
      "url": "https://github.com/panates/putil-merge/commit/476d00078dfb2827d7c9ee0f2392c81b864f7bc5"
    },
    {
      "type": "EVIDENCE",
      "url": "https://snyk.io/vuln/SNYK-JS-PUTILMERGE-2391487"
    }
  ],
  "related": [
    "SNYK-JS-PUTILMERGE-2391487"
  ],
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
      "type": "CVSS_V3"
    }
  ]
}