Skip to content

Test ZIP extraction limits against high-compression archives - #75264

Merged
pelikhan merged 2 commits into
mainfrom
copilot/uk-ai-resilience-tier-b-bound-zip-extraction
Nov 6, 2026
Merged

pelikhan merged 2 commits into
mainfrom
copilot/uk-ai-resilience-tier-b-bound-zip-extraction

Conversation

Copilot AI commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

ZIP bombs can exhaust resources during log extraction. Add a highly compressible archive fixture to verify oversized uncompressed content is rejected before extraction.

  • Regression coverage: Create a 2 MiB highly compressible ZIP entry, set the total-size limit below its uncompressed size, and assert rejection leaves the destination empty.

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix uncontrolled decompression in logs_download_zip.go Test ZIP extraction limits against high-compression archives Nov 6, 2026
Copilot AI requested a review from gh-aw-bot November 6, 2026 01:12
@pelikhan
pelikhan marked this pull request as ready for review November 6, 2026 03:52
Copilot AI auto review requested due to automatic review settings November 6, 2026 03:52
@pelikhan
pelikhan merged commit d2fa9ce into main Nov 6, 2026
49 checks passed
@pelikhan
pelikhan deleted the copilot/uk-ai-resilience-tier-b-bound-zip-extraction branch November 6, 2026 03:52
@github-actions

github-actions Bot commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

βœ… Design Decision Gate πŸ—οΈ completed the design decision gate check. See the comment below for the result and any generated ADR draft.

Design Decision Gate πŸ—οΈ

Outcome: reported_no_action

The agent completed and reported no action. A no-op output alone does not verify that all required work was completed or that publication was possible.

Agent messages are omitted from this comment. The category uses structured run status, not interpretation of agent prose.

Generated from Design Decision Gate πŸ—οΈ Β· routed: gpt56 max Β· ~1 AIC Β· βŒ– ~2 AIC Β· ⊞ 7.7K Β· β—·

πŸ—οΈ ADR gate enforced by Design Decision Gate πŸ—οΈ

@github-actions

github-actions Bot commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

🧠 Matt Pocock Skills Reviewer has completed the skills-based review. βœ…

🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer

@github-actions

github-actions Bot commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

βœ… Ponytail Reviewer completed successfully!

Ponytail Reviewer

Outcome: reported_no_action

The agent completed and reported no action. A no-op output alone does not verify that all required work was completed or that publication was possible.

Agent messages are omitted from this comment. The category uses structured run status, not interpretation of agent prose.

Generated from Ponytail Reviewer Β· routed: gpt56 max Β· ~2 AIC Β· βŒ– ~1 AIC Β· ⊞ 118 Β· β—·

Generated by Ponytail Reviewer for #75264

@github-actions

github-actions Bot commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

βœ… PR Code Quality Reviewer completed the code quality review.

πŸ”Ž Code quality review by PR Code Quality Reviewer

@github-actions

github-actions Bot commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

βœ… PR Specification Reviewer completed successfully!

PR Specification Reviewer

Outcome: reported_no_action

The agent completed and reported no action. A no-op output alone does not verify that all required work was completed or that publication was possible.

Agent messages are omitted from this comment. The category uses structured run status, not interpretation of agent prose.

Generated from PR Specification Reviewer Β· gpt56 Β· ~1 AIC Β· βŒ– ~1 AIC Β· ⊞ 1.6K Β· β—·

Generated by PR Specification Reviewer for #75264

@github-actions

github-actions Bot commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

βœ… Test Quality Sentinel completed test quality analysis.

Test Quality Sentinel

Outcome: reported_no_action

The agent completed and reported no action. A no-op output alone does not verify that all required work was completed or that publication was possible.

Agent messages are omitted from this comment. The category uses structured run status, not interpretation of agent prose.

Generated from Test Quality Sentinel Β· routed: gpt56 max Β· ~1 AIC Β· βŒ– ~1 AIC Β· ⊞ 6.3K Β· β—·

πŸ§ͺ Test quality analysis by Test Quality Sentinel

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.

🟒 Approval recommended

No active review issues are reported, and the change is limited to regression coverage for ZIP extraction-size handling.

No open issues πŸŽ‰

What changed in this PR

Adds regression coverage for rejecting highly compressible ZIP archives whose uncompressed size exceeds the configured extraction limit.

Changes:

  • Creates a highly compressible 2 MiB ZIP entry.
  • Applies a total uncompressed-size limit below the entry size.
  • Verifies extraction is rejected before creating destination files.
  • Confirms the destination directory remains empty after rejection.
File Description
pkg/​cli/​logs_extract_zip_test.go Adds high-compression archive coverage for total-size validation and pre-extraction rejection.

Review effort: Lite (auto)

@github-actions

github-actions Bot commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

πŸŽ‰ This pull request is included in a new release.

Release: v1.2.1

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[uk-ai-resilience] Tier B: bound zip extraction in logs_download_zip.go (CWE-409)

4 participants