CVE-2021-23426: Prototype Pollution in Proto

Proto Updated 02 Oct 2025

Summary

02/09/2021
No i
High
7.5

CVE-2021-23426: Prototype Pollution in Proto. Affects Proto versions < 1.1.4. No fix is published. How to fix ↓

Free scan

Check if this vulnerability affects your application

Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.

Check my app free

No signup required · Results in about 60 seconds

Upload your dependency manifest or SBOM

Drag & drop your file here or

Java Javascript PHP Python Go Rust Ruby Dart C/C++ Elixir CycloneDX SPDX

Upload a supported dependency manifest or SBOM. No installation or source-code access required.

See supported files and SBOM formats
SBOM sbom.json · bom.json · bom.xml · *.spdx.json · *.cdx.json · *.cdx.xml
Java pom.xml · gradle.lockfile · buildscript-gradle.lockfile
Javascript package-lock.json · yarn.lock · pnpm-lock.yaml
PHP composer.lock
Python poetry.lock · requirements.txt · Pipfile.lock
Go go.mod
Rust Cargo.lock
Ruby Gemfile.lock
Dart pubspec.lock
C/C++ conan.lock
Elixir mix.lock
Enter your work email to receive your report link.

Verify your email to view the full report and start 30 days of continuous monitoring. No credit card required.

Sponsored MarkAI Find prospects already talking about the problem you solve AI watches the communities your customers use to find qualified prospects, then alerts you when a conversation is worth joining. See MarkAI

Background

Proto is an npm package that is susceptible to a prototype pollution vulnerability. This package provides a merge function that allows objects to be merged together. However, due to a flaw in the implementation, an attacker can exploit this merge function to inject malicious properties into an application's object. This vulnerability affects all versions of the Proto package.

Vulnerability Detail

The vulnerability arises from the merge function in Proto, which can be abused to pollute the object property of an application. By crafting specific input, an attacker can manipulate the merge function to introduce harmful properties into the object, leading to potential security issues. The impact of this vulnerability can range from unauthorized access to sensitive data to remote code execution. The Common Vulnerabilities and Exposures (CVE) identifier for this vulnerability is CVE-2021-23426. The vulnerability has a CVSS score of 7.5, indicating a high severity level.

How To Fix

No fixed version is published for this vulnerability.

Tip — Not sure whether your app is affected? Vulert can check the versions your app actually runs. Scan free →

Workaround

As a temporary workaround, if updating the Proto package is not immediately feasible, developers can manually validate and sanitize the input before using the merge function. By implementing proper input validation and ensuring that only trusted properties are merged, the risk of prototype pollution can be reduced. Here is an example of how to sanitize the input:

const proto = require('Proto');

function sanitizeInput(input) {
  // Validate and sanitize the input object
  // Only merge trusted properties
  // Return the sanitized input
}

const sanitizedInput = sanitizeInput(input);
const mergedObject = proto.merge(sanitizedInput);

Conclusion

In conclusion, the Proto package is vulnerable to a prototype pollution issue that can be exploited to inject malicious properties into an application's object. To mitigate this vulnerability, it is crucial to update the Proto package to version 1.1.5 or later. Additionally, developers can implement input validation and sanitization as a temporary workaround. For further support and assistance in vulnerability remediation, please contact DevNack.com.

See every vulnerability recorded for Proto →

Share this vulnerability

FAQ

Proto is an npm package that provides a merge function for merging objects together.

Prototype pollution is a vulnerability that occurs when an attacker can inject properties into an object's prototype, leading to unexpected behavior and potential security issues.

This vulnerability allows an attacker to inject malicious properties into an application's object, which can lead to unauthorized access, data manipulation, or even remote code execution.

Yes, updating the Proto package to version 1.1.5 or later will fix this vulnerability. The latest release includes proper input validation and sanitization to prevent prototype pollution attacks.

As a temporary workaround, developers can manually validate and sanitize the input before using the merge function. By implementing proper input validation and merging only trusted properties, the risk of prototype pollution can be reduced.

How To Fix

No fixed version is published for this vulnerability.

Tip — Not sure whether your app is affected? Vulert can check the versions your app actually runs. Scan free →

Subscribe to Vulert on Telegram
Daily digest of new CVEs, critical and high severity, affected packages and fixes — plus a weekly roundup.
Join the channel →
Help improve this record
Report an issue or send feedback