{"id":"GHSA-2cp6-34r9-54xx","summary":"Maker.js has Unsafe Property Copying in makerjs.extendObject","details":"### Summary\nThe `makerjs.extendObject` function copies properties from source objects without proper validation, potentially exposing applications to security risks. The function lacks `hasOwnProperty()` checks and does not filter dangerous keys, allowing inherited properties and potentially malicious properties to be copied to target objects.\n\n### Details\nThe `extendObject` function iterates over source object properties using a `for...in` loop without:\n1. Checking `hasOwnProperty()` to exclude inherited properties\n2. Filtering dangerous keys (`__proto__`, `constructor`, `prototype`)\n3. Validating property sources\n\n### Affected Code\n\n**File**: https://github.com/microsoft/maker.js/blob/98cffa82a372ff942194c925a12a311253587167/packages/maker.js/src/core/maker.ts#L232-L241\n\n\n\n### PoC\n```javascript\nconst makerjs = require('makerjs');\n\nconst source = { __proto__: { name: 'Ravi', isAdmin: true } };\nconst target = { name: 'user' };\nconst result = makerjs.extendObject(target, source);\n\nconsole.log(result.name);  // Ravi\nconsole.log(result.isAdmin);   // true\n```\n\n\n### Impact\n### Security Implications\n\n1. **Unexpected Behavior**: Properties may appear on target objects but not be own properties, breaking `hasOwnProperty()` assumptions in security-sensitive code.\n\n2. **Security Bypass Risk**: Code relying on `hasOwnProperty()` for validation could be bypassed.\n\n3. **Future Risk**: Lack of dangerous key filtering (`__proto__`, `constructor`, `prototype`) exposes potential attack vectors.\n\n### Affected Use Cases\n\n- Extending objects from user input or external APIs\n- Merging options from untrusted sources","aliases":["CVE-2026-24888"],"modified":"2026-02-03T03:03:44.424427Z","published":"2026-01-29T15:18:33Z","database_specific":{"github_reviewed_at":"2026-01-29T15:18:33Z","nvd_published_at":"2026-01-28T22:15:56Z","cwe_ids":["CWE-1321"],"severity":"MODERATE","github_reviewed":true},"references":[{"type":"WEB","url":"https://github.com/microsoft/maker.js/security/advisories/GHSA-2cp6-34r9-54xx"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-24888"},{"type":"WEB","url":"https://github.com/microsoft/maker.js/commit/85e0f12bd868974b891601a141974f929dec36b8"},{"type":"PACKAGE","url":"https://github.com/microsoft/maker.js"},{"type":"WEB","url":"https://github.com/microsoft/maker.js/blob/98cffa82a372ff942194c925a12a311253587167/packages/maker.js/src/core/maker.ts#L232-L241"}],"affected":[{"package":{"name":"makerjs","ecosystem":"npm","purl":"pkg:npm/makerjs"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.19.2"}]}],"database_specific":{"last_known_affected_version_range":"\u003c= 0.19.1","source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/01/GHSA-2cp6-34r9-54xx/GHSA-2cp6-34r9-54xx.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"}]}