Описание
protobufjs compiles protobuf definitions into JavaScript (JS) functions. Prior to 7.5.6 and 8.0.2, protobufjs generated message constructors copied enumerable properties from a provided properties object without filtering the proto key. If an application constructed a message from an attacker-controlled plain object, an own enumerable proto property could alter the prototype of that individual message instance. This vulnerability is fixed in 7.5.6 and 8.0.2.
A flaw was found in protobufjs, a library that compiles protobuf definitions into JavaScript functions. This vulnerability allows an attacker to manipulate the internal structure of message objects. By providing a specially crafted input, an attacker could alter the prototype of individual message instances, potentially leading to unauthorized modification of data or unexpected application behavior, thereby impacting data integrity.
Отчет
This is an Important vulnerability where protobufjs can be exploited for prototype pollution on individual message instances. Applications that construct protobufjs messages from attacker-controlled plain objects, particularly those parsing untrusted JSON input, are susceptible to data integrity issues through manipulation of the object's prototype chain. This does not affect global prototypes but can lead to unexpected application behavior.
Меры по смягчению последствий
To mitigate this issue, applications should avoid directly passing attacker-controlled plain objects to protobufjs message constructors. If processing untrusted JSON input, it is crucial to validate or sanitize object keys and explicitly reject any __proto__ properties before constructing protobuf messages. This operational control prevents the manipulation of message instance prototypes.
Затронутые пакеты
| Платформа | Пакет | Состояние | Рекомендация | Релиз |
|---|---|---|---|---|
| OpenShift Pipelines | openshift-pipelines/pipelines-console-plugin-pf5-rhel9 | Not affected | ||
| OpenShift Pipelines | openshift-pipelines/pipelines-console-plugin-rhel8 | Affected | ||
| OpenShift Pipelines | openshift-pipelines/pipelines-console-plugin-rhel9 | Affected | ||
| OpenShift Service Mesh 3 | openshift-service-mesh/kiali-ossmc-rhel9 | Not affected | ||
| OpenShift Service Mesh 3 | openshift-service-mesh/kiali-rhel9 | Not affected | ||
| Red Hat Ansible Automation Platform 2 | ansible-automation-platform-26/gateway-rhel9 | Not affected | ||
| Red Hat Ansible Automation Platform 2 | ansible-automation-platform-27/gateway-rhel9 | Not affected | ||
| Red Hat Ansible Automation Platform 2 | automation-platform-ui | Not affected | ||
| Red Hat Build of Podman Desktop | rh-podman-desktop.git | Not affected | ||
| Red Hat Ceph Storage 9 | rhceph/alloy-rhel10 | Fix deferred |
Показывать по
Дополнительная информация
Статус:
7.5 High
CVSS3
Связанные уязвимости
protobufjs compiles protobuf definitions into JavaScript (JS) functions. Prior to 7.5.6 and 8.0.2, protobufjs generated message constructors copied enumerable properties from a provided properties object without filtering the __proto__ key. If an application constructed a message from an attacker-controlled plain object, an own enumerable __proto__ property could alter the prototype of that individual message instance. This vulnerability is fixed in 7.5.6 and 8.0.2.
protobufjs compiles protobuf definitions into JavaScript (JS) function ...
protobuf.js: Prototype injection in generated message constructors
Уязвимость библиотеки для работы с протоколом Protocol Buffers (Protobuf) protobufjs, связанная с неконтролируемым изменением атрибутов прототипа объекта, позволяющая нарушителю повысить свои привилегии
7.5 High
CVSS3