PyPI / pyasn1 / 0.6.4

pyasn1 0.6.4

Source
https://github.com/pyasn1/pyasn1
Tag scanned
v0.6.4
Compared with
v0.6.3 (0 signals introduced since)
Files
147 scanned, 4 skipped (binary, oversized, or unrecognised)
Signals
0 critical · 0 warn · 9 info
Scan time
7.9 s
LLM review
Reviewed by claude-haiku-5-5 (Anthropic): 9 of 9 warn and critical signals; 9 demoted to info.
Disclude version
4.1.0
Scanned (UTC)
2026-10-21 23:19

Signals

Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.

  1. info warn → info by review whitespace-anomaly docs/source/pyasn1/type/univ/setof.rst:11:13

    invisible whitespace U+00A0 in indentation (raw pass, confidence 0.80)

       :members: isValue, isSameTypeWith, isSuperTypeOf, tagSet, effectiveTagSet, tagMap, componentType, subtypeSpec,
                ⟨U+00A0⟩getComponentByPosition, setComponentByPosition, clear, reset, isInconsistent
    
       .. note::
    likely benign LLM, confidence 0.90 Documentation file with a U+00A0 non-breaking space in the indentation of a :members: option list.
    Reasoning

    A non-breaking space in the indentation of a reStructuredText autodoc :members: option list is a typical artifact of copy-pasting or editor autoformatting in documentation. It is not executable code and carries no payload, so it poses no supply-chain risk.

  2. info warn → info by review dynamic-attribute pyasn1/codec/ber/decoder.py:2235:16

    reach-by-name through `globals` (ast pass, confidence 0.60)

            warnings.warn(f"{attr} is deprecated. Please use {newAttr} instead.", DeprecationWarning, stacklevel=2)
            return globals()[newAttr]
        raise AttributeError(attr)
    likely benign LLM, confidence 0.90 Module __getattr__ that emits a DeprecationWarning and forwards old attribute names to their new names within the same module.
    Reasoning

    This is the standard PEP 562 module-level __getattr__ used for deprecation shims: it warns about a renamed attribute and returns globals()[newAttr], a lookup of a name defined in the same module. The lookup key comes from a fixed mapping, not untrusted input, so there is no dynamic execution or exfiltration.

  3. info warn → info by review dynamic-attribute pyasn1/codec/ber/encoder.py:953:16

    reach-by-name through `globals` (ast pass, confidence 0.60)

            warnings.warn(f"{attr} is deprecated. Please use {newAttr} instead.", DeprecationWarning, stacklevel=2)
            return globals()[newAttr]
        raise AttributeError(attr)
    likely benign LLM, confidence 0.90 Module-level __getattr__ deprecation shim forwarding renamed attributes via globals().
    Reasoning

    Same PEP 562 deprecation-forwarding pattern: a warning followed by a same-module globals() lookup of a known new name. This is a common and legitimate way to keep backward compatibility after renaming.

  4. info warn → info by review dynamic-attribute pyasn1/codec/cer/decoder.py:148:16

    reach-by-name through `globals` (ast pass, confidence 0.60)

            warnings.warn(f"{attr} is deprecated. Please use {newAttr} instead.", DeprecationWarning, stacklevel=2)
            return globals()[newAttr]
        raise AttributeError(attr)
    likely benign LLM, confidence 0.90 Module __getattr__ deprecation shim that maps old names to new module attributes.
    Reasoning

    Identical deprecation shim using globals() for same-module lookup of renamed names. Benign backward-compatibility code.

  5. info warn → info by review dynamic-attribute pyasn1/codec/cer/encoder.py:330:16

    reach-by-name through `globals` (ast pass, confidence 0.60)

            warnings.warn(f"{attr} is deprecated. Please use {newAttr} instead.", DeprecationWarning, stacklevel=2)
            return globals()[newAttr]
        raise AttributeError(attr)
    likely benign LLM, confidence 0.90 Module-level __getattr__ forwarding deprecated attribute names to new ones via globals().
    Reasoning

    Same deprecation-forwarding __getattr__ pattern with a fixed same-module globals() lookup; no untrusted input reaches the lookup.

  6. info warn → info by review dynamic-attribute pyasn1/codec/der/decoder.py:119:16

    reach-by-name through `globals` (ast pass, confidence 0.60)

            warnings.warn(f"{attr} is deprecated. Please use {newAttr} instead.", DeprecationWarning, stacklevel=2)
            return globals()[newAttr]
        raise AttributeError(attr)
    likely benign LLM, confidence 0.90 Deprecation alias via module __getattr__ returning globals()[newAttr].
    Reasoning

    Standard PEP 562 deprecation alias with a DeprecationWarning and a same-module globals() lookup. Consistent with the library's compatibility handling.

  7. info warn → info by review dynamic-attribute pyasn1/codec/der/encoder.py:125:16

    reach-by-name through `globals` (ast pass, confidence 0.60)

            warnings.warn(f"{attr} is deprecated. Please use {newAttr} instead.", DeprecationWarning, stacklevel=2)
            return globals()[newAttr]
        raise AttributeError(attr)
    likely benign LLM, confidence 0.90 Module __getattr__ shim that warns on deprecated names and resolves the replacement from module globals.
    Reasoning

    Same deprecation-forwarding shim. The dynamic name comes from a fixed mapping in the module, so this is not an obfuscated or malicious lookup.

  8. info warn → info by review dynamic-attribute pyasn1/codec/native/decoder.py:243:16

    reach-by-name through `globals` (ast pass, confidence 0.60)

            warnings.warn(f"{attr} is deprecated. Please use {newAttr} instead.", DeprecationWarning, stacklevel=2)
            return globals()[newAttr]
        raise AttributeError(attr)
    likely benign LLM, confidence 0.90 Module-level __getattr__ that warns about deprecated names and returns their replacements from globals().
    Reasoning

    Deprecation shim using a module __getattr__ and globals() for renamed attributes. Legitimate compatibility code with no external input or execution sink.

  9. info warn → info by review dynamic-attribute pyasn1/codec/native/encoder.py:284:16

    reach-by-name through `globals` (ast pass, confidence 0.60)

            warnings.warn(f"{attr} is deprecated. Please use {newAttr} instead.", DeprecationWarning, stacklevel=2)
            return globals()[newAttr]
        raise AttributeError(attr)
    likely benign LLM, confidence 0.90 Deprecation forwarding through module __getattr__ and globals() in the native encoder.
    Reasoning

    Same PEP 562 deprecation alias pattern. The reflective lookup is bounded to names the module itself defines, so this is a normal backward-compatibility mechanism.

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.

cargo install disclude --version 4.1.0
git clone https://github.com/pyasn1/pyasn1 pyasn1 && cd pyasn1
git checkout v0.6.4
disclude scan --severity info --diff v0.6.3 .