Injection js-cookie Dependency in Bitbucket Data Center

XMLWordPrintable

    • 7.5
    • High
    • CVE-2026-46625
    • Atlassian (Internal)
    • CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
    • Injection
    • Bitbucket Data Center

      This High severity Injection vulnerability was introduced in versions 9.4.12, 10.0.1, 10.1.1, 10.2.0, and 10.3.0 of Bitbucket Data Center.

      This Injection vulnerability, with a CVSS Score of 7.5 and a CVSS Vector of CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N allows an unauthenticated attacker to modify the actions taken by a system call which has no impact to confidentiality, high impact to integrity, no impact to availability, and requires no user interaction.

      Atlassian recommends that Bitbucket Data Center customers upgrade to latest version, if you are unable to do so, upgrade your instance to one of the specified supported fixed versions:

      • Bitbucket Data Center 9.4: Upgrade to a release greater than or equal to 9.4.22
      • Bitbucket Data Center 10.2: Upgrade to a release greater than or equal to 10.2.5
      • Bitbucket Data Center 10.3: Upgrade to a release greater than or equal to 10.3.2

      See the release notes (https://confluence.atlassian.com/bitbucketserver/release-notes). You can download the latest version of Bitbucket Data Center from the download center (https://www.atlassian.com/software/bitbucket/download-archives).

      The National Vulnerability Database provides the following description for this vulnerability: JavaScript Cookie is a JavaScript API for handling cookies, client-side. Prior to version 3.0.7, js-cookie's internal assign() helper copies properties with for...in + plain assignment. When the source object is produced by JSON.parse, the JSON object's "_proto" member is an own enumerable property, so the for…in enumerates it and the target[key] = source[key] write triggers the Object.prototype.proto_ setter on the fresh target ({}). The result is a per-instance prototype hijack: Object.prototype itself is untouched, but the merged attributes object now inherits attacker-controlled keys. Because the consuming set() function then enumerates the merged object with another for...in, every key the attacker placed on the polluted prototype lands in the resulting Set-Cookie string as an attribute pair. The attacker can set domain=, secure=, samesite=, expires=, and path= on cookies whose attributes the developer thought were locked down. This issue has been patched in version 3.0.7.

              Assignee:
              Unassigned
              Reporter:
              Security Metrics Bot
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Created:
                Updated:
                Resolved: