AI Security Review
scanned 7h ago · by lpm-firewall-aiRendering a Lottie animation can execute expression text embedded in its animation data. Remote animation JSON may be obtained from a caller-supplied URL.
Static reason
High-risk behavior combination matched malicious policy.
Trigger
Consumer renders the Lottie component with attacker-controlled animation data or animationUrl.
Impact
Arbitrary JavaScript may run in the consuming application's browser origin.
Mechanism
Browser-context eval of Lottie expression data.
Rationale
The package is not overtly malicious, but its default-enabled eval path over animation expression data is a concrete browser-side code-execution risk when animation input is untrusted.
Evidence
package.jsondist/site/components/Lottie/component.jsdist/site/components/chunks/Tooltip.js
Decision evidence
public snapshotAI called this Suspicious at 91.0% confidence as Critical Vulnerability with medium false-positive risk.
Evidence for warning
- `dist/site/components/Lottie/component.js` defaults `runExpressions` to true.
- The Lottie expression path evaluates `data.x` with `eval`.
- The component fetches caller-provided `animationUrl` JSON before rendering.
Evidence against
- `package.json` has no install, preinstall, or postinstall hook.
- No shipped Node filesystem, child-process, or shell imports found.
- No credential harvesting, persistence, or fixed exfiltration endpoint found.
- `Tooltip.js` bidi controls are intentional date/time directionality isolates.
Behavioral surface
ChildProcessEnvironmentVarsEvalNetwork
HighEntropyStringsUrlStrings
Source & flagged code
3 flagged · loading sourcedist/site/components/Lottie/component.jsView file
13712var scoped_bm_rt;
L13713: var expression_function = eval("[function _expression_function(){" + val + ";scoped_bm_rt=$bm_rt}]")[0];
L13714: var numKeys = property.kf ? data.k.length : 0;
Low
Eval
Package source references a known benign dynamic code generation pattern.
dist/site/components/Lottie/component.jsView on unpkg · L13712dist/site/components/chunks/Tooltip.jsView file
7191contains invisible/control Unicode U+2066 (left-to-right isolate)
text: "<U+2066>",
Critical
Trojan Source Unicode
Source contains bidi control or invisible Unicode characters associated with Trojan Source attacks.
dist/site/components/chunks/Tooltip.jsView on unpkg · L7191dist/site/components/chunks/constants3.jsView file
61patternName = generic_password
severity = medium
line = 61
matchedText = password...rd",
Medium
Secret Pattern
Hardcoded password in dist/site/components/chunks/constants3.js
dist/site/components/chunks/constants3.jsView on unpkg · L61Findings
1 Critical4 Medium4 Low
CriticalTrojan Source Unicodedist/site/components/chunks/Tooltip.js
MediumNetwork
MediumEnvironment Vars
MediumStructural Risk Force Deep Review
MediumSecret Patterndist/site/components/chunks/constants3.js
LowScripts Present
LowEvaldist/site/components/Lottie/component.js
LowHigh Entropy Strings
LowUrl Strings