CVE-2026-55451
Received Received - Intake

Prototype Pollution in gettext-converter via __proto__

Vulnerability report for CVE-2026-55451, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-09-14

Last updated on: 2026-09-14

Assigner: GitHub, Inc.

Description

gettext-converter provides gettext resource conversion utilities for JavaScript. Prior to 1.3.3, js2i18next() in lib/js2i18next.js splits nested translation keys using options.keyseparator, whose default value consists of two number signs, and uses each segment as a dynamic object key without rejecting __proto__, constructor, or prototype. When an application converts untrusted PO or i18next translation data, a __proto__ segment resolves Object.prototype as the nested write target and Object.assign writes attacker-controlled translated properties onto the process-wide prototype. The resulting prototype pollution can cause denial of service and may enable application-dependent follow-on attacks. This issue is fixed in version 1.3.3.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-09-14
Last Modified
2026-09-14
Generated
2026-09-14
AI Q&A
2026-09-14
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 3 associated CPEs
Vendor Product Version / Range
gettext-converter gettext_converter 1.3.3
locize gettext-converter 1.3.3
locize gettext-converter to 1.3.3 (exc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-1321 The product receives input from an upstream component that specifies attributes that are to be initialized or updated in an object, but it does not properly control modifications of attributes of the object prototype.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability is a prototype pollution issue in the gettext-converter library affecting versions prior to 1.3.3. The js2i18next() function splits translation keys using the default separator ## and uses segments as object keys without sanitizing unsafe values like __proto__. When an attacker crafts a key starting with __proto__, it modifies Object.prototype, allowing arbitrary property injection via Object.assign(). This can disrupt application behavior or enable further attacks.

Detection Guidance

To detect this vulnerability, inspect applications using gettext-converter versions prior to 1.3.3. Check if translation keys contain segments like __proto__, constructor, or prototype. Review logs for Object.prototype modifications or unexpected property assignments.

Impact Analysis

If you use a vulnerable version of gettext-converter to process untrusted translation data, an attacker could pollute Object.prototype. This may cause denial of service by breaking application logic or enable follow-on attacks like property injection, leading to unexpected behavior, crashes, or security bypasses in your application.

Compliance Impact

This vulnerability could indirectly impact compliance with GDPR and HIPAA by enabling prototype pollution attacks that modify global objects. Such attacks may lead to denial of service or unauthorized data access, potentially violating integrity and availability requirements in these regulations. However, the CVE itself does not explicitly address compliance implications.

Mitigation Strategies

Upgrade gettext-converter to version 1.3.3 or later. If upgrading is not possible, sanitize translation keys by rejecting segments like __proto__, constructor, or prototype before processing. Avoid using untrusted translation data.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-55451. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart