[AutoPR- Security] Patch moby-engine for CVE-2026-39882 [MEDIUM]#16681
Conversation
|
Azure Pipelines: 3 pipeline(s) require an authorized user to comment /azp run to run. |
|
Azure Pipelines: Successfully started running 1 pipeline(s). 2 pipeline(s) were filtered out due to trigger conditions. |
Kanishk-Bansal
left a comment
There was a problem hiding this comment.
Patch Analysis (Backported - The upstream fix spans 3 exporters (trace/metric/log), but moby-engine v25.0.3 only vendors otlptracehttp which is patched, other files are not present in our source code. Hence not patched by AI)
Fixed the changelog along with this fix.
- Buddy Build
- patch applied during the build (check
rpm.log) - patch include an upstream reference
- PR has security tag
kgodara912
left a comment
There was a problem hiding this comment.
Patch update is needed.
| + } | ||
| return err | ||
| } | ||
|
|
There was a problem hiding this comment.
It seems to be a partial fix. The upstream has two places where io.Copy is replaced with the updated signature, success and Error cases. Downstream also has the same but in switch case instead of handling it with if else. Following is the snippet,
switch sc := resp.StatusCode; {
case sc >= 200 && sc <= 299:
// Success, do not retry.
// Read the partial success message, if any.
var respData bytes.Buffer
if _, err := io.Copy(&respData, http.MaxBytesReader(nil, resp.Body, maxResponseBodySize)); err != nil
...
case sc == http.StatusTooManyRequests, sc == http.StatusServiceUnavailable:
// Retry-able failures. Drain the body to reuse the connection.
if _, err := io.Copy(io.Discard, resp.Body); err != nil {
otel.Handle(err)
}
return newResponseError(resp.Header)
The io.Copy in error case also, we should put the same bound checking even though we are discarding it but read may still consume same high memory.
Auto Patch moby-engine for CVE-2026-39882.
Autosec pipeline run -> https://dev.azure.com/mariner-org/mariner/_build/results?buildId=1095458&view=results
Merge Checklist
All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)
*-staticsubpackages, etc.) have had theirReleasetag incremented../cgmanifest.json,./toolkit/scripts/toolchain/cgmanifest.json,.github/workflows/cgmanifest.json)./LICENSES-AND-NOTICES/SPECS/data/licenses.json,./LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md,./LICENSES-AND-NOTICES/SPECS/LICENSE-EXCEPTIONS.PHOTON)*.signatures.jsonfilessudo make go-tidy-allandsudo make go-test-coveragepassSummary
What does the PR accomplish, why was it needed?
Change Log
Does this affect the toolchain?
YES/NO
Associated issues
Links to CVEs
Test Methodology