CVE-2025-54803: Js toml Js-toml Prototype Pollution Vulnerability Vulnerability

HIGH
Advisory Identifier: GHSA-65fc-cr5f-v7r2
CWE-1321
Published
Advisory Summary

CVE-2025-54803 is a HIGH js-toml prototype pollution vulnerability vulnerability (CWE-1321: Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution')) affecting Js toml libraries in the npm ecosystem. The issue involves js-toml prototype pollution vulnerability. Remediation is available by upgrading affected packages to version 1.0.2.

CVE-2025-54803 at a Glance

CVE Identifier CVE-2025-54803
GHSA Identifier GHSA-65fc-cr5f-v7r2
Severity HIGH
CVSS v3.1 Base Score N/A
CWE Classification CWE-1321: Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution')
Affected Product Js toml
Package Ecosystem npm
Published Date
Last Updated

How to Fix CVE-2025-54803

To remediate this vulnerability, upgrade all affected Js toml dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

js-toml fixed: 1.0.2
npm install js-toml@1.0.2
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

npm ls js-toml

How to Check if You Are Affected

To determine whether your Node.js application is affected by CVE-2025-54803, inspect your project dependencies using npm:

npm ls js-toml

Analyze the terminal output to locate any version of Js toml in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 1.0.2), your application is affected.

Note: The npm ls js-toml command inspects dependencies declared in your package.json and lockfile; it does not perform automated runtime dynamic scanning.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-1321: Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution'), where 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. In Js toml, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

A prototype pollution vulnerability in `js-toml` allows a remote attacker to add or modify properties of the global `Object.prototype` by parsing a maliciously crafted TOML input. ### Impact The `js-toml` library is vulnerable to Prototype Pollution. When parsing a TOML string containing the specially crafted key `__proto__`, an attacker can add or modify properties on the global `Object.prototype`. While the `js-toml` library itself does not contain known vulnerable "gadgets", this can lead to severe security vulnerabilities in applications that use the library. For example, if the consuming application checks for the existence of a property for authorization purposes (e.g., `user.isAdmin`), this vulnerability could be escalated to an authentication bypass. Other potential impacts in the application include Denial of Service (DoS) or, in some cases, Remote Code Execution (RCE), depending on the application's logic and dependencies. Any application that uses an affected version of `js-toml` to parse untrusted input is vulnerable. The severity of the impact, ranging from unexpected behavior to a full security compromise, is dependent on the application's specific code and its handling of object properties. ### Patches This vulnerability has been patched in version `1.0.2`. All users are advised to upgrade to version `1.0.2` or later to mitigate this issue. Users of all prior versions are affected. ### Workarounds If you are unable to upgrade to a patched version, the only mitigation is to ensure that any TOML input being passed to the `js-toml` library is from a fully trusted source and has been validated to not contain malicious keys. ### References - This vulnerability was discovered and responsibly disclosed by [siunam](https://github.com/siunam321). * The Proof-of-Concept can be found at this Gist: https://gist.github.com/siunam321/f3dc4d21a5a932c67b6c11d0026f5afc - For more information on Prototype Pollution, see PortSwigger's explanation: https://portswigger.net/web-security/prototype-pollution

CVE-2025-54803 Affected Js toml Versions

1 component(s)
Fixed Versions:
1.0.2
Product / Package Ecosystem Affected Versions Fixed Version
js-toml
npm
< 1.0.2
1.0.2

References

Frequently Asked Questions

What is CVE-2025-54803?
CVE-2025-54803 is a security vulnerability in Js toml involving js-toml Prototype Pollution Vulnerability under CWE-1321: Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution').
Which Js toml versions are affected?
Affected versions include releases prior to 1.0.2 across affected packages: js-toml.
What version fixes CVE-2025-54803?
Upgrading to 1.0.2 (or the latest patched release for your respective branch) resolves the vulnerability.
Is js-toml affected?
Yes, js-toml is affected in releases prior to 1.0.2. Upgrade your dependency to 1.0.2 or later.
What CWE is associated with CVE-2025-54803?
CVE-2025-54803 is classified under CWE-1321: Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution') (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.).
How can I check npm dependencies for CVE-2025-54803?
Run the dependency tree command: 'npm ls js-toml'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-65fc-cr5f-v7r2",
  "modified" : "2025-08-05T17:11:05Z",
  "published" : "2025-08-04T16:07:05Z",
  "aliases" : [ "CVE-2025-54803" ],
  "summary" : "js-toml Prototype Pollution Vulnerability",
  "details" : "A prototype pollution vulnerability in `js-toml` allows a remote attacker to add or modify properties of the global `Object.prototype` by parsing a maliciously crafted TOML input.\n\n### Impact\n\nThe `js-toml` library is vulnerable to Prototype Pollution. When parsing a TOML string containing the specially crafted key `__proto__`, an attacker can add or modify properties on the global `Object.prototype`.\n\nWhile the `js-toml` library itself does not contain known vulnerable \"gadgets\", this can lead to severe security vulnerabilities in applications that use the library. For example, if the consuming application checks for the existence of a property for authorization purposes (e.g., `user.isAdmin`), this vulnerability could be escalated to an authentication bypass. Other potential impacts in the application include Denial of Service (DoS) or, in some cases, Remote Code Execution (RCE), depending on the application's logic and dependencies.\n\nAny application that uses an affected version of `js-toml` to parse untrusted input is vulnerable. The severity of the impact, ranging from unexpected behavior to a full security compromise, is dependent on the application's specific code and its handling of object properties.\n\n### Patches\n\nThis vulnerability has been patched in version `1.0.2`.\n\nAll users are advised to upgrade to version `1.0.2` or later to mitigate this issue. Users of all prior versions are affected.\n\n### Workarounds\n\nIf you are unable to upgrade to a patched version, the only mitigation is to ensure that any TOML input being passed to the `js-toml` library is from a fully trusted source and has been validated to not contain malicious keys.\n\n### References\n\n- This vulnerability was discovered and responsibly disclosed by [siunam](https://github.com/siunam321).\n\n* The Proof-of-Concept can be found at this Gist: https://gist.github.com/siunam321/f3dc4d21a5a932c67b6c11d0026f5afc\n\n- For more information on Prototype Pollution, see PortSwigger's explanation: https://portswigger.net/web-security/prototype-pollution",
  "severity" : [ {
    "type" : "CVSS_V4",
    "score" : "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:H/SI:H/SA:H"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "npm",
      "name" : "js-toml"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "fixed" : "1.0.2"
      } ]
    } ]
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/sunnyadn/js-toml/security/advisories/GHSA-65fc-cr5f-v7r2"
  }, {
    "type" : "ADVISORY",
    "url" : "https://nvd.nist.gov/vuln/detail/CVE-2025-54803"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/sunnyadn/js-toml/commit/b125910a3f094b744c9c3571360d4b9e3a472f66"
  }, {
    "type" : "WEB",
    "url" : "https://gist.github.com/siunam321/f3dc4d21a5a932c67b6c11d0026f5afc"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/sunnyadn/js-toml"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-1321" ],
    "severity" : "HIGH",
    "github_reviewed" : true,
    "github_reviewed_at" : "2025-08-04T16:07:05Z",
    "nvd_published_at" : "2025-08-05T01:15:42Z"
  }
}