Описание
JavaScript is vulnerable to prototype pollution in Mafintosh's protocol-buffers-schema Version 3.6.0, where an attacker may alter the application logic, bypass security checks, cause a DoS or achieve remote code execution.
A flaw was found in the protocol-buffers-schema JavaScript library. This vulnerability, known as prototype pollution, allows an attacker to inject malicious properties into an object's core definition. This could enable an attacker to change how an application behaves, bypass security measures, or cause the application to stop working (Denial of Service). In specific circumstances, this flaw could potentially lead to an attacker running unauthorized code on the system.
Отчет
Red Hat rates this flaw as Moderate. protocol-buffers-schema is a library and does not run on its own, as such, it requires an application to call it and utilize the vulnerable parsing functionality. When the pollution occurs, that application may read whatever malicious property was injected by the attacker, but then has to make a security-relevant decision (ex. granting access, spawning a process, etc.) and do it without checking whether the property actually belongs to the object or was inherited. As such, the impact of this vulnerability is entirely determined by what else is running in the process that calls the library along with what what permissions and checks it has, making the worst-case scenario of RCE only possible if that process is itself vulnerable.
Меры по смягчению последствий
If using protocol-buffers-schema, perform the following checks to help mitigate the impact of this vulnerability:
- Do not parse
.protofiles from untrusted or semi-trusted sources (ex. user uploads, external repos, third-party APIs, etc.). - Audit downstream code for prototype pollution gadgets (ex. template engines, ORM configs, HTTP frameworks).
- Consider freezing
Object.prototypein security-sensitive contexts as a defense-in-depth measure (ex.Object.freeze(Object.prototype);). If maintaining a parser or config loader: - Never use
reduceor bracket notation to walk user-controlled paths without filtering dangerous keys. - Block
__proto__,constructor, andprototypeexplicitly in any path traversal logic. - Add negative test cases to verify that prototype pollution does not occur.
Затронутые пакеты
| Платформа | Пакет | Состояние | Рекомендация | Релиз |
|---|---|---|---|---|
| Cryostat 4 | grafana-infinity-datasource-npm | Fix deferred | ||
| Red Hat Developer Hub | rhdh/rhdh-hub-rhel9 | Fix deferred | ||
| Red Hat OpenShift AI (RHOAI) | rhoai/odh-mlflow-rhel9 | Fix deferred | ||
| Self-service automation portal 2 | ansible-automation-platform/automation-portal | Fix deferred |
Показывать по
Дополнительная информация
Статус:
EPSS
6.5 Medium
CVSS3
Связанные уязвимости
JavaScript is vulnerable to prototype pollution in Mafintosh's protocol-buffers-schema Version 3.6.0, where an attacker may alter the application logic, bypass security checks, cause a DoS or achieve remote code execution.
Mafintosh's protocol-buffers-schema is vulnerable to prototype pollution
EPSS
6.5 Medium
CVSS3