ZeroHour

CVE-2026-55451

niche

Prototype Pollution in gettext-converter (npm) before 1.3.3

CVSS 4.0
8.3 high
EPSS
Published
()
Modified
AI analysis

gettext-converter, a JavaScript library for converting gettext (PO) and i18next translation resources, contains a prototype pollution flaw (CWE-1321) in the js2i18next() function of lib/js2i18next.js prior to version 1.3.3. The function splits nested translation keys using options.keyseparator (default "##") and writes each segment as a dynamic object key without blocking dangerous names such as __proto__, constructor, or prototype. If an application uses the converter on untrusted PO or i18next data, a key containing a __proto__ segment causes Object.assign to write attacker-controlled translated properties onto Object.prototype, polluting the process-wide prototype. Successful exploitation can cause denial of service and may enable application-dependent follow-on attacks such as logic bypasses or further code execution paths. The issue is fixed in version 1.3.3; no public proof of concept is known, it is not in CISA's KEV catalog, and no exploitation has been observed in the wild.

What to do: Upgrade gettext-converter to version 1.3.3 or later in all projects and CI pipelines that depend on it. Until patched, never run the converter on PO or i18next files from untrusted sources, and pre-filter translation keys to reject __proto__, constructor, and prototype segments. Review any services that process user-supplied translation data for signs of prototype-pollution-induced crashes or unexpected behavior.

Affected
gettext-converter project (npm) gettext-converterall versions prior to 1.3.3 (< 1.3.3)
Estimated exposure
nicheunknown (likely a small number of downstream npm projects, mostly build-time usage) — No install or download counts were provided; gettext-converter is a niche npm conversion utility typically run in localization/build pipelines, so runtime exposure is limited to applications that convert untrusted translation files at…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

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.

Weakness
CWE-1321
Vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news

No ingested article mentions this CVE yet.