lxml 6.1.3
- Source
- https://github.com/lxml/lxml
- Tag scanned
lxml-6.1.3- Compared with
lxml-6.1.2-1(0 signals introduced since)- Files
- 151 scanned, 199 skipped (binary, oversized, or unrecognised)
- Signals
- 0 critical · 1 warn · 18 info
- Scan time
- 17.1 s
- LLM review
- Reviewed by claude-haiku-5-5 (Anthropic): 18 of 18 warn and critical signals; 17 demoted to info.
- Disclude version
- 4.1.0
- Scanned (UTC)
- 2026-10-22 00:43
Signals
Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.
-
# create function object returnlikely benign exec used to build an element factory function in a benchmark helper.Reasoning
exec of joined output to build a factory namespace; looks like generated code in a benchmark harness, a common legitimate pattern, though the source of output is not shown.
-
, , ))likely benign Documentation build script that runs an HTML generation command through the shell.Reasoning
The shell=True call runs a command assembled from stylesheet and file paths in a documentation build script. This is ordinary build tooling, not obfuscation, though the non-literal shell string is a minor hygiene concern.
-
, ))likely benign Documentation build helper that shells out to generate LaTeX output.Reasoning
os.system runs a command built from source and destination paths in a documentation build helper. Nothing in the snippet suggests hidden or remote-supplied commands.
-
window. = startup;likely benign Bundled S5 slideshow script that schedules a local font-scaling function by string name.Reasoning
setTimeout with a string argument is an old idiom in the bundled S5 slideshow library. It calls a fixed local function name and has no encoded or remote payload.
-
= , =likely benign Packaging setup helper that runs a shell command and captures its output.Reasoning
Popen with shell=True runs a command string built at runtime in the packaging setup script. The command contents are not shown, so the risk cannot be fully ruled out, but this is typical of version or config probing during setup.
-
= =likely benign Doctest comparison helper that inspects caller frames to resolve local variables.Reasoning
sys._getframe walks the caller stack to read locals, which is a standard technique in doctest comparison helpers that look up namespace values. It is legitimate library behavior.
-
=likely benign Parser test that passes its own source file as input to a dummy parser.Reasoning
The test opens its own source file as a file-like input to the parser under test. This is a common testing pattern and no payload extraction logic is visible.
-
# Icky, but I'll trust it = break = Nonelikely benign Test-data transform script that evaluates a Python literal captured from a fixture file.Reasoning
eval runs on a regex-captured expression while converting feedparser test data. The author comments on the risk, and the input is developer-controlled test fixture data, so this is a poor practice rather than an attack.
-
likely benign Test cleanup that clears the global trace hook before garbage collection.
Reasoning
sys.settrace(None) clears the trace function, a standard cleanup step in tests that check for reference leaks or tracing interference.
-
likely benign Test teardown that restores the saved trace function.
Reasoning
Restoring the previous trace function in a finally block is routine test hygiene. It has no malicious function.
-
= returnlikely benign Test helper that optionally decompresses XML test data before canonicalizing it.Reasoning
zlib.decompress here handles data that the test itself compressed or received as test input, as part of a canonicalization helper. It is not a hidden payload.
-
= =likely benign Test helper that execs generated code to define an async test function.Reasoning
exec runs a code string that the test builds itself, then reads a test function from the namespace. This is a known pattern for generating async test variants, and the code source is local.
-
=likely benign Test runner function that dynamically imports a named test module.Reasoning
__import__ with a module name in a test runner loads a test module by name during coverage-wrapped execution. This is standard dynamic import for test discovery.
-
fi if [; then -
for; do | || # check import as a quick testlikely benign Wheel build loop that runs pip from each installed Python interpreter directory.Reasoning
The loop variable PYBIN iterates over a fixed /opt/python glob in a manylinux wheel build script. The variable is set by the loop, so the 'unset in this file' flag is a false positive.
-
# check import as a quick test (; ) || { # Allow PyPy to fail the import due to C-API differences for 'str' (PyVarObject or not). | ||likely benign Wheel build step that runs a basic lxml import check under each Python interpreter.Reasoning
PYBIN is the same loop variable from the enclosing for loop, used to run a quick import check. This is routine CI build logic.
-
likely benign A build helper probes the configured C compiler version using the CC variable with a gcc fallback.
Reasoning
The flagged line runs ${CC:-gcc} --version, a standard build-toolchain probe in a manylinux wheel build script. CC is a conventional compiler override, and the default is gcc. The dynamic command name is normal for build scripts and does not show obfuscation or malicious intent.
-
||likely benign The script runs pip install from a selected Python interpreter's bin directory during wheel building.Reasoning
${PYBIN}/python -m pip install -r is a routine build step that installs requirements into a selected Python interpreter. PYBIN is a path set by the build driver, and the script is a manylinux wheel builder where this is expected. No encoding or hidden execution is present.
-
& THIRD=likely benign The build script reports the active Python interpreter version and starts a wheel build using it.Reasoning
The snippet prints the interpreter version and then launches build_wheel with PYBIN as an argument. This is ordinary build orchestration for selecting a Python version per wheel. The variable-based command is the expected pattern for a multi-interpreter build script.
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.
&&