| Title | Node.js compromise 14.15.1 Prototype Pollution |
|---|
| Description | compromise version 14.15.1 is affected by a prototype pollution vulnerability through the public root API nlp.extend(plugin). When a plugin object contains a model property, the extension flow recursively merges plugin.model into the internal model. The recursive merge processes attacker-controlled keys without rejecting prototype-pollution primitives such as __proto__, constructor, or prototype.
A crafted plugin model containing __proto__ can cause the merge logic to descend through Object.prototype and assign attacker-controlled properties to the shared prototype. Applications that load or construct Compromise plugins from user-controlled or partially user-controlled input may allow an attacker to pollute Object.prototype, affecting later object property lookups, default options, configuration merging, feature flags, or authorization logic. |
|---|
| Source | ⚠️ https://github.com/spencermountain/compromise/issues/1208 |
|---|
| User | wjm1 (UID 98929) |
|---|
| Submission | 06/11/2026 13:54 (1 month ago) |
|---|
| Moderation | 07/14/2026 07:12 (1 month later) |
|---|
| Status | Accepted |
|---|
| VulDB entry | 378246 [spencermountain compromise up to 14.15.1 Public Root API src/API/extend.js nlp.extend plugin prototype pollution] |
|---|
| Points | 20 |
|---|