attrs 26.1.0
- Source
- https://github.com/python-attrs/attrs
- Artifact scanned
attrs-26.1.0-py3-none-any.whl- Compared with
attrs-25.4.0-py3-none-any.whl(0 signals introduced since)- Files
- 29 scanned, 6 skipped (binary, oversized, or unrecognised)
- Signals
- 0 critical · 0 warn · 3 info
- Scan time
- 4.6 s
- LLM review
- Reviewed by claude-haiku-5-5 (Anthropic): 3 of 3 warn and critical signals; 3 demoted to info.
- Disclude version
- 4.3.0
- Scanned (UTC)
- 2026-10-23 00:24
Signals
Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.
-
""" bytecode = compile(script, filename, "exec") eval(bytecode, globs, locs)likely benign compile() of library-generated method source in attrs' code generator.Reasoning
This is the attrs library's _make_method helper, which compiles generated source for __init__/__repr__ methods. The script is built from the class's own attribute names inside the library, not from external input, so the compile call is a known code-generation pattern and not an obfuscated payload.
-
=likely benign eval() of attrs-generated bytecode to create a method.Reasoning
The eval runs the bytecode produced just above by attrs' own code generator, with a controlled globals/locals namespace. It is a standard, documented way for attrs to build fast methods, and no network, process, or decoding activity appears in the snippet.
-
=likely benign Frame introspection to set a generated class's __module__ to its caller's module name.Reasoning
sys._getframe(1).f_globals.get('__name__') is the usual idiom for finding the calling module's name so a dynamically created class can get the correct __module__. The critical severity comes from the heuristic that the file also contains exec/eval, which is expected in attrs. No anti-analysis behavior is present.
Reproduce This Scan
Run disclude locally to verify. These commands scan the published file; the "new in this release" marks come from comparing it with the previous release's file, which they don't repeat. Add --format sarif for SARIF output. Add --llm (with an API key in the environment) to include the LLM review.
|