attrs 26.1.0
- Source
- https://github.com/python-attrs/attrs
- Tag scanned
26.1.0- Compared with
25.4.0(3 signals introduced since)- Files
- 84 scanned, 25 skipped (binary, oversized, or unrecognised)
- Signals
- 0 critical · 0 warn · 10 info
- Scan time
- 7.2 s
- LLM review
- Reviewed by claude-haiku-5-5 (Anthropic): 7 of 7 warn and critical signals; 7 demoted to info.
- Disclude version
- 4.0.0
- Scanned (UTC)
- 2026-10-14 18:14
Signals
Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.
-
=likely benign A pickled attrs Attribute fixture used in the pickling tests.Reasoning
This is a pickle protocol-5 byte string (header \x80\x05, references to attr._make.Attribute and builtins). It is a test fixture for checking that attrs classes unpickle correctly across versions. Test fixtures of this kind are expected to contain binary data.
-
=likely benign A pickled attrs Attribute fixture used in the pickling tests.Reasoning
Same pattern as the other fixtures: a pickle byte string referencing attr._make.Attribute and builtins, with a serialized field name. It is a regression fixture in the test suite and has no execution path.
-
=likely benign A pickled attrs Attribute fixture used in the pickling tests.Reasoning
This is a pickle fixture of the same shape, used to test deserialization of attrs objects. The byte literal is test data and is not executed as a payload.
-
-
-
-
dismissed A commit-hash URL in the attrs naming docs was flagged as a base64 blob.
Reasoning
The raw-pass base64 hit is a GitHub commit URL with a 40-character hex hash fragment in a markdown link. It is prose documentation, not an encoded payload, and the raw pass has a high false-positive rate.
-
""" bytecode = compile(script, filename, "exec") eval(bytecode, globs, locs)likely benign attrs compiles and evals its own generated method source at runtime.Reasoning
This is attrs' own code-generation helper: it compiles and evals source text it builds from its internal templates to create methods such as __init__ and __repr__. That is a known, legitimate use in a library that generates code at runtime. The non-literal argument is expected here, not attacker-controlled input.
-
=likely benign The paired eval executes attrs' generated bytecode.Reasoning
The eval call executes the bytecode produced by the compile on the line above, as part of attrs' internal method generation. The inputs are library-generated, so this matches the pattern of a legitimate code generator.
-
=likely benign attrs reads the caller's module name via frame introspection to set __module__.Reasoning
sys._getframe(1).f_globals is a standard idiom for reading the calling module's __name__, which attrs uses to set __module__ on classes it creates. The critical severity comes from the anti-analysis shape heuristic, which matches the presence of exec/eval elsewhere in the same file. Nothing here hides behaviour or evades analysis.
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.
&&