npm / estraverse / 5.3.0

estraverse 5.3.0

Source
https://github.com/estools/estraverse
Tag scanned
v5.3.0
Compared with
v5.2.0 (0 signals introduced since)
Files
12 scanned, 1 skipped (binary, oversized, or unrecognised)
Signals
0 critical · 0 warn · 1 info
Scan time
1.9 s
LLM review
Reviewed by claude-haiku-5-5 (Anthropic): 1 of 1 warn and critical signal; 1 demoted to info.
Disclude version
4.1.0
Scanned (UTC)
2026-10-22 13:15

Signals

Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.

  1. info critical → info by review dynamic-execution test/replace.js:57:32

    `eval` called with a non-literal expression (ast pass, confidence 0.75)

                            type: 'Literal',
                            value: eval(JSON.stringify(node.left.value) + node.operator + JSON.stringify(node.right.value))
                        };
                    }
    likely benign LLM, confidence 0.85 A test helper uses eval to fold a binary expression built from literal AST values and an operator.
    Reasoning

    The eval evaluates a binary expression reconstructed from JSON-serialized literal operands and an operator from an AST node, inside a test file for a replace/constant-folding transform. This is a plausible test-harness or constant-folding helper, and the operands are literals, not attacker-controlled network data. Still, eval in a test is unusual and the operator string is passed unchecked, so it is not fully settled.

Reproduce This Scan

Run disclude locally to verify. Add --format sarif for SARIF output. Add --llm (with an API key in the environment) to include the LLM review.

cargo install disclude --version 4.1.0
git clone https://github.com/estools/estraverse estraverse && cd estraverse
git checkout v5.3.0
disclude scan --severity info --diff v5.2.0 .