Bug 2521756 - CVE-2026-53587 rust-libgit2-sys0.17: libgit2: Denial of Service due to heap out-of-bounds read from malicious Git server [fedora-all]
Summary: CVE-2026-53587 rust-libgit2-sys0.17: libgit2: Denial of Service due to heap o...
Keywords:
Status: ASSIGNED
Alias: None
Product: Fedora
Classification: Fedora
Component: rust-libgit2-sys0.17
Version: rawhide
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: ---
Assignee: Rust SIG
QA Contact:
URL:
Whiteboard: {"flaws": ["ebcd85d7-980a-4766-b836-1...
Depends On:
Blocks: CVE-2026-53587
TreeView+ depends on / blocked
 
Reported: 2026-08-24 08:00 UTC by Vladimir Vasilev
Modified: 2026-08-27 12:40 UTC (History)
2 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Vladimir Vasilev 2026-08-24 08:00:06 UTC
Disclaimer: Community trackers are created by Red Hat Product Security team on a best effort basis. Package maintainers are required to ascertain if the flaw indeed affects their package, before starting the update process.

libgit2 is a portable C implementation of the Git core methods provided as a linkable library with a solid API, allowing to build Git functionality into your application. Prior to 1.8.6 and 1.9.5, libgit2 performs a fixed-size strncmp in set_data in src/libgit2/transports/smart_pkt.c without first verifying that the smart-protocol pkt-line capability buffer contains 14 bytes. A malicious Git server can make bytes after the pkt-line complete object-format=, causing format_str to advance beyond the pkt-line and the following memchr length calculation to underflow. The resulting heap out-of-bounds walk can crash a client during the first refs-advertisement packet over HTTP, HTTPS, SSH, or the Git protocol. This issue is fixed in versions 1.8.6 and 1.9.5.

Comment 1 Fabio Valentini 2026-08-27 11:55:58 UTC
This is basically not fixable in rust-libgit2-sys0.17 since it is, specifically, a wrapper around libgit2 v1.7 only.

Almost all packages that use libgit2 via the Rust bindings have already been migrated to newer versions, and this package is already retired in F44+.

I'm looking into migrating the remaining users to rust-git2 v0.20+ on Fedora 43 and in EPEL too, at which point I would consider this issue resolved.

As far as I can tell, the only remaining package that uses rust-libgit2-sys0.17 in Fedora 43 and EPEL 9 is rust-git-absorb.

Comment 2 Fabio Valentini 2026-08-27 12:40:04 UTC
(Correction: libgit2-sys v0.17 is a wrapper around libgit2 v1.8, so updating the vendored libgit2 copy *might* be possible, but arduous. I'd still rather just have everything move to bindings for libgit2 v1.9.)


Note You need to log in before you can comment on or make changes to this bug.