{"id":"CVE-2021-21412","aliases":["EUVD-2021-0870","GHSA-rj44-gpjc-29r7"],"status":"published","title":"[thi.ng/egf] Potential arbitrary code execution of `#gpg`-tagged property values","description":"Potential for arbitrary code execution in npm package @thi.ng/egf `#gpg`-tagged property values (only if `decrypt: true` option is enabled). PR with patch has been submitted and will has been released as of v0.4.0 By default the EGF parse functions do NOT attempt to decrypt values (since GPG only available in non-browser env). However, if GPG encrypted values are used/required: 1. Perform a regex search for `#gpg`-tagged values in the EGF source file/string and check for backtick (\\`) chars in the encrypted value string 2. Replace/remove them or skip parsing if present.","severity":{"version":"3.1","score":6.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.01339,"percentile":0.71713,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-78"],"published":"2021-03-30T17:40:15Z","modified":"2026-11-09T10:45:21Z","fixes":[{"ecosystem":"npm","package":"@thi.ng/egf","fixed_in":["0.4.0"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"@thi.ng/egf","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.4.0"}]}]},{"source":"osv","ecosystem":"npm","package":"@thi.ng/egf","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.4.0"}]}]}],"products":[{"vendor":"\\@thi.ng\\/egf_project","product":"\\@thi.ng\\/egf"},{"vendor":"thi-ng","product":"egf"}],"references":[{"url":"https://github.com/thi-ng/umbrella/security/advisories/GHSA-rj44-gpjc-29r7","tags":["x_refsource_CONFIRM","x_transferred","Patch","Third Party Advisory","fix","web"]},{"url":"https://github.com/thi-ng/umbrella/commit/88f61656e5f5cfba960013b8133186389efaf243","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","fix","web"]},{"url":"https://github.com/thi-ng/umbrella/blob/develop/packages/egf/CHANGELOG.md#040-2021-03-27","tags":["x_refsource_MISC","x_transferred","Release Notes","Third Party Advisory","advisory","web"]},{"url":"https://www.npmjs.com/package/%40thi.ng/egf","tags":["x_refsource_MISC","x_transferred","web"]},{"url":"https://www.npmjs.com/package/@thi.ng/egf","tags":["web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-21412","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-rj44-gpjc-29r7"}],"sources":{"cve":[{"id":"CVE-2021-21412","title":"[thi.ng/egf] Potential arbitrary code execution of `#gpg`-tagged property values","description":"Potential for arbitrary code execution in npm package @thi.ng/egf `#gpg`-tagged property values (only if `decrypt: true` option is enabled). PR with patch has been submitted and will has been released as of v0.4.0 By default the EGF parse functions do NOT attempt to decrypt values (since GPG only available in non-browser env). However, if GPG encrypted values are used/required: 1. Perform a regex search for `#gpg`-tagged values in the EGF source file/string and check for backtick (\\`) chars in the encrypted value string 2. Replace/remove them or skip parsing if present.","status":"published","published":"2021-03-30T17:40:15Z","modified":"2024-08-03T18:09:16.142Z","cvss":[{"version":"3.1","score":6.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N","level":"medium","assessor":"cna"}],"cwes":["CWE-78"],"updated_at":"2026-11-02T14:33:00.137099Z"}],"euvd":[{"id":"EUVD-2021-0870","description":"Potential for arbitrary code execution in npm package @thi.ng/egf `#gpg`-tagged property values (only if `decrypt: true` option is enabled). PR with patch has been submitted and will has been released as of v0.4.0 By default the EGF parse functions do NOT attempt to decrypt values (since GPG only available in non-browser env). However, if GPG encrypted values are used/required: 1. Perform a regex search for `#gpg`-tagged values in the EGF source file/string and check for backtick (\\`) chars in the encrypted value string 2. Replace/remove them or skip parsing if present.","status":"published","published":"2021-03-30T17:40:15Z","modified":"2024-08-03T18:09:16Z","cvss":[{"version":"3.1","score":6.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N","level":"medium"}],"updated_at":"2026-11-03T03:25:06.347262Z"}],"ghsa":[{"id":"GHSA-rj44-gpjc-29r7","title":"[thi.ng/egf] Potential arbitrary code execution of `#gpg`-tagged property values","description":"### Impact\n\nPotential for arbitrary code execution in `#gpg`-tagged property values (only if `decrypt: true` option is enabled)\n\n### Patches\n\n[A fix](https://github.com/thi-ng/umbrella/commit/3e14765d6bfd8006742c9e7860bc7d58ae94dfa5) has already been released as v0.4.0\n\n### Workarounds\n\nBy default, EGF parse functions do NOT attempt to decrypt values (since GPG is only available in non-browser env).\n\nHowever, if GPG encrypted values are used/required:\n\n1. Perform a regex search for `#gpg`-tagged values in the EGF source file/string and check for backtick (\\`) chars in the encrypted value string\n2. Replace/remove them or skip parsing if present...\n\n### References\n\nhttps://github.com/thi-ng/umbrella/security/advisories/GHSA-rj44-gpjc-29r7#advisory-comment-65261\n\n### For more information\n\nIf you have any questions or comments about this advisory, please open an issue in the [thi.ng/umbrella repo](https://github.com/thi-ng/umbrella/issues), of which this package is part of.","status":"published","published":"2021-04-06T17:22:41Z","modified":"2023-02-01T05:05:12Z","cvss":[{"version":"3.1","score":6.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N","level":"medium"}],"cwes":["CWE-78"],"updated_at":"2026-11-02T14:36:32.918681Z"}],"nvd":[{"id":"CVE-2021-21412","description":"Potential for arbitrary code execution in npm package @thi.ng/egf `#gpg`-tagged property values (only if `decrypt: true` option is enabled). PR with patch has been submitted and will has been released as of v0.4.0 By default the EGF parse functions do NOT attempt to decrypt values (since GPG only available in non-browser env). However, if GPG encrypted values are used/required: 1. Perform a regex search for `#gpg`-tagged values in the EGF source file/string and check for backtick (\\`) chars in the encrypted value string 2. Replace/remove them or skip parsing if present.","status":"published","published":"2021-03-30T18:15:15.84Z","modified":"2026-06-17T03:35:31.487Z","cvss":[{"version":"3.1","score":6.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N","level":"medium","assessor":"secondary"},{"version":"3.1","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"primary"},{"version":"2.0","score":6.5,"vector":"AV:N/AC:L/Au:S/C:P/I:P/A:P","level":"medium","assessor":"primary"}],"cwes":["CWE-78"],"updated_at":"2026-11-02T14:06:51.197859Z"}],"osv":[{"id":"CVE-2021-21412","description":"Potential for arbitrary code execution in npm package @thi.ng/egf `#gpg`-tagged property values (only if `decrypt: true` option is enabled). PR with patch has been submitted and will has been released as of v0.4.0 By default the EGF parse functions do NOT attempt to decrypt values (since GPG only available in non-browser env). However, if GPG encrypted values are used/required: 1. Perform a regex search for `#gpg`-tagged values in the EGF source file/string and check for backtick (\\`) chars in the encrypted value string 2. Replace/remove them or skip parsing if present.","status":"published","published":"2021-03-30T18:15:15.84Z","modified":"2026-11-09T10:45:21.706788431Z","cvss":[{"version":"3.1","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-09T10:53:57.550641Z"},{"id":"GHSA-rj44-gpjc-29r7","title":"[thi.ng/egf] Potential arbitrary code execution of `#gpg`-tagged property values","description":"### Impact\n\nPotential for arbitrary code execution in `#gpg`-tagged property values (only if `decrypt: true` option is enabled)\n\n### Patches\n\n[A fix](https://github.com/thi-ng/umbrella/commit/3e14765d6bfd8006742c9e7860bc7d58ae94dfa5) has already been released as v0.4.0\n\n### Workarounds\n\nBy default, EGF parse functions do NOT attempt to decrypt values (since GPG is only available in non-browser env).\n\nHowever, if GPG encrypted values are used/required:\n\n1. Perform a regex search for `#gpg`-tagged values in the EGF source file/string and check for backtick (\\`) chars in the encrypted value string\n2. Replace/remove them or skip parsing if present...\n\n### References\n\nhttps://github.com/thi-ng/umbrella/security/advisories/GHSA-rj44-gpjc-29r7#advisory-comment-65261\n\n### For more information\n\nIf you have any questions or comments about this advisory, please open an issue in the [thi.ng/umbrella repo](https://github.com/thi-ng/umbrella/issues), of which this package is part of.","status":"published","published":"2021-04-06T17:22:41Z","modified":"2026-07-08T06:29:39.326519201Z","cvss":[{"version":"3.1","score":6.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N","level":"medium"}],"cwes":["CWE-78"],"updated_at":"2026-11-02T15:46:55.877614Z"}]}}
