{"id":"EUVD-2025-203110","revision":null,"records":[{"revision":"5da08d39c1ef48a6ac62db0c8fda959e","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2025-67750","aliases":[],"title":"Lightning Flow Scanner is Vulnerable to Code Injection via Unsafe Use of new Function() in APIVersion Rule","description":"Lightning Flow Scanner provides a A CLI plugin, VS Code Extension and GitHub Action for analysis and optimization of Salesforce Flows. Versions 6.10.5 and below allow a maliciously crafted flow metadata file to cause arbitrary JavaScript execution during scanning. The APIVersion rule uses new Function() to evaluate expression strings, enabling an attacker to supply a malicious expression within rule configuration or crafted flow metadata. This could compromise developer machines, CI runners, or editor environments. This issue is fixed in version 6.10.6.","state":0,"publishedAt":"2025-12-12T20:14:21.004+00:00","modifiedAt":"2025-12-12T20:50:57.161+00:00","affected":[{"ecosystem":"Vendor product","name":"lightning-flow-scanner","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"vendor\": \"Flow-Scanner\",\n                    \"product\": \"lightning-flow-scanner\",\n                    \"versions\": [\n                        {\n                            \"version\": \"< 6.10.6\",\n                            \"status\": \"affected\"\n                        }\n                    ]\n                }"}],"metrics":[{"system":"CVSS 3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","score":8.4,"severity":"HIGH"}],"references":["https://github.com/Flow-Scanner/lightning-flow-scanner/security/advisories/GHSA-55jh-84jv-8mx8","https://github.com/Flow-Scanner/lightning-flow-scanner/commit/10f64a5eb193d8a777e453b25e910144e4540795","https://github.com/Flow-Scanner/lightning-flow-scanner/releases/tag/core-v6.10.6"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2025-67750","license":"CVE Program Terms of Use","key":"cve-program:CVE-2025-67750","identifiers":["CVE-2025-67750"]},"retained":false,"historicalAffected":[]},{"revision":"bc164c5756564c96be26fe1c3d7aa9a9","observedAt":"2026-11-09T06:02:55.224+00:00","statement":{"source":"euvd","id":"EUVD-2025-203110","aliases":["CVE-2025-67750","GHSA-55jh-84jv-8mx8"],"title":"Lightning Flow Scanner provides a A CLI plugin, VS Code Extension and GitHub Action for analysis and optimization of Salesforce Flows. Versions 6.10.5 and below allow a maliciously crafted flow metadata file to cause arbitrary JavaScript ex…","description":"Lightning Flow Scanner provides a A CLI plugin, VS Code Extension and GitHub Action for analysis and optimization of Salesforce Flows. Versions 6.10.5 and below allow a maliciously crafted flow metadata file to cause arbitrary JavaScript execution during scanning. The APIVersion rule uses new Function() to evaluate expression strings, enabling an attacker to supply a malicious expression within rule configuration or crafted flow metadata. This could compromise developer machines, CI runners, or editor environments. This issue is fixed in version 6.10.6.","state":0,"publishedAt":null,"modifiedAt":null,"affected":[],"metrics":[{"system":"EUVD CVSS 3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","score":8.4,"severity":null}],"references":["https://github.com/Flow-Scanner/lightning-flow-scanner/security/advisories/GHSA-55jh-84jv-8mx8","https://github.com/Flow-Scanner/lightning-flow-scanner/commit/10f64a5eb193d8a777e453b25e910144e4540795","https://github.com/Flow-Scanner/lightning-flow-scanner/releases/tag/core-v6.10.6"],"sourceUrl":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2025-203110","license":"ENISA EUVD · source terms and attribution apply","enrichment":{"sourceStatus":null,"weaknesses":[],"productCriteria":[],"sourceDates":{"datePublished":"Dec 12, 2025, 8:14:21 PM","dateUpdated":"Dec 12, 2025, 8:50:57 PM"},"relatedAdvisories":[],"note":"EUVD source date text has no stated timezone and is retained without inventing a UTC instant. Related bulletin membership is not an alias, common cause or applicability claim. A missing vector with a zero score is treated as unrated. Complete vendor/product and underlying source evidence remains in the original JSON."},"key":"euvd:EUVD-2025-203110","identifiers":["EUVD-2025-203110","CVE-2025-67750","GHSA-55jh-84jv-8mx8"]},"retained":false,"historicalAffected":[]},{"revision":"b0ca402873a04f0f86635ef27bdf6192","observedAt":"2026-10-25T04:17:10.72+00:00","statement":{"source":"nvd","id":"CVE-2025-67750","aliases":[],"title":"Lightning Flow Scanner provides a A CLI plugin, VS Code Extension and GitHub Action for analysis and optimization of Salesforce Flows. Versions 6.10.5 and below allow a maliciously crafted flow metadata file to cause arbitrary JavaScript ex…","description":"Lightning Flow Scanner provides a A CLI plugin, VS Code Extension and GitHub Action for analysis and optimization of Salesforce Flows. Versions 6.10.5 and below allow a maliciously crafted flow metadata file to cause arbitrary JavaScript execution during scanning. The APIVersion rule uses new Function() to evaluate expression strings, enabling an attacker to supply a malicious expression within rule configuration or crafted flow metadata. This could compromise developer machines, CI runners, or editor environments. This issue is fixed in version 6.10.6.","state":0,"publishedAt":"2025-12-12T21:15:59.857+00:00","modifiedAt":"2026-10-14T13:10:00.187+00:00","affected":[],"metrics":[{"system":"CVSS 3.1 · security-advisories@github.com · Secondary","vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","score":8.4,"severity":"HIGH"}],"references":["https://github.com/Flow-Scanner/lightning-flow-scanner/commit/10f64a5eb193d8a777e453b25e910144e4540795","https://github.com/Flow-Scanner/lightning-flow-scanner/releases/tag/core-v6.10.6","https://github.com/Flow-Scanner/lightning-flow-scanner/security/advisories/GHSA-55jh-84jv-8mx8"],"sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2025-67750","license":"NIST NVD usage terms; underlying source attribution retained","enrichment":{"sourceStatus":"Deferred","weaknesses":["CWE-94"],"productCriteria":[],"sourceDates":{"published":"2025-12-12T21:15:59.857","lastModified":"2026-10-14T13:10:00.187"},"relatedAdvisories":[],"note":"NVD analysis and CPE criteria are source context, not proof that a package or your environment is affected. Complete affected data, logical configurations and SSVC are retained in the original JSON."},"key":"nvd:CVE-2025-67750","identifiers":["CVE-2025-67750"]},"retained":false,"historicalAffected":[]},{"revision":"709804cacdfe46e780c8190e4690feb4","observedAt":"2026-10-24T13:17:17.793+00:00","statement":{"source":"osv","id":"GHSA-55jh-84jv-8mx8","aliases":["CVE-2025-67750"],"title":"Lightning Flow Scanner Vulnerable to Code Injection via Unsafe Use of `new Function()` in APIVersion Rule","description":"### Impact\nThe APIVersion rule uses `new Function()` to evaluate expression strings. A malicious crafted flow metadata file can cause arbitrary JavaScript execution during scanning. An attacker could execute arbitrary JavaScript during a scan by supplying a malicious expression within rule configuration or crafted flow metadata. This could compromise developer machines, CI runners, or editor environments.\n\n### Patches\nThe patch removes all uses of `new Function()` and replaces them with a safer parser. It now validates operators (`>`, >=`, `<`, `<=`, `==`) and performs numeric comparisons without evaluating untrusted JavaScript.\n\n**version:** core-v6.10.6,\n**version vsx:**: v2.4.4\n**version app:**: v3.1.0\n\n### Work around\n\n```\n// --- Handle APIVersion rule separately to avoid unsafe-eval in the core library ---\n      const apiVersionConfig = ruleConfig.rules.APIVersion;\n      if (apiVersionConfig) {\n        delete ruleConfig.rules.APIVersion;\n      }\n\n// Manually evaluate the APIVersion rule, if it was configured.\n      if (apiVersionConfig) {\n        const flowApiVer = this.currentFlow.apiVersion || this.currentFlow.xmlData?.apiVersion;\n        const apiVersionRuleDef = allRules.find(r => r.name === \"APIVersion\");\n\n        // Determine the required expression (e.g. \">=58\").\n        let requiredExpr;\n        if (apiVersionConfig.expression) {\n          requiredExpr = apiVersionConfig.expression;\n        } else if (apiVersionConfig.threshold != null) {\n          requiredExpr = `>=${apiVersionConfig.threshold}`;\n        }\n\n        if (requiredExpr) {\n          const minVer = parseInt(requiredExpr.replace(/[^0-9]/g, \"\"), 10);\n          const operator = requiredExpr.replace(/[0-9]/g, \"\").trim();\n          const operators = {\n            \">=\": (a, b) => a < b,\n            \"<\": (a, b) => a >= b,\n            \">\": (a, b) => a <= b,\n            \"<=\": (a, b) => a > b,\n            \"==\": (a, b) => a !== b,\n            \"=\": (a, b) => a !== b\n          };\n          const violation = operators[operator] ? operators[operator](flowApiVer, minVer) : flowApiVer < minVer;\n\n          if (violation) {\n            // Craft a result object that mimics the core scanner output so downstream logic remains unchanged.\n            const manualScanResult = [{\n              flow: parsedFlow,\n              ruleResults: [{\n                ruleName: \"APIVersion\",\n                ruleDefinition: {\n                  description: apiVersionRuleDef?.description || \"API Version check\",\n                  label: apiVersionRuleDef?.label || \"APIVersion\"\n                },\n                occurs: true,\n                severity: apiVersionConfig.severity,\n                details: [{\n                  name: String(flowApiVer),\n                  type: \"apiVersion\",\n                  expression: requiredExpr\n                }]\n              }]\n            }];\n            results.push(...this.processScanResults(manualScanResult));\n          }\n        }\n      }\n\n```","state":0,"publishedAt":"2025-12-12T20:20:34+00:00","modifiedAt":"2025-12-20T05:07:45.36603+00:00","affected":[{"ecosystem":"npm","name":"lightning-flow-scanner","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"0"},{"kind":"fixed","version":"6.10.6"}]}],"versions":[],"rawVersionEvidence":null}],"metrics":[{"system":"CVSS_V3","vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","score":null,"severity":null},{"system":"Publisher rating","vector":null,"score":null,"severity":"HIGH"}],"references":["https://github.com/Flow-Scanner/lightning-flow-scanner/security/advisories/GHSA-55jh-84jv-8mx8","https://nvd.nist.gov/vuln/detail/CVE-2025-67750","https://github.com/Flow-Scanner/lightning-flow-scanner/commit/10f64a5eb193d8a777e453b25e910144e4540795","https://github.com/Flow-Scanner/lightning-flow-scanner","https://github.com/Flow-Scanner/lightning-flow-scanner/releases/tag/core-v6.10.6"],"sourceUrl":"https://github.com/advisories/GHSA-55jh-84jv-8mx8","license":"GitHub Advisory Database · CC-BY-4.0","key":"osv:GHSA-55jh-84jv-8mx8","identifiers":["GHSA-55jh-84jv-8mx8","CVE-2025-67750"]},"retained":false,"historicalAffected":[]}],"coverage":[{"source":"cisa-kev:global","scope":"Complete CISA KEV catalog; all vendors. Missing entries do not establish absence of exploitation.","generation":"2026-11-10T04:04:18.1997683+00:00","complete":true,"records":1773,"lastAttemptAt":"2026-11-10T04:04:18.1997683+00:00","lastSuccessAt":"2026-11-10T04:04:18.3995607+00:00","error":null,"lastVerifiedAt":"2026-11-10T04:04:18.3995615+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"cve-program","scope":"Official CVE Program baseline and cumulative hourly delta; all vendors, published and rejected records","generation":"cve-8859cf40d4337e24bd2f258cc7778fbad01bb24c79d057aaf34cf1dfc6f8917d-81377d708f64394c8eb9b62eea2364ac8dfdeb35ef3610cd5a031d185fc8d86c","complete":true,"records":421867,"lastAttemptAt":"2026-11-10T04:02:14.3050104+00:00","lastSuccessAt":"2026-11-10T04:02:14.2925615+00:00","error":null,"lastVerifiedAt":"2026-11-10T04:02:14.3050104+00:00","snapshotPublishedAt":"2026-11-10T03:29:16+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"euvd","scope":"Rolling EUVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global EUVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-a6dc967b5ceb4c488191e8f172ded5d6","complete":true,"records":13689,"lastAttemptAt":"2026-11-10T04:04:46.1001793+00:00","lastSuccessAt":"2026-11-10T03:04:49.903+00:00","error":null,"lastVerifiedAt":"2026-11-10T03:04:49.903+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13742,"expectedIdentifiers":13742,"failedIdentifiers":0},{"source":"first-epss:nuget","scope":"FIRST EPSS for explicit CVE aliases in the collected public NuGet archive. Not a global EPSS backfill.","generation":"2026-11-10T04:04:18.1997683+00:00","complete":true,"records":1096,"lastAttemptAt":"2026-11-10T04:04:18.1997683+00:00","lastSuccessAt":"2026-11-10T04:04:18.4004514+00:00","error":null,"lastVerifiedAt":"2026-11-10T04:04:18.4004518+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"nvd","scope":"Rolling NVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global NVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-f1b5e07abe344673a8a286f3a893260c","complete":true,"records":13695,"lastAttemptAt":"2026-11-10T04:04:45.5033554+00:00","lastSuccessAt":"2026-11-10T04:04:45.5+00:00","error":null,"lastVerifiedAt":"2026-11-10T04:04:45.5+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13742,"expectedIdentifiers":13742,"failedIdentifiers":0},{"source":"osv:Go","scope":"Complete OSV Go ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"go-cdffb4589856378aa42e8d1bd4a6c74e27a180d8160bf764c44715ef760f0a62","complete":true,"records":9932,"lastAttemptAt":"2026-11-10T04:04:18.0453993+00:00","lastSuccessAt":"2026-11-10T00:04:19.8260565+00:00","error":null,"lastVerifiedAt":"2026-11-10T04:04:18.0453993+00:00","snapshotPublishedAt":"2026-11-09T23:48:01+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:NuGet","scope":"Complete OSV NuGet ecosystem archive, including GitHub Advisory Database records; NuGet version matching only","generation":"nuget-26503967ae4379db8f374089589d6e03fb15bd31f820c9e992aaf93840c2236c","complete":true,"records":1971,"lastAttemptAt":"2026-11-10T04:02:14.457245+00:00","lastSuccessAt":"2026-11-09T21:02:20.472473+00:00","error":null,"lastVerifiedAt":"2026-11-10T04:02:14.457245+00:00","snapshotPublishedAt":"2026-11-09T20:18:18+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:crates.io","scope":"Complete OSV crates.io ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"crates.io-761ecc9061239b0da572dc9254c6f384c1d19339eb08408c436647a2f26129e9","complete":true,"records":3064,"lastAttemptAt":"2026-11-10T04:04:18.158124+00:00","lastSuccessAt":"2026-11-09T17:05:03.4044794+00:00","error":null,"lastVerifiedAt":"2026-11-10T04:04:18.158124+00:00","snapshotPublishedAt":"2026-11-09T16:33:20+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:npm","scope":"Complete OSV npm ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"npm-b6d0179d32e97744f004c83c309b7506438ee50743f2ae97e00ea061ef80ca4a","complete":true,"records":231582,"lastAttemptAt":"2026-11-10T04:04:16.4553373+00:00","lastSuccessAt":"2026-11-10T04:04:14.8073774+00:00","error":null,"lastVerifiedAt":"2026-11-10T04:04:16.4553373+00:00","snapshotPublishedAt":"2026-11-10T03:33:17+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null}]}