You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Plugin Scanner and the GitHub Action that packages it.
What happened?
The code-quality rule reports DANGEROUS_DYNAMIC_EXECUTION for Puppeteer page.$eval(...), page.$$eval(...), and any member call named object.eval(...). None of these is a bare/global JavaScript eval(...) call, and the example below contains no new Function(...).
The current matcher is EVAL_RE = re.compile(r"\beval\s*\(") in checks/code_quality.py. Because $ and . are non-word characters, all three member/identifier forms match the same regex.
Expected: retain a high-severity finding for an actual bare/direct eval(...) call and for new Function(...), but do not infer dynamic code execution solely from $eval, $$eval, or a member property named eval.
All three call sites are classified as DANGEROUS_DYNAMIC_EXECUTION / “Dynamic code execution detected” by the regex, despite there being no bare eval(...) or new Function(...) call.
A token- or AST-aware callee check could distinguish a direct identifier named exactly eval from Puppeteer's $eval/$$eval identifiers and member-expression properties. Regression coverage could keep bare eval(...) and new Function(...) positive while making the three examples above negative.
Environment and downstream impact
This was reproduced with Plugin Scanner 3.0.123 through the catalog-pinned action while reviewing awesome-ai-plugins PR #288. The catalog report currently treats the resulting high-severity findings as part of the remediation required before review.
Once corrected, could you please identify:
the Plugin Scanner release containing the fix;
the hashgraph-online/ai-plugin-scanner-action release/commit that consumes it; and
No suppression or lower severity is requested; the goal is to preserve detection of real dynamic execution while avoiding these syntactic false positives.
Logs
Representative finding:
DANGEROUS_DYNAMIC_EXECUTION (high)
Dynamic code execution detected
<file> uses eval() or new Function().
Affected surface
Plugin Scanner and the GitHub Action that packages it.
What happened?
The code-quality rule reports
DANGEROUS_DYNAMIC_EXECUTIONfor Puppeteerpage.$eval(...),page.$$eval(...), and any member call namedobject.eval(...). None of these is a bare/global JavaScripteval(...)call, and the example below contains nonew Function(...).The current matcher is
EVAL_RE = re.compile(r"\beval\s*\(")inchecks/code_quality.py. Because$and.are non-word characters, all three member/identifier forms match the same regex.Expected: retain a high-severity finding for an actual bare/direct
eval(...)call and fornew Function(...), but do not infer dynamic code execution solely from$eval,$$eval, or a member property namedeval.Minimal reproduction
Save this as
fixture.jsin a scan target:Then run:
plugin-scanner scan .All three call sites are classified as
DANGEROUS_DYNAMIC_EXECUTION/ “Dynamic code execution detected” by the regex, despite there being no bareeval(...)ornew Function(...)call.A token- or AST-aware callee check could distinguish a direct identifier named exactly
evalfrom Puppeteer's$eval/$$evalidentifiers and member-expression properties. Regression coverage could keep bareeval(...)andnew Function(...)positive while making the three examples above negative.Environment and downstream impact
This was reproduced with Plugin Scanner 3.0.123 through the catalog-pinned action while reviewing awesome-ai-plugins PR #288. The catalog report currently treats the resulting high-severity findings as part of the remediation required before review.
Once corrected, could you please identify:
hashgraph-online/ai-plugin-scanner-actionrelease/commit that consumes it; andNo suppression or lower severity is requested; the goal is to preserve detection of real dynamic execution while avoiding these syntactic false positives.
Logs
Representative finding: