Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution') Affecting gitlab-rails-ce-fips-19.1 package, versions <19.1.1-r1


Severity

Recommended
low

Based on default assessment until relevant scores are available.

Threat Intelligence

EPSS
0.4% (32nd percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk IDSNYK-CHAINGUARDLATEST-GITLABRAILSCEFIPS191-17707195
  • published30 Jun 2026
  • disclosed6 Apr 2026

Introduced: 6 Apr 2026

CVE-2026-35209  (opens in a new tab)
CWE-1321  (opens in a new tab)

How to fix?

Upgrade Chainguard gitlab-rails-ce-fips-19.1 to version 19.1.1-r1 or higher.

NVD Description

Note: Versions mentioned in the description apply only to the upstream gitlab-rails-ce-fips-19.1 package and not the gitlab-rails-ce-fips-19.1 package as distributed by Chainguard. See How to fix? for Chainguard relevant fixed versions and status.

defu is software that allows uers to assign default properties recursively. Prior to version 6.1.5, applications that pass unsanitized user input (e.g. parsed JSON request bodies, database records, or config files from untrusted sources) as the first argument to defu() are vulnerable to prototype pollution. A crafted payload containing a __proto__ key can override intended default values in the merged resul. The internal _defu function used Object.assign({}, defaults) to copy the defaults object. Object.assign invokes the __proto__ setter, which replaces the resulting object's [[Prototype]] with attacker-controlled values. Properties inherited from the polluted prototype then bypass the existing __proto__ key guard in the for...in loop and land in the final result. Version 6.1.5 replaces Object.assign({}, defaults) with object spread ({ ...defaults }), which uses [[DefineOwnProperty]] and does not invoke the __proto__ setter.