-
SECURITY: Refuse
porcelain.submodule_updatewhen the submodule path
or a parent directory is already a symlink. A victim's worktree could
otherwise redirect the clone (including the submodule.gitfile) into
the link target. Reported by AnkitSingh411. (Jelmer Vernooij) -
SECURITY: Refuse to open a pack index whose fanout claims more objects
than the file could possibly hold. Loading previously succeeded and
lookups then returned empty names or raised struct errors deep in the
call stack. (Jelmer Vernooij) -
HARDEN: Add a
sha1dcextra:pip install dulwich[sha1dc]pulls
in thesha1dcpackage and dulwich picks it up for object ids, so
SHA-1 collisions are detected rather than silently accepted. Without it,
dulwich falls back tohashlib.sha1. (Jelmer Vernooij) -
SECURITY: Strip terminal control bytes from sideband progress and fatal
messages received from a remote, so a hostile server can no longer inject
ANSI escape sequences into the user's terminal (matching git's fix for
CVE-2024-52005). (Jelmer Vernooij) -
HARDEN: Cap tree traversal depth in
iter_tree_contentsat 1280 levels
(core.maxTreeDepth). A tree nested more deeply raises
MaxTreeDepthExceeded. (Jelmer Vernooij) -
Free the object store passed to
commit_treewithout the cycle
collector. Its nested helper functions kept it in a reference cycle,
so pack files stayed open after use. (Zainab Mehmut) -
Emit the
\ No newline at end of filemarker when the final line is
unchanged context. Patches ending with such a line were truncated and
git applyrejected them as corrupt. (Jelmer Vernooij, #2543) -
Honour
protocol.<name>.allowfor submodule URLs; the file transport
is now refused for submodules by default. (Kartik Kenchi) -
Yield checksum mismatches from
porcelain.fsckinstead of raising
them. Object store lookups now validate the SHA, so a corrupt loose
object aborted the iteration. (Jelmer Vernooij, #2552)