PyPI / ruamel.yaml / 0.19.1
ruamel.yaml 0.19.1
- Artifact scanned
ruamel_yaml-0.19.1-py3-none-any.whl- Compared with
ruamel_yaml-0.19.0-py3-none-any.whl(0 signals introduced since)- Files
- 34 scanned, 5 skipped (binary, oversized, or unrecognised)
- Signals
- 0 critical · 0 warn · 16 info
- Scan time
- 11.1 s
- LLM review
- Reviewed by claude-haiku-5-5 (Anthropic): 16 of 16 warn and critical signals; 16 demoted to info.
- Disclude version
- 4.3.0
- Scanned (UTC)
- 2026-10-23 08:51
Signals
Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.
-
returnlikely benign Base64 decoding of YAML !!binary scalar values.Reasoning
The snippet is base64.decodebytes for !!binary YAML values, which is the standard YAML binary tag decoding. The decompress call elsewhere in the file is part of the same legitimate feature set; no hidden payload execution is shown.
-
likely benign Dynamic __import__ of a module name taken from YAML tag resolution in the constructor.
Reasoning
This is find_python_name-style code that imports a module named from a YAML tag so ruamel can resolve python/name tags, a documented feature of unsafe loaders. The dynamic import is a real capability, but it is the intended design of the library and is wrapped in ImportError handling; it is not an obfuscated dropper.
-
# object_name = '.'.join(object_name) breaklikely benign Dynamic __import__ used to resolve a module for a Python object tag.Reasoning
Same pattern as the other constructor import: resolving python object names from YAML tags in the unsafe constructor's find_python_module logic. Legitimate library behavior, with the risk inherent to the unsafe loader API rather than hidden malice.
-
likely benign Dynamic __import__ resolving a module name in the YAML constructor's python tag handling.
Reasoning
Repeated module-resolution import in the constructor for python/ tags. Consistent with ruamel's documented unsafe-constructor features; the code is not obfuscated and does not hide intent.
-
= + ..likely benign Uses frame introspection to derive a property name for caching the parser.Reasoning
sys._getframe().f_code.co_name is used to build a cache attribute name for lazily created parser objects. This is a common idiom with no malicious effect.
-
= + ..likely benign Frame introspection to build a cache attribute name for the composer.Reasoning
Same frame-name caching idiom for the composer property; benign.
-
= + ..likely benign Frame introspection to build a cache attribute name for the constructor.Reasoning
Same frame-name caching idiom for the constructor property; benign.
-
= + ..likely benign Frame introspection to build a cache attribute name for the emitter.Reasoning
Same frame-name caching idiom for the emitter property; benign.
-
= + ..likely benign Frame introspection to build a cache attribute name for the serializer.Reasoning
Same frame-name caching idiom for the serializer property; benign.
-
= + .. =likely benign Frame introspection to build a cache attribute name for the representer.Reasoning
Same frame-name caching idiom for the representer property; benign.
-
= = += flikely benign Uses the call stack to add file and line context to error messages.Reasoning
inspect.stack is used to annotate error messages with the caller's file and line for diagnostics. This is ordinary error-reporting code.
-
= = =likely benign Call-stack lookup to record function name and line for scanner debugging.Reasoning
inspect.stack is used to record the function and line of a comment or mark for debugging output. The critical severity comes from the co-located sys.exit/exec/eval mention, which is ordinary in a YAML library and not evidence of anti-analysis behavior.
-
= = # type: ignore = # type: ignorelikely benign Call-stack lookup to record caller info in the scanner's comment handling.Reasoning
Same debugging-oriented stack lookup recording caller function and line. The file's other exit/eval mentions are normal library code; no anti-analysis behavior is shown.
-
= = yield ,likely benign Call-stack lookup feeding a debug print of comment consumption.Reasoning
Stack lookup used only for an xprintf debug trace of comment usage. Benign diagnostic code; the critical severity reflects file-level co-occurrence, not this snippet.
-
= = Falselikely benign Debug logging in the YAML scanner that reads the caller's frame info to print the function name and line number.Reasoning
The snippet is a debug trace helper: it inspects the caller's frame to print function name and line number via xprintf for diagnostics. This is a common debugging idiom in the ruamel.yaml scanner. The 'anti-analysis shape' note comes only from sys.exit/exec/eval appearing elsewhere in the large file, which is normal for a parser library and does not link to this code.
-
= = Falselikely benign Second debug trace in the YAML scanner that logs caller frame info through xprintf after token processing.Reasoning
Same pattern as the sibling finding: inspect.stack()[1] is used only to log the calling function and line in a debug xprintf call inside the scanner. No execution, network, or evasion behavior is present in the snippet, and the flagged co-occurrence of exec/eval in the file is typical of a parser library.
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.
|