Skip to content

Patch fluent-bit for CVE-2026-33630 [HIGH] - #18779

Draft
Sumit Jena (SumitJenaHCL) wants to merge 1 commit into
microsoft:fasttrack/3.0from
Kanishk-Bansal:topic_fluent-bit-3.0
Draft

Patch fluent-bit for CVE-2026-33630 [HIGH]#18779
Sumit Jena (SumitJenaHCL) wants to merge 1 commit into
microsoft:fasttrack/3.0from
Kanishk-Bansal:topic_fluent-bit-3.0

Conversation

@SumitJenaHCL

@SumitJenaHCL Sumit Jena (SumitJenaHCL) commented Sep 9, 2026

Copy link
Copy Markdown
Merge Checklist

All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)

  • The toolchain has been rebuilt successfully (or no changes were made to it)
  • The toolchain/worker package manifests are up-to-date
  • Any updated packages successfully build (or no packages were changed)
  • Packages depending on static components modified in this PR (Golang, *-static subpackages, etc.) have had their Release tag incremented.
  • Package tests (%check section) have been verified with RUN_CHECK=y for existing SPEC files, or added to new SPEC files
  • All package sources are available
  • cgmanifest files are up-to-date and sorted (./cgmanifest.json, ./toolkit/scripts/toolchain/cgmanifest.json, .github/workflows/cgmanifest.json)
  • LICENSE-MAP files are up-to-date (./LICENSES-AND-NOTICES/SPECS/data/licenses.json, ./LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md, ./LICENSES-AND-NOTICES/SPECS/LICENSE-EXCEPTIONS.PHOTON)
  • All source files have up-to-date hashes in the *.signatures.json files
  • sudo make go-tidy-all and sudo make go-test-coverage pass
  • Documentation has been updated to match any changes to the build system
  • Ready to merge

Summary

What does the PR accomplish, why was it needed?

  • Fixes CVE-2026-33630 / GHSA-6wfj-rwm7-3542, a double-free in the c-ares copy bundled in fluent-bit (lib/c-ares-1.33.1).
  • Query callbacks were invoked while the query was still linked into channel->queries_by_qid and channel->all_queries. Calling ares_cancel() from inside a callback therefore freed the query, and the caller then freed it a second time.
  • The upstream fix targets the c-ares 1.34 branch and does not apply to the bundled 1.33.1 tree: 1.34 renamed the internal API (ares_array_t vs. ares__array_t), unified read_tcp_data()/read_udp_packets_fd() into a single read_answers(), and added a requested_server argument to ares_send_query() that does not exist in 1.33.1. The upstream commit has therefore been backported in full and adapted, rather than applied verbatim.
Change Log
  • Added SPECS/fluent-bit/CVE-2026-33630.patch, a full backport of upstream c-ares commit d823199b, adapted to the bundled 1.33.1 tree:
    • ares_flush_requeue() — a single shared, iterative drain for the deferred requeue/endqueue list that every flush site now funnels through. It detaches each query from all lookup lists before invoking its callback (the CVE-2026-33630 fix), and re-dispatches retries by appending back onto the same list instead of recursing (upstream issue populate user's ssh/authorized_keys #1043).
    • ares__send_query() split into a public wrapper that owns a requeue list and drains it, plus ares__send_query_int() which defers retries and end-queries onto the caller's list. The wrapper re-checks queries_by_qid before reporting success, since a deferred retry may have terminally failed and freed the query during the drain.
    • process_timeouts() and both read paths now defer through the shared drain. read_udp_packets_fd() previously ignored entry.type and re-sent REQUEUE_ENDQUERY entries instead of completing them; routing it through ares_flush_requeue() corrects that as well.
    • end_query() also detaches on its remaining inline path, which is still reachable via ares__requeue_query() from ares__close_connection().
    • Both upstream regression tests were carried across into test/ares-test-mock.cc: MockUDPChannelTest.CancelInCallbackNoDoubleFree and MockRetryDepthChannelTest.HighRetryNoStackOverflow.
  • SPECS/fluent-bit/fluent-bit.spec: added Patch14, incremented Release 6 → 7, added a changelog entry.
Does this affect the toolchain?

NO

Associated issues
  • N/A
Links to CVEs
Test Methodology

Signed-off-by: SumitJenaHCL <v-sumitjena@microsoft.com>
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

@microsoft-github-policy-service microsoft-github-policy-service Bot added Packaging fasttrack/3.0 PRs Destined for Azure Linux 3.0 labels Sep 9, 2026
@SumitJenaHCL Sumit Jena (SumitJenaHCL) changed the title Patch fluent-bit for CVE-2026-33630 [High] Patch fluent-bit for CVE-2026-33630 Sep 9, 2026
@SumitJenaHCL Sumit Jena (SumitJenaHCL) changed the title [High] Patch fluent-bit for CVE-2026-33630 Patch fluent-bit for CVE-2026-33630 [HIGH] Sep 9, 2026
@SumitJenaHCL

Copy link
Copy Markdown
Author

Buddy Build has passed.

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

Labels

fasttrack/3.0 PRs Destined for Azure Linux 3.0 Packaging

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant