numpy 2.5.4
- Source
- https://github.com/numpy/numpy
- Tag scanned
v2.5.4- Compared with
v2.5.3(0 signals introduced since)- Files
- 1826 scanned, 416 skipped (binary, oversized, or unrecognised)
- Signals
- 0 critical · 4 warn · 134 info
- Scan time
- 92.7 s
- LLM review
- Reviewed by claude-haiku-5-5 (Anthropic): the 115 most severe of 119 warn and critical signals (115 with a verdict); 115 demoted to info. The rest are unreviewed.
- Disclude version
- 4.1.0
- Scanned (UTC)
- 2026-10-21 21:09
Signals
Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.
-
+= 1 = - return 0.01 * -
-
return -
# translate README.rst to md for posting on GitHub -
=likely benign exec of generated benchmark code into a namespace, then retrieves a function.Reasoning
exec on a code string in a benchmark setup builds a function from generated source; common in numpy benchmarks for generating test code, no sign of malicious intent.
-
breaklikely benign __import__ of extension names inside a try loop in Sphinx config.Reasoning
Sphinx conf.py tries importing extension names from a list in a try block; dynamic import of configured extensions is routine. Severity critical is overstated for this context.
-
= passlikely benign Re-exports names from numpy._core into module globals.Reasoning
Copying attributes from _core into the numpy namespace via globals() is a standard re-export pattern; the target names are fixed internal names.
-
= passlikely benign Tempita reads the caller frame to resolve template namespace.Reasoning
sys._getframe is used by the tempita template engine to find the caller's namespace for templating; the exit/exec co-occurrence is a template-engine feature, not anti-analysis.
-
=likely benign Template engine evaluating template expressions in a namespace.Reasoning
Tempita evaluates template expressions by design; the template engine is a code generator used at build time, so eval is its intended function.
-
likely benign Template engine executing template code blocks.
Reasoning
Tempita executes template statement blocks by design as part of its templating language.
-
= = =likely benign Tempita CLI evaluates a variable value passed as an argument.Reasoning
Command-line variable parsing in tempita evals a user-supplied value, a documented feature of the build tool; not a hidden dropper.
-
""" new = getattr(__import__(place, globals(), {}, [obj]), obj) if isinstance(doc, str): if "${ARRAY_FUNCTION_LIKE}" in doc:likely benign Imports a module by name to fetch a function for docstring substitution.Reasoning
Docstring-decorator helper imports a module named by the developer-supplied place argument to attach array function docs; legitimate internal code.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/_core/include/numpy/libdivide/libdivide.h:219:14static inline uint32_tlikely benign Short variable names in a 32-bit multiply-high helper.Reasoning
Variables xl/yl and x/y are ordinary short names; the skeleton collision reflects normal naming, not homoglyph attack in a mul-hi helper.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/_core/include/numpy/libdivide/libdivide.h:219:22static inline uint32_tlikely benign Parameter y in a 32-bit multiply-high helper.Reasoning
Same function; x and y names with xl/yl are standard and the collision is a false positive from the skeleton heuristic.
-
=likely benign Exports scalar type aliases into module globals.Reasoning
Populates module globals from a fixed table of type names, a common numpy pattern for exporting scalar types.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/_core/src/common/simd/avx2/reorder.h:87:12__m256 ab0 = ; __m256 ab1 = ; return ; }likely benign SIMD interleave helper using ab0 and ab1 vectors.Reasoning
ab0/ab1 are standard SIMD lane variable names; the skeleton collision is a heuristic false positive.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/_core/src/common/simd/avx512/reorder.h:109:13__m512i ab0 = ; __m512i ab1 = ; __m512i ab0 = ;likely benign AVX-512 reorder helper with ab0 and ab1 variables.Reasoning
Same ab0/ab1 naming in an AVX-512 reorder helper; benign naming.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/_core/src/common/simd/sse/reorder.h:85:58// deinterleave two vectors NPY_FINLINE npyv_u8x2likely benign SSE unzip function with ab0 and ab1 parameters.Reasoning
ab0/ab1 are parameter names for an unzip intrinsic wrapper; benign.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/_core/src/multiarray/multiarraymodule.c:2519:15likely benign C local variables a0 and out in multiarray module.Reasoning
a0 and out are ordinary C locals; the skeleton match is a false positive from short names.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/_core/src/npysort/timsort.hpp:98:15npy_intp sz; type vc, *pl, *pi, *pj, *pr; iflikely benign Timsort pointer locals pl, pi, pj, pr.Reasoning
pl/pi/pj/pr are standard timsort pointer names; the collision is a heuristic artifact.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/_core/src/npysort/timsort_generic.cpp:133:11npy_intp sz; char *pl, *pi, *pj, *pr; iflikely benign Local pointer variables in the numpy timsort implementation that collide under a confusable-character skeleton.Reasoning
The flagged pair is ordinary local pointer names (pl, pi, pj, pr) in a C sorting routine. A visual-skeleton collision between short identifiers is a common false positive for token-pass confusable checks, and nothing in the snippet suggests deliberate disguise.
-
const char* ss; ifdismissed sscanf parsing a long with %n to capture the consumed offset in numpy's rational test extension.Reasoning
The %n in sscanf is a standard way to record how many characters were consumed, and it is paired with a fixed-format %ld input parse. This is a scanf output directive, not an attacker-controlled printf format string, so the write-to-memory concern does not apply.
-
ss++; ifdismissed Second sscanf call using %n to track parse position in the rational test extension.Reasoning
Same pattern as the other finding: a literal sscanf format with %ld%n storing the parse offset into a local integer. It is normal C parsing code in a test extension.
-
>>> = >>> -
>>> = >>> -
>>> >>> -
>>> -
>>> -
likely benign Test asserting that eval(repr(array)) reconstructs the original array.
Reasoning
This is a round-trip test checking that repr output evaluates back to an equal array. The eval input is the library's own repr output, and the namespace is restricted to numpy. This is expected test code.
-
likely benign Test asserting that eval(repr(a[0])) round-trips correctly.
Reasoning
Repeat of the repr round-trip test for a single array element, using a restricted namespace containing only np. It is legitimate test code for repr behavior.
-
) =likely benign Test evaluating str(dtype) to check dtype round-trip, in a file that also tests pickling.Reasoning
The file imports pickle, and the eval here reconstructs a dtype from its own str() output in a test. The pickle/eval co-occurrence is a generic heuristic that matches numpy's test suite. No payload or decode chain is present.
-
) =likely benign Eval of a dtype's string form in a numpy dtype round-trip test.Reasoning
Same eval(str(dt)) round-trip test as the paired finding. It operates on numpy's own dtype string representation.
-
=likely benign Test evaluating array repr with a restricted namespace and comparing equality.Reasoning
This test evals the repr of a local array with a restricted namespace and then checks equality. The pickle import is part of numpy's serialization tests. No decoding or staged execution is shown.
-
=likely benign Eval of an array repr in a numpy multiarray round-trip test.Reasoning
Same eval(repr(xx)) round-trip test, using an explicit namespace dict with np and array. This is ordinary test code.
-
= blikely benign Fixture bytes containing a serialized C-contiguous numpy array pickle for compatibility testing.Reasoning
The bytes literal is a protocol-5 pickle of a numpy array, used as a fixed fixture to check unpickling compatibility. It is test data inside a numpy test, not a hidden dropper. The escape density is expected for binary pickle data.
-
= blikely benign Fixture bytes holding a serialized F-contiguous numpy array pickle.Reasoning
Another pickle fixture of a numpy array, this time F-contiguous, used in serialization tests. The byte pattern matches a standard numpy pickle with no executable payload chain.
-
= blikely benign Fixture bytes containing a pickled transposed numpy array for round-trip tests.Reasoning
This literal is a pickle of a transposed contiguous array, a standard numpy serialization fixture. The reconstruct and dtype opcodes are expected for numpy's pickle format.
-
= blikely benign Fixture bytes containing a pickled non-contiguous numpy array.Reasoning
Pickle fixture for a non-contiguous numpy array, used to test loading of older serialized forms. The content is numpy's own _reconstruct and dtype opcodes, consistent with a test vector.
-
=likely benign Test fixture containing a hand-built pickle byte string for numpy ndarray reconstruction.Reasoning
The bytes literal is a hand-written pickle protocol 2 stream (numpy reconstruct, dtype i1 and a state tuple) used in a numpy test that checks unpickling of arrays from older numpy versions. The \xNN escapes are the pickle opcodes themselves, so the shape is expected for this purpose and no execution or exfiltration is involved.
-
=likely benign Test fixture holding a pickled numpy array with float32 dtype for compatibility testing.Reasoning
Same pattern as the other fixtures: a pickle protocol 2 byte string encoding a numpy float32 dtype array for a backward-compatibility unpickling test. The escapes are pickle opcodes, not an encoded dropper.
-
=likely benign Test fixture with a pickled numpy object-dtype array for unpickle compatibility.Reasoning
A pickle protocol 2 payload describing a numpy object dtype array, used in numpy's unpickling tests. It is test data with no decoding or execution step in the snippet.
-
=likely benign Test fixture containing a pickled numpy array structure.Reasoning
Pickle opcode bytes describing a numpy array reconstruction, consistent with the surrounding numpy pickle compatibility tests. It is static test data.
-
=likely benign Test fixture with a pickled float32 numpy array.Reasoning
Another pickle protocol 2 byte fixture for a numpy float32 array in a compatibility test. The byte density matches pickle opcodes and there is no runtime decoding of an obfuscated payload.
-
=likely benign Test fixture with a pickled numpy object-dtype array.Reasoning
Pickle fixture for a numpy object-dtype array used to test unpickling of older formats. It is static test input consistent with the rest of the file.
-
= = # Prints the type `numpy.record` as part of the dtype:likely benign Test file that evals repr strings of numpy record arrays to check round-tripping.Reasoning
The file imports pickle and uses eval, but the flagged eval calls take repr() of numpy record arrays prefixed with 'np.' to test that repr round-trips. The pickle import is for other tests in the file. The combination is a test-suite pattern, not a multi-stage payload.
-
= = # Prints the type `numpy.record` as part of the dtype:likely benign eval of a repr-generated numpy expression in a record array test.Reasoning
eval is applied to a string built from repr() of a numpy array that the test itself created, with a restricted globals dict containing only np. This is a repr round-trip check in a test, not attacker-controlled input.
-
= = # Prints the type `numpy.record` as part of the dtype: =likely benign eval of a repr-built recarray expression to verify type round-tripping.Reasoning
The eval input is 'np.' concatenated with repr of a locally constructed recarray, and the test checks the resulting type. The input is generated in-process from trusted test values.
-
# Prints the type `numpy.record` as part of the dtype: =likely benign eval of a repr-generated recordview expression in a numpy test.Reasoning
Same repr round-trip eval for recordview in a numpy test, with a fixed globals dict and no external input.
-
= = = -
= =likely benign eval of a numeric repr string in a scalar math test.Reasoning
eval(repr(val)) round-trips a numeric scalar value in a scalar math test to check float representation. The input is a number generated by the test, so the eval is not an injection vector.
-
= = = =likely benign eval used to look up a SIMD intrinsic function by name in a test.Reasoning
eval(intrin) resolves an intrinsic name string that comes from the test's own parametrization, then calls it on test data. It is a dispatch pattern in a SIMD test, with no outside input in the snippet.
-
= = = =likely benign eval resolves a numpy SIMD intrinsic name inside a test method.Reasoning
The eval argument is a slice of a test-parameter intrinsic name (intrin[:3]) drawn from the test's own hardcoded lists. It is a test-harness idiom for resolving names to numpy SIMD functions, not attacker-controlled input.
-
= = = =likely benign eval converts a test-defined intrinsic name into a callable.Reasoning
eval(intrin) evaluates a symbolic intrinsic name from the test's internal parameter list, in a numpy SIMD test file. No external input reaches it.
-
return , = = =likely benign eval resolves npyv load-till intrinsic names in a SIMD test.Reasoning
eval(intrin) turns a test-defined name for a load-till intrinsic into functions. The source is the test suite's own constants, so it is a benign test pattern.
-
return = = =likely benign eval resolves a store-till intrinsic name in a SIMD test.Reasoning
Same test-harness pattern: eval on an internal intrinsic name string to get a store-till function. No untrusted input is involved.
-
return =likely benign eval resolves a loadn intrinsic name in a SIMD test.Reasoning
eval on a fixed test-defined intrinsic name to obtain a strided-load function. Benign test scaffolding.
-
return , = = +=likely benign eval resolves a loadn-till intrinsic name in a SIMD test.Reasoning
eval on an internal loadn-till intrinsic name from the test's own list. This is ordinary numpy test code.
-
return = = =likely benign eval resolves a strided store intrinsic name in a SIMD test.Reasoning
eval on a test-internal storen intrinsic name. No external input and no payload pattern.
-
return = = =likely benign eval resolves a strided store-till intrinsic name in a SIMD test.Reasoning
eval on a fixed internal storen-till intrinsic name, as part of the SIMD test harness.
-
return = = =likely benign eval resolves an intrinsic name for a table-lookup SIMD test.Reasoning
eval(intrin) on a test-defined intrinsic name for a lookup-table test. The string comes from the test's own parameterization.
-
= = = =likely benign eval converts a test-defined intrinsic name into a callable.Reasoning
Same pattern as the other test_simd eval calls: the string is an internal intrinsic name, and the result is called on test data.
-
=likely benign Test-class generator registers classes into module globals.Reasoning
globals() is used to register dynamically generated test classes under their names. This is a common pytest generation technique, with no network or payload behavior visible.
-
, , ]) -
, , ]) -
-
, , , , -
, , , , -
, , , ]) -
, , ]) -
= 512 + 7 , , = , = ,likely benign eval builds test arrays from an expression string in a umath test.Reasoning
eval(ex_val) evaluates a test-case expression string from the test's own data table to build arrays for division-accuracy checks. Benign test code.
-
= = = =likely benign eval builds a test array from an internal expression string.Reasoning
eval(ex_val) on an internal test expression to produce an array for comparison. No external input is involved.
-
), =) =likely benign eval maps a bundled test-data dtype name to a numpy dtype.Reasoning
eval(datatype) maps a dtype name read from numpy's bundled accuracy-test data files to a numpy dtype. The input is a bounded set of type names in test fixtures, so the risk is low.
-
), =) = =likely benign eval maps a test-data dtype name to a numpy dtype.Reasoning
The same dtype eval on bundled accuracy-test data. It is a test-fixture idiom with no network or payload behavior.
-
# scipy.special.expit for instance. = returnlikely benign Legacy numpy.core shim imports a submodule dynamically to forward attributes.Reasoning
This is a deprecation-forwarding shim: __import__ loads a fixed numpy submodule named in the module's own code and returns an attribute from it. Severity is critical only because __import__ is dynamic. The module name is not external input, so this is a legitimate pattern.
-
=likely benign Copies ufunc objects into the module namespace via globals() during import.Reasoning
The snippet is a standard numpy idiom that re-exports ufunc attributes into module globals by name, a common way to populate a module namespace from a loop. It is a legitimate pattern in a well-known library, with no network, decoding, or payload behaviour visible.
-
= # Pybind11 (in versions <= 2.11.1) imports _ARRAY_API from the multiarraylikely benign Re-exports selected multiarray attributes into the module namespace by name.Reasoning
The loop copies named attributes from the multiarray module into globals() to re-export them. This is a plain compatibility re-export, and the comment refers to pybind11 importing _ARRAY_API, which is a known, documented dependency.
-
= , =likely benign Evaluates a user f2cmap dictionary file with eval to load type mappings.Reasoning
eval is applied to the contents of a user-supplied f2cmap configuration file, with empty globals and locals. This is a documented f2py feature for user type maps. The risk is real in principle, since eval on file contents runs arbitrary code, but the input is a developer-provided build configuration, not fetched or hidden content.
-
= passlikely benign Evaluates a Fortran array size expression to resolve its numeric value.Reasoning
eval evaluates a size expression from Fortran declaration metadata, inside a try/except. This is ordinary expression evaluation in a Fortran-to-C wrapper generator.
-
= , = ,likely benign Evaluates a complex initialiser value to derive its real and imaginary parts.Reasoning
eval is applied to an initialisation value for a complex constant, to split it into real and imaginary parts. The use is limited to parsing numeric expressions from Fortran sources and is wrapped in exception handling.
-
=likely benign Evaluates Fortran parameter initialisation expressions inside the f2py source parser.Reasoning
The file imports codecs and uses eval, which matches the multi-stage shape signal. In context, though, eval is only used to evaluate Fortran parameter initialisation expressions with restricted namespaces inside a Fortran parser. The codecs import is unrelated to any decode-then-exec chain, so this is a false positive from the shape heuristic.
-
=likely benign Evaluates a Fortran initialisation expression with a params dictionary during parsing.Reasoning
This is the same eval-on-Fortran-expression call as the paired finding. It is a standard parse-time evaluation within a try block, with a restricted params dictionary.
-
""" Like `eval` but returns only integers and floats """ = returnlikely benign Helper that evaluates a Fortran expression and returns only int or float values.Reasoning
The function is documented as eval-like and returns only int or float results. It evaluates Fortran numeric expressions, which is the purpose of the parser helper.
-
# TODO: use symbolic from PR #19805 = =likely benign Evaluates a Fortran parameter value with a local params dictionary.Reasoning
eval evaluates a Fortran parameter value using a params dictionary and catches NameError, SyntaxError and TypeError. This is ordinary parameter resolution in the parser.
-
= passlikely benign Resolves a Fortran length expression by evaluating it against parameters.Reasoning
eval resolves a Fortran length or kind expression with a params dictionary, inside an exception handler. It is routine parser behaviour.
-
= passlikely benign Resolves a Fortran expression to a string value using parameter bindings.Reasoning
This is the same kind of parameter-expression evaluation as the neighbouring finding, with exception handling and a restricted namespace.
-
=likely benign Evaluates a Fortran kind selector expression against known parameters.Reasoning
eval resolves a kind selector expression against the params dictionary, falling back on exception. This is part of normal Fortran kind handling.
-
= =likely benign Evaluates a Fortran parameter value and keeps the raw text if evaluation fails.Reasoning
eval evaluates a Fortran parameter value with explicit globals and params, and falls back to the raw string on error. This is routine parameter handling.
-
=likely benign Evaluates a parameter item and logs a message if evaluation fails.Reasoning
eval evaluates a parameter item with explicit namespaces and logs failures through outmess. This is standard parser behaviour.
-
= = flikely benign Converts a complex constant from Fortran source into a formatted tuple.Reasoning
eval converts a complex literal from Fortran source into a Python complex value for formatting. The input is limited to numeric source text, and the call sits inside a try/except.
-
= . = returnlikely benign Caller-frame introspection used by numpy's matrix string constructor.Reasoning
sys._getframe in numpy's mgrid/bmat path is a legitimate use to fetch caller globals for matrix string parsing; no obfuscation or malicious behavior.
-
= = =likely benign Dynamic import of a module by name in numpy's utility helper.Reasoning
__import__ on a module name parameter in numpy's _makenamedict is a standard utility for building a namespace dict of a named module; the argument is a caller-supplied module name, not hidden payload.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_c_lapack.c:2697:24/* Local variables */ static integer ie, il, mm; static real eps, anrm, bnrm; static integer itau, nlvl, iascl, ibscl;likely benign Confusable-looking local identifiers in f2c-translated LAPACK C code.Reasoning
Skeleton collision between short local variable names like ie/il/i/l is a normal artifact of f2c-generated Fortran-translated code with single-letter names; not an attack.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_c_lapack.c:9378:31/* Local variables */ static integer i__, j, k, ll, iq, lgn, msd2, smm1, spm1, spm2; static real temp; static integer curr, iperm;likely benign f2c-generated local variable declarations in LAPACK.Reasoning
Local variables i__, j, k, ll are standard f2c naming; the 'll' and 'i__' collision is a benign artifact of translation.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_c_lapack.c:9727:28/* Local variables */ static integer i__, k, n1, n2, iq, iw, iz, ptr, indx, curr, indxc, indxp; extern /* Subroutine */ intlikely benign f2c-generated LAPACK local declarations.Reasoning
Standard f2c local variable names; confusable skeleton collision is incidental to the generated code.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_c_lapack.c:10032:36static real s, t; static integer k2, n1, n2, jp, n1p1; static real eps, tau, tol; static integer jlam, imax, jmax;likely benign f2c-generated LAPACK local declarations.Reasoning
Ordinary f2c-translated local names; collision is a false positive from skeleton matching.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_c_lapack.c:16718:45/* Local variables */ static integer j, k, m, i2, j2, i4, j4, k1; static real h11, h12, h21, h22; static integer m22, ns, nu;likely benign f2c-generated LAPACK local declarations.Reasoning
Standard numerical-routine local variables in generated LAPACK code; no malicious construction.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_d_lapack.c:559:20static doublereal r__, cs; static integer ll; static doublereal sn, mu; static integer nm1, nm12, nm13, lll;likely benign f2c-generated LAPACK local declarations.Reasoning
Ordinary f2c-generated local variable names in double-precision LAPACK; false positive from identifier skeleton matching.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_d_lapack.c:2647:63/* Subroutine */ intlikely benign dgeev function signature in generated LAPACK code.Reasoning
Parameter names jobvl/jobvr/vl/vr in dgeev signature are standard LAPACK; collision is incidental.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_d_lapack.c:4061:24/* Local variables */ static integer ie, il, mm; static doublereal eps, anrm, bnrm; static integer itau, nlvl, iascl, ibscl;likely benign f2c-generated LAPACK local declarations.Reasoning
Standard f2c local names in LAPACK; no sign of hidden identifiers or payload.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_d_lapack.c:9134:28/* Local variables */ static integer i__, k, n1, n2, is, iw, iz, iq2, zpp1, indx, indxc; extern /* Subroutine */ int ;likely benign f2c-generated LAPACK local declarations.Reasoning
Routine local variable names typical of translated LAPACK; benign collision.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_d_lapack.c:9366:54static doublereal s, t; static integer k2, n2, ct, nj, pj, js, iq1, iq2, n1p1; static doublereal eps, tau, tol; static integer psm, imax, jmax;likely benign f2c-generated LAPACK local declarations.Reasoning
Standard LAPACK local declarations including psm array; skeleton collision is a false positive.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_d_lapack.c:12877:48/* Subroutine */ intlikely benign dlaev2 signature in generated LAPACK code.Reasoning
dlaev2 parameter names rt1/rt2/cs1/sn1 are standard LAPACK; collision is incidental to generated code.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_d_lapack.c:12877:65/* Subroutine */ intlikely benign Parameter named sn1 in dlaev2_ collides in skeleton with another identifier in generated LAPACK code.Reasoning
Auto-generated f2c LAPACK C code; the collision is between sn1 and a similarly shaped identifier in the same visual skeleton, a normal consequence of identifier naming in numerical code. No obfuscation or malicious behavior.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_d_lapack.c:13496:23static integer i1, i2; static doublereal t1, t2, t3, v2, v3, aa, ab, ba, bb, h11, h12, h21, h22, cs; static integer nh;likely benign Static locals t1/t2 in generated LAPACK code flagged for confusable skeleton.Reasoning
Static local variables t1, t2 in f2c-generated LAPACK routine; skeleton collision from digits in short names is a benign naming artifact.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_d_lapack.c:20362:50/* Local variables */ static integer i__, j, k, m, i2, j2, i4, j4, k1; static doublereal h11, h12, h21, h22; static integer m22, ns, nu;likely benign Local variable declarations in generated LAPACK routine trigger a skeleton collision.Reasoning
Standard generated LAPACK local variable declarations (h11, h12, k, etc.); collision is a naming artifact of short identifiers.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_s_lapack.c:554:20static real r__, cs; static integer ll; static real sn, mu; static integer nm1, nm12, nm13, lll;likely benign Local variables in generated sLAPACK routine flagged for identifier skeleton collision.Reasoning
Generated single-precision LAPACK code with ordinary short local names; skeleton collision is an artifact of the confusable-character heuristic on short identifiers.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_s_lapack.c:563:23static integer isub, iter; static real unfl, sinl, cosr, smin, smax, sinr; extern /* Subroutine */ int ,likely benign Local variable names sinl/sinr in generated LAPACK code collide in skeleton.Reasoning
Standard f2c-generated declarations of sinl/sinr etc.; no evidence of homoglyph attack, just short names colliding in skeleton.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_s_lapack.c:2637:42/* Subroutine */ intlikely benign sgeev_ parameter names flagged for identifier skeleton collision in generated code.Reasoning
Function parameter list of sgeev_ in generated LAPACK code; skeleton collision is a benign artifact of the heuristic.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_s_lapack.c:4037:24/* Local variables */ static integer ie, il, mm; static real eps, anrm, bnrm; static integer itau, nlvl, iascl, ibscl;likely benign Local variables in generated LAPACK routine flagged by confusable-skeleton heuristic.Reasoning
Generated LAPACK local variable declarations; short names like ie, il, mm collide in skeleton with no malicious content.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_s_lapack.c:9106:28/* Local variables */ static integer i__, k, n1, n2, is, iw, iz, iq2, cpp1, indx, indxc, indxp; extern /* Subroutine */ int ,likely benign Local declarations in generated sLAPACK code flagged for skeleton collision.Reasoning
Generated LAPACK local declarations with short names; collision is a heuristic artifact, not obfuscation.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_s_lapack.c:9334:54static real s, t; static integer k2, n2, ct, nj, pj, js, iq1, iq2, n1p1; static real eps, tau, tol; static integer psm, imax, jmax, ctot;likely benign Static local arrays in generated LAPACK routine flagged for skeleton collision.Reasoning
Static arrays psm and ctot and other locals in generated LAPACK code; collision is a benign naming artifact.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_s_lapack.c:12835:13/* Subroutine */ intlikely benign Parameters cs1/sn1 of slaev2_ flagged for skeleton collision in generated code.Reasoning
Parameter of slaev2_ in generated LAPACK code; cs1 and sn1 naming is standard and the collision is a heuristic artifact.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_s_lapack.c:12835:24/* Subroutine */ intlikely benign Parameter sn1 of slaev2_ flagged for skeleton collision in generated code.Reasoning
Same slaev2_ parameter list; the collision reflects only short numeric-suffix identifiers in standard LAPACK code.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_s_lapack.c:13454:17static integer i1, i2; static real t1, t2, t3, v2, v3, aa, ab, ba, bb, h11, h12, h21, h22, cs; static integer nh; static real sn;likely benign Static locals in generated sLAPACK routine flagged for skeleton collision.Reasoning
Generated LAPACK static locals t1, t2, cs, sn; heuristic false positive on short names.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_s_lapack.c:20285:50/* Local variables */ static integer i__, j, k, m, i2, j2, i4, j4, k1; static real h11, h12, h21, h22; static integer m22, ns, nu;likely benign Local variable declarations in generated LAPACK code flagged for skeleton collision.Reasoning
Generated LAPACK local variable declarations; short names collide in skeleton with no malicious signal.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_z_lapack.c:2712:24/* Local variables */ static integer ie, il, mm; static doublereal eps, anrm, bnrm; static integer itau, nlvl, iascl, ibscl;likely benign Routine local variable declarations in a bundled f2c LAPACK source file.Reasoning
Snippet shows ordinary f2c-translated LAPACK local variable declarations (ie, il, mm, itau...). The confusable collision of 'i|' skeleton comes from names like il/ie/i1 across scopes; a normal byproduct of Fortran-to-C naming, no obfuscation intent.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_z_lapack.c:9435:31/* Local variables */ static integer i__, j, k, ll, iq, lgn, msd2, smm1, spm1, spm2; static doublereal temp; static integer curr, iperm;likely benign Local variable declarations in f2c-translated LAPACK divide-and-conquer routine.Reasoning
Standard f2c-generated LAPACK locals (i__, j, k, ll, iq...) with identifier names that normally collide visually like l and 1 in Fortran-derived code. Benign.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_z_lapack.c:9783:28/* Local variables */ static integer i__, k, n1, n2, iq, iw, iz, ptr, indx, curr, indxc, indxp; extern /* Subroutine */ intlikely benign Local variables and extern prototype in translated LAPACK code.Reasoning
Typical f2c LAPACK local declarations and extern prototypes; visual skeleton collision is an artifact of short Fortran-style names.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_z_lapack.c:10091:36static doublereal s, t; static integer k2, n1, n2, jp, n1p1; static doublereal eps, tau, tol; static integer jlam, imax, jmax;likely benign Local variables in translated LAPACK routine.Reasoning
Ordinary f2c LAPACK local variable declarations; collision is a naming artifact.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_z_lapack.c:16813:45/* Local variables */ static integer j, k, m, i2, j2, i4, j4, k1; static doublereal h11, h12, h21, h22; static integer m22, ns, nu;likely benign Local variables in translated LAPACK eigenvalue routine.Reasoning
Standard translated LAPACK Hessenberg-routine locals (h11, h12, m22, ns, nu). No malicious shape.
-
# get previous frame = . = =likely benign Caller-frame lookup in numpy matrix string parsing.Reasoning
NumPy's matrix constructor uses sys._getframe().f_back to read caller globals for the matrix() string-to-matrix parsing helper; a well-known legitimate pattern in numpy's own code.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/random/src/distributions/distributions.c:624:28double p, binomial_t *binomial)likely benign Local variable declarations in binomial distribution sampler.Reasoning
Local double/RAND_INT_TYPE declarations in the binomial sampler (BTPE algorithm); single-letter names produce the collision. Benign.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/random/src/legacy/legacy-distributions.c:25:15} elselikely benign Local variable declarations in legacy random distribution code.Reasoning
Local variables in a Box-Muller/polar-method style legacy distribution routine; collision is incidental.
-
likely benign Windows-only macro mapping inline to __forceinline.
Reasoning
Conditional redefinition of inline to __forceinline on MSVC, a standard portability macro in numpy's random headers. Not a real obfuscation.
-
likely benign Windows-only macro mapping inline to __forceinline.
Reasoning
Same MSVC compatibility macro for inline, guarded by _WIN32 and not MinGW. Benign.
-
likely benign Test helper executing a string of Python code in a given dict.
Reasoning
runstring is numpy's test helper that execs a supplied code string into a namespace; exec on a non-literal is its purpose, and the test utility is not hidden from users.
-
= = =likely benign Retrieves caller module __file__ via sys._getframe in a testing utility.Reasoning
Caller-frame lookup to derive a test module's filename for decorator/test naming, a common testing idiom. The critical severity reflects the anti-analysis heuristic keyword co-occurrence, not actual evasion here.
-
""" frame = sys._getframe(1) locs, globs = frame.f_locals, frame.f_globalslikely benign Caller frame locals/globals access in numpy's test timing helper.Reasoning
Frame introspection to access caller locals and globals for assert-style code evaluation in the testing module (assert_ with a code string), legitimate test infrastructure.
-
= = 0 =likely benign Compiles test code string for timed execution in numpy testing utilities.Reasoning
compile of a generated test code string in the numpy test timing utility (assert_no_gc or similar runner); benign test infrastructure.
-
returnlikely benign Temporarily clears trace function around test function call.Reasoning
sys.settrace(None) inside a try/finally in a test decorator that disables a tracer temporarily, used to run functions without coverage/tracing interference. Legitimate testing code, flagged only by the keyword co-occurrence heuristic.
-
returnlikely benign A numpy testing decorator that saves, disables, and restores the trace function via sys.settrace in a finally block.Reasoning
The snippet shows sys.settrace(original_trace) being restored in a finally block inside a wrapper function. This is the standard pattern for a test decorator that temporarily disables a trace function and then restores the previous one. Nothing here hides code or evades analysis. The critical severity comes from the anti-analysis heuristic matching sys.exit/exec/eval elsewhere in the file, which is a weak signal in numpy's testing utilities.
-
py_ver= site_packages=; dll_list= -
| -
=likely benign A numpy docs-checking developer script that dynamically imports a package module by name and reads it from sys.modules.Reasoning
tools/refguide_check.py is a numpy developer tool that checks docstring references. Calling __import__(module_name) and then reading sys.modules[module_name] is a normal way to import modules by name when walking the package tree. The module name comes from the project's own package listing, not from untrusted input or remote data. The pattern is typical of dev tooling and is not a dropper or obfuscation.
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.
&&