Skip to content

[AutoPR- Security] Patch curl for CVE-2026-11856 [MEDIUM]#18060

Open
azurelinux-security wants to merge 2 commits into
microsoft:3.0-devfrom
azurelinux-security:azure-autosec/curl/3.0/1163781
Open

[AutoPR- Security] Patch curl for CVE-2026-11856 [MEDIUM]#18060
azurelinux-security wants to merge 2 commits into
microsoft:3.0-devfrom
azurelinux-security:azure-autosec/curl/3.0/1163781

Conversation

@azurelinux-security

@azurelinux-security azurelinux-security commented Jul 20, 2026

Copy link
Copy Markdown

Auto Patch curl for CVE-2026-11856.

Autosec pipeline run -> https://dev.azure.com/mariner-org/mariner/_build/results?buildId=1163781&view=results

CVE-2026-11856 : Single Patch Backporter Pipeline Run -> https://dev.azure.com/mariner-org/mariner/_build/results?buildId=1163784&view=results

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?

Change Log
Does this affect the toolchain?

YES/NO

Associated issues
  • N/A
Links to CVEs
Test Methodology

@azure-pipelines

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

@AkarshHCL

Copy link
Copy Markdown

1.Ai Backported patch did not fixed the vulnerability had to make changes to the patch.
2.The upstream fix was for the source code which is cred based architecture which azurelinux source code does not have.
3. Did a POC to test if vulnerability is fixed or not, POC link-https://hackerone.com/reports/3793260
4. POC output before fix-
image
POC output after fix-
image
5.Buddy Build link-https://dev.azure.com/mariner-org/mariner/_build/results?buildId=1164535&view=results
6. Patch is getting applied cleanly-
image

@Kanishk-Bansal
Kanishk-Bansal marked this pull request as ready for review July 22, 2026 05:49
@Kanishk-Bansal
Kanishk-Bansal requested a review from a team as a code owner July 22, 2026 05:49

@mfrw mfrw left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The revised backport builds and passes the normal origin/credential regression test, but its serialized identity keys are not equivalent to upstream and can fail to detect valid credential or destination changes.

Request @kgodara912 to please take a look once

+ data->conn->handler->scheme,
+ data->conn->host.name,
+ data->conn->remote_port);
+ char *newcreds = aprintf("%s:%s", userp ? userp : "",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The way our backport stores credentials, using aprintf does not uniquely identify the (username, password) pair. For example, these valid libcurl inputs serialize identically:

username = "a:b", password = "c"   -> "a:b:c"
username = "a",   password = "b:c" -> "a:b:c"

I think the credential identity is ambigious

also,
origin identity omits upstream destination properties, aprintf usage notably omits conn->scope_id (and any Unix-socket identity), so two destinations that upstream considers different can compare equal.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants