PyPI / matplotlib / 3.11.2
matplotlib 3.11.2
- Source
- https://github.com/matplotlib/matplotlib
- Tag scanned
v3.11.2- Compared with
v3.11.1(0 signals introduced since)- Files
- 1673 scanned, 2815 skipped (binary, oversized, or unrecognised)
- Signals
- 0 critical · 0 warn · 35 info
- Scan time
- 26.3 s
- LLM review
- Reviewed by claude-haiku-5-5 (Anthropic): 30 of 30 warn and critical signals; 30 demoted to info.
- Disclude version
- 4.1.0
- Scanned (UTC)
- 2026-10-22 05:09
Signals
Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.
-
likely benign Sphinx inheritance-diagram directive with a very long list of class names.
Reasoning
A long line in an RST doc containing an inheritance-diagram directive with a long list of class names. Purely formatting, no code execution or obfuscation.
-
likely benign Import-availability check in the Sphinx config that uses __import__ on module names from a list.
Reasoning
Sphinx conf.py checking whether optional modules are importable, appending missing ones to a list. The name comes from a fixed list of module names in the project's own config, so this is a standard availability check and not malicious.
-
info
warn→ info by reviewunicode-homoglyphdoc/release/prev_whats_new/dflt_style_changes.rst:707:25likely benign Unicode demo labels in an archived what's-new doc that include a Greek letter.Reasoning
Greek alpha appears in a sample list of Unicode labels in release-notes documentation demonstrating Unicode text rendering. It is a demo string in an illustrative example, not an identifier used for deception.
-
info
warn→ info by reviewunicode-homoglyphdoc/release/prev_whats_new/dflt_style_changes.rst:717:37likely benign Russian title text in a docs example string.Reasoning
Cyrillic text inside a string literal ('Диаграмма со смайликами') in a documentation example showing Unicode title rendering. This is string content, not a homoglyph identifier used to hide code.
-
-
info
warn→ info by reviewdynamic-format-stringextern/agg24-svn/src/ctrl/agg_slider_ctrl.cpp:165:17char buf; ; m_text.; }likely benign Vendored AGG slider calling sprintf with a non-literal format string.Reasoning
Vendored AGG library slider control calls sprintf with a label format from a member variable. This is a real format-string bug pattern in the third-party code, but the format comes from internal widget configuration, not attacker input, so it is a code-quality issue rather than malicious intent.
-
info
warn→ info by reviewdynamic-executiongalleries/examples/ticks/date_formatters_locators.py:32:36likely benign Gallery example evaluating locator constructor strings with eval.Reasoning
Example script that eval()s a locator string taken from a demo configuration list of trusted, hardcoded strings. It is a teaching example with a known bad practice but no malicious payload.
-
info
warn→ info by reviewdynamic-executiongalleries/examples/ticks/date_formatters_locators.py:35:38likely benign Gallery example evaluating formatter strings with eval.Reasoning
Same gallery example evaluating formatter strings from hardcoded demo values with eval. Benign teaching code.
-
""" ydata = eval(expression, {'np': np}, {'t': t}) l.set_ydata(ydata) ax.relim()likely benign Widget example that evaluates a typed expression with eval and restricted namespaces.Reasoning
Textbox widget example that evaluates a user-typed math expression with restricted globals (only np and t). It is an interactive demo; eval is unsafe in general but the code is a standard example, not a dropper.
-
= -
info
warn→ info by reviewdynamic-executiongalleries/users_explain/figure/interactive_guide.rst:443:12likely benign Documentation prose illustrating an eval call in an interactive loop.Reasoning
Prose in a documentation file showing an interactive REPL idiom 'eval(inp) # Evaluate / Print'. It is markup text in an explanatory doc, not executed code.
-
=likely benign Stack-frame walk to locate the caller for warnings.Reasoning
Matplotlib's API helper uses sys._getframe to find caller stack level for deprecation warnings. This is a standard, legitimate introspection pattern.
-
likely benign inspect.stack used to name the calling function in an error message.
Reasoning
Uses inspect.stack()[1].function to build a keyword-argument error message. Legitimate use for error reporting.
-
varlikely benign Minified vendored ResizeObserver polyfill in the web backend JavaScript.Reasoning
A minified, bundled ResizeObserver polyfill (_JSXTOOLS_RESIZE_OBSERVER) shipped in a web backend. Minification produces long lines and is expected for vendored browser libraries; the content looks like a standard polyfill.
-
=likely benign Collects constructor keyword arguments by name using locals().Reasoning
Reads keyword defaults by name via locals() inside a constructor to collect parameters. The keys come from the function's own __kwdefaults__, so this is a legitimate, if unusual, pattern.
-
=likely benign Second locals() lookup in the same parameter-collection loop.Reasoning
Second use of locals() in the same parameter-collection pattern, reading the function's own arguments. Benign.
-
=likely benign Repeated locals()-based parameter collection in another layout engine.Reasoning
Same locals()-based parameter collection pattern repeated in another layout engine class. Benign.
-
=likely benign Copies named constructor parameters from locals() into self._params.Reasoning
locals() lookup by name is a common Python idiom for copying keyword arguments into an attribute dict. No external input or hidden behavior is involved.
-
is , , 2 and 1 , : -
- - - -
- - """ from .transforms import Bbox -
. =likely benign Assigns backend function signatures to pyplot's module-level functions via globals().Reasoning
Iterates over a fixed list of module function names and sets __signature__ on them via globals(). This is a plain metaprogramming pattern for matching backend signatures.
-
# check if it's valid Python as-is return Falselikely benign Syntax-checks a docs code block with compile() without executing it.Reasoning
compile() with mode 'exec' is used only to check whether a documentation code block is valid Python, and it returns a bool. It never runs the code.
-
=likely benign Runs the project's configured plot_pre_code inside the docs build namespace.Reasoning
The plot directive is a Sphinx extension whose job is to execute example code during docs builds. The pre-code comes from the project's own configuration, so executing it is expected, not an attack.
-
likely benign Executes documentation example code to generate plot images.
Reasoning
Executing example code from documentation sources is the documented purpose of the plot directive. The show() call is stubbed during execution, which is consistent with a docs build.
-
likely benign Calls a named example function inside the docs build namespace.
Reasoning
function_name comes from the directive's own parsing of example source, and the constructed call is just name plus '()'. The critical severity overstates the risk. The code runs only in the trusted docs-build context.
-
info
warn→ info by reviewdecoder-decompress-payloadlib/matplotlib/tests/test_simplification.py:449:27= = =likely benign Decodes base64 test vertex data into a numpy array for a path simplification test.Reasoning
The base64 blob decodes to int32 vertex coordinates for a path test. It is test fixture data, not a dropper, and no decompressed content is executed.
-
= =likely benign Round-trip evaluates a Bbox repr in a test.Reasoning
eval of repr() of a Bbox with a restricted namespace is a round-trip test of the repr. The input is the object's own output, not external data.
-
= assert ==likely benign Evaluates a Bbox string form in a test to check formatting.Reasoning
eval of str() of a Bbox with a restricted namespace checks string formatting in a test. The input comes from the test's own object.
-
= = assert ==likely benign Evaluates a formatted Bbox string in a test.Reasoning
eval of format() output with a format spec in a test checks Bbox formatting. The inputs are test-controlled constants.
-
assert ==likely benign Evaluates formatted attribute values in a test assertion.Reasoning
Evaluates formatted numeric attribute strings in a test loop to check values. The data is controlled by the test itself.
-
ifdismissed Local double variable xo holding an offset x coordinate.Reasoning
xo and yo are ordinary short coordinate variable names in a C++ loop. The confusability flag comes from a skeleton collision on short names and has no security meaning.
-
double xo = ; double yo = ; offset_trans.; trans *= agg::;dismissed Local double variable yo holding an offset y coordinate.Reasoning
yo is an ordinary short coordinate variable beside xo in a C++ loop. The skeleton collision is noise from short identifiers.
-
// Try loading from the main program namespace first. auto main_program = ; auto success = ; // We don't need to keep a reference open as the main program always exists.likely benign Opens the main program handle with dlopen(nullptr) to locate Tcl/Tk symbols.Reasoning
dlopen(nullptr) opens the main program's symbol namespace to find already-loaded Tcl/Tk. This is standard practice for embedding Tk in a Python extension, and the path is not attacker-controlled.
-
std::string path = py_path_b; auto tkinter_lib = ; iflikely benign Loads the tkinter shared library from a Python-provided path.Reasoning
The path comes from Python's tkinter module location, which the extension resolves to load the matching Tk library. This is expected plugin loading, not an arbitrary payload fetch.
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.
&&