PyPI / jsonpath-ng / 1.12.0
jsonpath-ng 1.12.0
- Source
- https://github.com/jsonpath-ng/jsonpath-ng
- Tag scanned
v1.12.0- Compared with
v1.11.0(2 signals introduced since)- Files
- 66 scanned, 8 skipped (binary, oversized, or unrecognised)
- Signals
- 0 critical · 0 warn · 11 info
- Scan time
- 10.0 s
- LLM review
- Reviewed by claude-haiku-5-5 (Anthropic): 10 of 10 warn and critical signals; 10 demoted to info.
- Disclude version
- 4.1.0
- Scanned (UTC)
- 2026-10-22 08:24
Signals
Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.
-
info
warn→ info by reviewlong-linesrc/jsonpath_ng/_ply_tables/ext_parser_table.py:11:1new in this release=likely benign Generated PLY parser table with a very long data line.Reasoning
This is a generated LR parse table, and its length follows from the grammar size. The data is numeric state tables and token names, with no executable or encoded payload. Long lines are normal for generated tables.
-
= -
=likely benign PLY lexer code that imports a cached lex table module by name via exec.Reasoning
This is PLY's standard lextab loader. It runs exec('import %s' % tabfile) on a module name that the library itself generates from its own configuration, and it is a long-established pattern in PLY. Nothing here is attacker-controlled or obfuscated.
-
= =likely benign PLY helper that inspects the caller's frame to find the module namespace.Reasoning
sys._getframe is used by PLY's get_caller_module_dict to read the caller's globals and locals so that lexer and parser specs can be resolved. The co-occurrence with exec/eval is the normal shape of a parser generator, not an anti-analysis technique.
-
= = =likely benign PLY code that imports a package by derived name to find its source file path.Reasoning
This is the same PLY pattern: exec('import %s' % pkgname) where pkgname is derived from the module path of the grammar file being processed to locate the output directory. It is a library-internal import, not a payload.
-
=likely benign PLY grammar validation that evals a literal token string to check its length.Reasoning
eval(s) evaluates a literal token string from the user's grammar specification, such as a quoted single character, to check that it is one character long. This is the expected way PLY handles literal tokens. The input is grammar source, not untrusted network data.
-
=likely benign PLY code that imports the cached parse table module by name.Reasoning
This is the same PLY parsetab loader: exec('import %s' % module) on a library-generated module name, followed by a lookup in sys.modules. It is standard and benign.
-
= =likely benign PLY helper that reads the caller's frame globals and locals.Reasoning
This is the PLY get_caller_module_dict helper, which uses sys._getframe to read the caller's namespace. It is a standard parser-generator mechanism and not an anti-analysis measure.
-
= = =likely benign PLY code that imports a package by derived name to resolve its file path.Reasoning
This is the same PLY code that derives a package name and imports it with exec to locate the source directory for output. It is library-internal and benign.
-
=likely benign Generated PLY parser table with a long data line.Reasoning
This is a generated PLY LR action table of token-to-state integer lists. The long line is typical of generated output and contains no executable or obfuscated content.
-
= = assertlikely benign Test that dynamically imports a cached PLY parse table and checks that its path is inside the package.Reasoning
The test imports a module whose name comes from parsetab_names, which the test derives from the cache directory. It then asserts that the imported module's file lies inside the package directory, which is a guard against loading code from outside the package. This is consistent with a test for the cache, though the dynamic name is not a literal.
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.
&&