{"id":2512030,"name":"utils-extend","ecosystem":"npm","description":"Extend nodejs util api, and it is light weight and simple","homepage":"https://github.com/douzi8/utils-extend","licenses":"ISC","normalized_licenses":["ISC"],"repository_url":"https://github.com/douzi8/utils-extend","keywords_array":["util","utils","util-extend","extend","underscore","node underscore"],"namespace":null,"versions_count":9,"first_release_published_at":"2014-11-24T07:27:10.623Z","latest_release_published_at":"2015-04-12T04:39:55.496Z","latest_release_number":"1.0.8","last_synced_at":"2026-08-18T09:33:46.411Z","created_at":"2022-04-10T02:50:27.176Z","updated_at":"2026-08-18T11:01:55.195Z","registry_url":"https://www.npmjs.com/package/utils-extend","install_command":"npm install utils-extend","documentation_url":null,"metadata":{"funding":null,"dist-tags":{"latest":"1.0.8"},"contentPolicy":null},"repo_metadata":{"id":23946561,"uuid":"27328182","full_name":"douzi8/utils-extend","owner":"douzi8","description":"Extend nodejs util api, and it is light weight and simple","archived":false,"fork":false,"pushed_at":"2020-10-06T21:18:39.000Z","size":1952,"stargazers_count":2,"open_issues_count":4,"forks_count":13,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-08-07T14:45:34.075Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/douzi8.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-11-30T07:27:51.000Z","updated_at":"2016-06-05T17:48:32.000Z","dependencies_parsed_at":"2022-08-06T00:15:35.150Z","dependency_job_id":null,"html_url":"https://github.com/douzi8/utils-extend","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/douzi8/utils-extend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/douzi8%2Futils-extend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/douzi8%2Futils-extend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/douzi8%2Futils-extend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/douzi8%2Futils-extend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/douzi8","download_url":"https://codeload.github.com/douzi8/utils-extend/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/douzi8%2Futils-extend/sbom","scorecard":{"id":353864,"data":{"date":"2025-08-11","repo":{"name":"github.com/douzi8/utils-extend","commit":"dd35e8b6369da875d6e8fb13b18ccb7b6034fef2"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.6,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Code-Review","score":0,"reason":"Found 0/12 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-18T09:00:11.296Z","repository_id":23946561,"created_at":"2025-08-18T09:00:11.297Z","updated_at":"2025-08-18T09:00:11.297Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36766136,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-18T02:00:06.197Z","response_time":52,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"douzi8","name":"nothing","uuid":"3860758","kind":"user","description":null,"email":"","website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/3860758?v=4","repositories_count":28,"last_synced_at":"2024-04-15T00:54:49.452Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/douzi8","funding_links":[],"total_stars":437,"followers":32,"following":4,"created_at":"2022-11-02T16:31:32.825Z","updated_at":"2024-04-15T00:54:54.049Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/douzi8","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/douzi8/repositories"},"tags":[]},"repo_metadata_updated_at":"2026-08-18T11:01:55.195Z","dependent_packages_count":14,"downloads":164340,"downloads_period":"last-month","dependent_repos_count":15517,"rankings":{"downloads":0.43854594863003804,"dependent_repos_count":0.21219332134979402,"dependent_packages_count":1.5725715875384443,"stargazers_count":14.499955550856692,"forks_count":7.008299793150174,"docker_downloads_count":0.241745615311565,"average":3.995551969472784},"purl":"pkg:npm/utils-extend","advisories":[{"uuid":"GSA_kwCzR0hTQS03cWdnLXZ3ODgtY2M5Oc4ABEK6","url":"https://github.com/advisories/GHSA-7qgg-vw88-cc99","title":"utils-extend Prototype Pollution","description":"The latest version of utils-extend (1.0.8) is vulnerable to Prototype Pollution through the entry function(s) lib.extend. An attacker can supply a payload with Object.prototype setter to introduce or modify properties within the global prototype chain, causing denial of service (DoS) a the minimum consequence.\n\n## PoC\n```js\nasync function exploit() {\n   const utilsextend = require(\\\"utils-extend\\\");\n   const payload = JSON.parse('{\\\"__proto__\\\":{\\\"exploited\\\":true}}');\n   const result = await utilsextend.extend({}, payload);\n}\n\nawait exploit();\n```","origin":"UNSPECIFIED","severity":"CRITICAL","published_at":"2025-02-06T06:31:26.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":9.1,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H","references":["https://nvd.nist.gov/vuln/detail/CVE-2024-57077","https://gist.github.com/tariqhawis/64bac50f8c2706e6880e45d50a507114","https://github.com/advisories/GHSA-7qgg-vw88-cc99"],"source_kind":"github","identifiers":["GHSA-7qgg-vw88-cc99","CVE-2024-57077"],"repository_url":null,"blast_radius":0.0,"created_at":"2025-02-07T00:07:45.345Z","updated_at":"2026-08-11T14:10:53.987Z","epss_percentage":0.00481,"epss_percentile":0.39,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS03cWdnLXZ3ODgtY2M5Oc4ABEK6","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS03cWdnLXZ3ODgtY2M5Oc4ABEK6","packages":[{"ecosystem":"npm","package_name":"utils-extend","versions":[{"first_patched_version":null,"vulnerable_version_range":"\u003c= 1.0.8"}],"purl":"pkg:npm/utils-extend"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS03cWdnLXZ3ODgtY2M5Oc4ABEK6/related_packages","related_advisories":[]},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLTZwcTMtOTI4cS14Nnc2","url":"https://github.com/advisories/GHSA-6pq3-928q-x6w6","title":"Prototype Pollution","description":"All versions of `utils-extend` are vulnerable to prototype pollution. The `extend` function does not restrict the modification of an Object's prototype, which may allow an attacker to add or modify an existing property that will exist on all objects.\n\n## Recommendation\n\nNo fix is currently available. Consider using an alternative package until a fix is made available.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2020-09-03T15:51:28.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2020-8147","https://hackerone.com/reports/801522","https://www.npmjs.com/advisories/1502","https://github.com/advisories/GHSA-6pq3-928q-x6w6"],"source_kind":"github","identifiers":["GHSA-6pq3-928q-x6w6","CVE-2020-8147"],"repository_url":null,"blast_radius":0.0,"created_at":"2022-12-21T16:13:14.261Z","updated_at":"2026-07-21T16:13:00.867Z","epss_percentage":0.03149,"epss_percentile":0.86517,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLTZwcTMtOTI4cS14Nnc2","html_url":"https://advisories.ecosyste.ms/advisories/MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLTZwcTMtOTI4cS14Nnc2","packages":[{"ecosystem":"npm","package_name":"utils-extend","versions":[{"first_patched_version":null,"vulnerable_version_range":"\u003e= 0.0.0"}],"purl":"pkg:npm/utils-extend"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLTZwcTMtOTI4cS14Nnc2/related_packages","related_advisories":[]}],"docker_usage_url":"https://docker.ecosyste.ms/usage/npm/utils-extend","docker_dependents_count":119,"docker_downloads_count":23364708,"usage_url":"https://repos.ecosyste.ms/usage/npm/utils-extend","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/npm/utils-extend/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-04-07T04:11:35.284Z","issues_count":2,"pull_requests_count":6,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":95719437.0,"issues_closed_count":0,"pull_requests_closed_count":3,"pull_request_authors_count":5,"issue_authors_count":2,"avg_comments_per_issue":0.0,"avg_comments_per_pull_request":0.6666666666666666,"merged_pull_requests_count":0,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/douzi8%2Futils-extend/issues","maintainers":[],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/utils-extend/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/utils-extend/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/utils-extend/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/utils-extend/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/utils-extend/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/utils-extend/codemeta","maintainers":[{"uuid":"douzi","login":"douzi","name":null,"email":"liaowei08@gmail.com","url":null,"packages_count":25,"html_url":"https://www.npmjs.com/~douzi","role":null,"created_at":"2022-11-15T06:11:54.533Z","updated_at":"2022-11-15T06:11:54.533Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/maintainers/douzi/packages"}]}