Skip to content

fix(libslirp): upgrade to 4.9.7 to address CVEs - #19974

Open
Kanishk Bansal (Kanishk-Bansal) wants to merge 1 commit into
4.0from
libslirp-4.9.7-cves
Open

Kanishk Bansal (Kanishk-Bansal) wants to merge 1 commit into
4.0from
libslirp-4.9.7-cves

Conversation

@Kanishk-Bansal

@Kanishk-Bansal Kanishk Bansal (Kanishk-Bansal) commented Nov 5, 2026 •

Copy link
Copy Markdown

Summary

Upgrade libslirp from 4.9.1 → 4.9.7 by bumping the Fedora rawhide dist-git pin to 842747952c1b.

CVEs addressed (5)

CVE Severity Fixed in Reference
CVE-2026-120830 High 4.9.7 link
CVE-2026-95508 High 4.9.6 link
CVE-2026-120831 Medium 4.9.7 link
CVE-2026-9539 Medium 4.9.2 link
CVE-2026-115449 Low 4.9.6 link

CVEs not addressed by this upgrade (0)

None — all open Astrolabe CVEs for this package are addressed.

Changes

  • base/comps/libslirp/libslirp.comp.toml: pin upstream-commit = 842747952c1b… (Fedora rawhide)
  • locks/libslirp.lock: refreshed via azldev comp update -p libslirp
  • specs/l/libslirp/: re-rendered (Version 4.9.1 → 4.9.7, Release 5%{?dist} → 5%{?dist})

Testing

  • azldev comp build -p libslirp (x86_64): success (2 RPMs)
  • Smoke test in AZL4 mock chroot with the built RPMs installed:
4.9.7
  • All ELF binaries/libraries in the built RPMs resolve their shared libraries (ldd: no not found)
  • SONAMEs vs. currently published 4.0 package: unchanged
  • azldev comp render / comp update idempotent on the committed state; commit message passes commitizen

Notes for reviewers

  • Pinned to Fedora rawhide because the fixed version is not available on f43.

Copilot AI balanced review requested due to automatic review settings November 5, 2026 09:03

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The PR description lists CVE-2026-95508 as unaddressed despite the imported changelog listing a fix, so the CVE table and fixed-CVE count need reconciliation.

1 open issue
What changed in this PR

Upgrades Azure Linux’s libslirp from 4.9.1 to 4.9.7 using a pinned Fedora rawhide commit to incorporate upstream security fixes.

Changes:

  • Moves libslirp into a dedicated component definition with an explicit upstream pin.
  • Refreshes the component lock and source checksum.
  • Updates the rendered spec’s version, packaged license files, and upstream changelog.
File Description
specs/​l/​libslirp/​sources Updates the source archive and SHA512 checksum for 4.9.7.
specs/​l/​libslirp/​libslirp.spec Updates the version, includes LICENSE, and imports upstream changelog entries.
locks/​libslirp.lock Records the new upstream commit and refreshed fingerprints.
base/​comps/​libslirp/​libslirp.comp.toml Adds the dedicated definition pinned to Fedora rawhide.
base/​comps/​components.toml Removes the inline entry replaced by the dedicated definition.

Review effort: Balanced


* Tue Sep 22 2026 Marc-André Lureau <marcandre.lureau@redhat.com> - 4.9.5-1
- new version, rhbz#2524215
- Fix CVE-2026-95508: heap buffer overflow in DHCPv6/TFTP response builders on small interface MTU

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reconciled: the PR description now lists CVE-2026-95508 as addressed (fixed upstream in 4.9.6, included in 4.9.7), along with CVE-2026-120830, CVE-2026-120831 and CVE-2026-115449 — 5 CVEs in total, all claimed against this PR in Astrolabe. The commit message has been updated to match.

@Kanishk-Bansal

Copy link
Copy Markdown
Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
2 pipeline(s) were filtered out due to trigger conditions.

@Kanishk-Bansal Kanishk Bansal (Kanishk-Bansal) added security CVE-fixed-by-upgrade CVE fixed by package upgrade 4.0 Issues and PRs for Azure Linux 4.0 targets-4.0 labels Nov 5, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please update the commit message to list all the fixed CVEs.

Bump the Fedora rawhide dist-git pin to libslirp-4.9.7:
https://src.fedoraproject.org/rpms/libslirp/c/842747952c1b96eb5376c5d44f52728f9fd8b5f8

Addresses 5 CVE(s):
CVE-2026-115449, CVE-2026-120830, CVE-2026-120831, CVE-2026-9539,
CVE-2026-95508

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@Kanishk-Bansal

Copy link
Copy Markdown
Author

Elaheh Dehghani (@ellie-di) Thanks — updated the commit message to list all 5 CVEs addressed by this PR (CVE-2026-115449, CVE-2026-120830, CVE-2026-120831, CVE-2026-9539, CVE-2026-95508), matching the PR description and Astrolabe. Only the commit message changed; the rendered spec, sources and lock are identical to the previous push.

@Kanishk-Bansal

Copy link
Copy Markdown
Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
2 pipeline(s) were filtered out due to trigger conditions.


Name: libslirp
Version: 4.9.1
Version: 4.9.7

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (blocking): There looks to be a possible upstream issue. I'm getting a reproducer built and will share that shortly, but sharing the raw copilot review information below

====

issue (blocking): Preserve complete TFTP transfers when negotiating larger blocks

The selected 4.9.7 source introduces a TFTP regression compared with 4.9.1. With TFTP enabled, the default IPv4 MTU of 1500, a file larger than one block, and a valid blksize=8192 request, 4.9.7 advertises 8192 in OACK but sends only 1468 data bytes and terminates the session. A client interprets a DATA packet shorter than the negotiated block size as EOF, so a transfer can finish with a truncated file.

The mismatch is between tftp_handle_rrq() accepting the requested size and tftp_send_next_block() independently limiting the read to the MTU, then treating the short read as EOF. In 4.9.1, negotiation instead caps the advertised size at 1428, and the sender uses that same size.

I reproduced the difference using the actual upstream negotiation assignment and sender functions in an isolated C harness with the same 20-KB file-read model:

4.9.1: requested=8192 negotiated=1428 first_data=1428 active=1
4.9.7: requested=8192 negotiated=8192 first_data=1468 active=0

The 4.9.7 source used for that reproduction is byte-identical to src/tftp.c in the archive whose SHA512 matches this PR's sources entry. This is a function-level reproduction with mocked allocation, file reads, and UDP output, not an end-to-end guest transfer.

Please backport a fix that caps the negotiated block size to the usable MTU payload before sending OACK, or select an upstream release containing an equivalent fix. Keep the existing bounds checks; reverting the security hardening is not the fix. Add the patch through the component's canonical configuration, regenerate the spec/lock/source artifacts as applicable, and verify a multi-block transfer's final length and checksum.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

4.0 Issues and PRs for Azure Linux 4.0 CVE-fixed-by-upgrade CVE fixed by package upgrade security targets-4.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants