dulwich 1.2.18
- Source
- https://github.com/dulwich/dulwich
- Artifact scanned
dulwich-1.2.18-py3-none-any.whl- Compared with
dulwich-1.2.17-py3-none-any.whl(0 signals introduced since)- Files
- 89 scanned, 5 skipped (binary, oversized, or unrecognised)
- Signals
- 0 critical · 0 warn · 11 info
- Scan time
- 10.9 s
- LLM review
- Reviewed by claude-haiku-5-5 (Anthropic): 11 of 11 warn and critical signals; 11 demoted to info.
- Disclude version
- 4.3.0
- Scanned (UTC)
- 2026-10-24 09:12
Signals
Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.
-
= =likely benign Launches the user's configured pager command through a shell for CLI output.Reasoning
The shell=True Popen runs a pager command returned by _get_pager_command, which in git tooling comes from configuration or environment variables like GIT_PAGER/PAGER. That is the documented way git pagers work, and the snippet shows no obfuscation or hidden payload.
-
= =likely benign Imports a named dependency to print its version in a diagnostics command.Reasoning
__import__ is applied to a loop variable over a list of dependency names to read __version__ for a diagnostic log line. The dependency names are a fixed set in the CLI's own code, so this is a version-reporting pattern, not dynamic code loading from untrusted input.
-
=likely benign Runs a configured filter command through the shell, as git filter drivers do.Reasoning
subprocess.run with shell=True executes a command assembled from the repository's filter configuration, with extra environment variables merged in. Git filter drivers are user-configured shell commands by design. The trust boundary is the local repo config, which is a real but expected risk.
-
# Decompress and parse the object = # Parse headerlikely benign Decompresses a fetched git object before parsing its header.Reasoning
zlib.decompress is applied to a fetched git loose object, which is zlib-compressed by the git format. Decompression is required to parse objects, so this is ordinary protocol handling rather than a hidden payload.
-
=likely benign Starts a configured long-running filter process via the shell.Reasoning
The Popen call runs self.process_cmd through a shell for a long-running filter process. This matches git's process filter protocol, where the command comes from git config (filter.<name>.process). Config-driven execution is expected, and the snippet shows no concealment.
-
=likely benign Runs a configured custom merge driver command via the shell.Reasoning
subprocess.run with shell=True executes a merge driver command taken from git configuration (merge.<driver>.driver). Git supports this feature, and the command is a user-configured string, not an encoded or hidden payload.
-
""" dcomp = zlib.decompressobj() # +1 so overrun surfaces as unconsumed_tail rather than being truncated. dcomped = dcomp.decompress(string, max_size + 1)likely benign Bounded zlib decompression of git object data.Reasoning
decompressobj is used with a max_size bound to inflate git object data, with a comment explaining the unconsumed_tail handling. This is standard bounded zlib streaming for git pack and object data.
-
= =likely benign Decompresses zlib data streams stored in git pack files.Reasoning
decompressobj is used to read zlib streams from pack files, which git stores compressed. The code validates the size argument first, and the decompression is the expected pack reading path.
-
=likely benign Decodes and decompresses a git binary patch hunk.Reasoning
zlib.decompress over git_base85_decode output is the standard decoding of git binary patch hunks, and the surrounding code catches decode errors and raises a clear ValueError. It is a normal patch-parsing path.
-
# Command failed, pause rebaselikely benign Runs an interactive-rebase exec command through the shell.Reasoning
subprocess.run with shell=True executes an 'exec' entry from the rebase todo list, the same shell command semantics git rebase uses for exec lines. The command comes from the user's own rebase plan, and the code pauses the rebase on failure, which is expected behavior.
-
# Run the default key command to get the key =likely benign Runs a configured command to obtain the default signing key.Reasoning
subprocess.run with shell=True runs a default key command, which is configured for GPG signing (for example, a command that prints the key id). Configured commands are a normal feature, and the snippet shows no concealment or network activity.
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.
|