Skip to content

Conversation

@ASolarers-Rodriguez
Copy link
Contributor

Summary

Bump dependencies to address security vulnerabilities:

Package From To CVE/Advisory
urllib3 2.6.0 2.6.3 CVE-2026-21441 - decompression bomb bypass on redirects
werkzeug 3.1.3 3.1.5 GHSA-87hc-h4r5-73f7, multipart boundary fix
brotli 1.1.0 1.2.0 Decompression bomb fix
filelock - 3.20.3 CVE-2025-68146 - TOCTOU symlink vulnerability
pyasn1 0.6.1 0.6.2 Security fix

Changelog links

Test plan

  • CI passes
  • Verify no breaking changes in dependency compatibility

- urllib3: 2.6.0 → 2.6.3 (CVE-2026-21441 - decompression bomb bypass)
- werkzeug: 3.1.3 → 3.1.5 (GHSA-87hc-h4r5-73f7, multipart fix)
- brotli: 1.1.0 → 1.2.0 (decompression bomb fix)
- filelock: add >= 3.20.3 (CVE-2025-68146 - TOCTOU symlink)
- pyasn1: 0.6.1 → 0.6.2 (security fix)
@bito-code-review
Copy link
Contributor

bito-code-review bot commented Jan 29, 2026

Code Review Agent Run #4d6065

Actionable Suggestions - 0
Additional Suggestions - 1
  • requirements/base.in - 1
    • Inaccurate Security Comment · Line 21-21
      The comment mentions 'multipart boundary fix', but GHSA-87hc-h4r5-73f7 actually addresses a path traversal vulnerability in Werkzeug's safe_join function on Windows systems, where device names with extensions or trailing spaces bypass security checks. Consider revising the comment to 'path traversal fix' or 'Windows device name bypass fix' for accuracy, as the multipart parsing DoS was fixed in earlier versions (2.3.8/3.0.1).
Review Details
  • Files reviewed - 2 · Commit Range: 2c10e67..2c10e67
    • requirements/base.in
    • requirements/base.txt
  • Files skipped - 0
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers a full AI review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Superset You can customize the agent settings here or contact your Bito workspace admin at evan@preset.io.

Documentation & Help

AI Code Review powered by Bito Logo

# Security: CVE-2026-21441 - decompression bomb bypass on redirects
urllib3>=2.6.3,<3.0.0
# Security: GHSA-87hc-h4r5-73f7, multipart boundary fix
werkzeug>=3.1.5
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggestion: Missing upper bound for werkzeug: allowing unconstrained major upgrades (e.g., 4.x) can introduce breaking API changes; pin a safe upper bound to prevent accidental incompatible upgrades. [possible bug]

Severity Level: Major ⚠️
- ❌ CI dependency installation may pick breaking werkzeug version.
- ⚠️ Unit tests may fail after unexpected Werkzeug upgrade.
- ⚠️ Runtime server startup could encounter API incompatibilities.
Suggested change
werkzeug>=3.1.5
werkzeug>=3.1.5,<4.0.0
Steps of Reproduction ✅
1. Open requirements file at `requirements/base.in` and inspect lines 21-22 (file content
shows `werkzeug>=3.1.5`) — see `requirements/base.in:21-22`.

2. Create a fresh environment and run dependency resolution/installation using this
requirements file (e.g., generate constraints or install from it): run `python -m venv
.venv && .venv/bin/pip install -r requirements/base.in` (dependency resolver will consider
`werkzeug>=3.1.5` without an upper bound).

3. If the resolver selects a future major release (e.g., werkzeug 4.x), install completes
with that major version present in the environment.

4. Run the project's test suite or start the application (typical next steps after
install). If code relies on the current Werkzeug 3.x APIs, tests or startup will fail with
import/attribute errors or behavioral regressions (this is the concrete failure mode
expected after a breaking major upgrade).
Prompt for AI Agent 🤖
This is a comment left during a code review.

**Path:** requirements/base.in
**Line:** 22:22
**Comment:**
	*Possible Bug: Missing upper bound for `werkzeug`: allowing unconstrained major upgrades (e.g., 4.x) can introduce breaking API changes; pin a safe upper bound to prevent accidental incompatible upgrades.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.

# Security: GHSA-87hc-h4r5-73f7, multipart boundary fix
werkzeug>=3.1.5
# Security: CVE-2025-68146 - TOCTOU symlink vulnerability
filelock>=3.20.3
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggestion: Missing upper bound for filelock: without an upper bound, future major releases could introduce incompatible behavior or regressions; add a conservative upper bound to maintain stability. [possible bug]

Severity Level: Major ⚠️
- ❌ CI dependency installation may select incompatible filelock.
- ⚠️ Build/CLI file-locking tasks may throw runtime errors.
- ⚠️ Developer local scripts relying on filelock may break.
Suggested change
filelock>=3.20.3
filelock>=3.20.3,<4.0.0
Steps of Reproduction ✅
1. Open `requirements/base.in` and inspect lines 23-24 where `filelock>=3.20.3` is
declared (`requirements/base.in:23-24`).

2. Install dependencies in a clean environment using that requirements file (e.g., `python
-m venv .venv && .venv/bin/pip install -r requirements/base.in`), allowing the resolver to
pick the latest available `filelock` major version.

3. If a future `filelock` 4.x is released and selected, run the test suite or run scripts
that use `filelock` (typical usage patterns: file-based locking in build/cli tasks). Any
incompatible API changes in 4.x will surface as failing tests or runtime exceptions when
those code paths execute.

4. Observe concrete failures in CI or local runs during lock/acquire operations calling
into `filelock` (manifesting as AttributeError/TypeError or changed semantics).
Prompt for AI Agent 🤖
This is a comment left during a code review.

**Path:** requirements/base.in
**Line:** 24:24
**Comment:**
	*Possible Bug: Missing upper bound for `filelock`: without an upper bound, future major releases could introduce incompatible behavior or regressions; add a conservative upper bound to maintain stability.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.

# Security: CVE-2025-68146 - TOCTOU symlink vulnerability
filelock>=3.20.3
# Security: decompression bomb fix (required by aiohttp 3.13.3)
brotli>=1.2.0
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggestion: Missing upper bound for brotli: allowing unbounded major releases risks incompatible changes; pin an upper bound (e.g., <2.0.0) to avoid accidental breaking upgrades. [possible bug]

Severity Level: Major ⚠️
- ❌ CI dependency installation may pick incompatible brotli.
- ⚠️ HTTP compression/decompression operations may fail.
- ⚠️ Libraries requiring brotli (aiohttp) may exhibit regressions.
Suggested change
brotli>=1.2.0
brotli>=1.2.0,<2.0.0
Steps of Reproduction ✅
1. Inspect `requirements/base.in` at lines 25-26 where `brotli>=1.2.0` is added
(`requirements/base.in:25-26`).

2. In a clean environment, resolve/install dependencies using that file (`python -m venv
.venv && .venv/bin/pip install -r requirements/base.in`) allowing the resolver to pick the
latest brotli major.

3. If the resolver selects a future major (2.x) with breaking API changes, execute code
paths that depend on brotli compression/decompression (e.g., HTTP client libraries or
middleware that call into brotli). These calls will surface concrete exceptions or
behavioral changes when the API changes.

4. Observe failures in CI or runtime where brotli is used (decompression errors, missing
functions, or changed behavior), causing test or runtime regressions.
Prompt for AI Agent 🤖
This is a comment left during a code review.

**Path:** requirements/base.in
**Line:** 26:26
**Comment:**
	*Possible Bug: Missing upper bound for `brotli`: allowing unbounded major releases risks incompatible changes; pin an upper bound (e.g., <2.0.0) to avoid accidental breaking upgrades.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.

@codecov
Copy link

codecov bot commented Jan 29, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 66.58%. Comparing base (6cb3cea) to head (5e4d852).
⚠️ Report is 9 commits behind head on master.

Additional details and impacted files
@@             Coverage Diff             @@
##           master   #37552       +/-   ##
===========================================
+ Coverage        0   66.58%   +66.58%     
===========================================
  Files           0      643      +643     
  Lines           0    49050    +49050     
  Branches        0     5501     +5501     
===========================================
+ Hits            0    32662    +32662     
- Misses          0    15093    +15093     
- Partials        0     1295     +1295     
Flag Coverage Δ
hive 41.92% <ø> (?)
mysql 64.64% <ø> (?)
postgres 64.72% <ø> (?)
presto 41.94% <ø> (?)
python 66.56% <ø> (?)
sqlite 64.42% <ø> (?)
unit 100.00% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

…check

- Regenerated requirements using uv pip compile
- Added bsd-2-clause to authorized licenses for pyasn1
Address review feedback:
- werkzeug: add <4.0.0 upper bound
- filelock: add <4.0.0 upper bound
- brotli: add <2.0.0 upper bound
- Fix werkzeug comment (path traversal, not multipart)
@bito-code-review
Copy link
Contributor

bito-code-review bot commented Jan 29, 2026

Code Review Agent Run #d8cf3b

Actionable Suggestions - 0
Review Details
  • Files reviewed - 4 · Commit Range: 2c10e67..cd07d81
    • pyproject.toml
    • requirements/base.in
    • requirements/base.txt
    • requirements/development.txt
  • Files skipped - 0
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers a full AI review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Superset You can customize the agent settings here or contact your Bito workspace admin at evan@preset.io.

Documentation & Help

AI Code Review powered by Bito Logo

Adds platform-specific dependencies (jeepney, secretstorage) that are
only present when compiling on Linux.
@bito-code-review
Copy link
Contributor

bito-code-review bot commented Jan 29, 2026

Code Review Agent Run #67b6e1

Actionable Suggestions - 0
Review Details
  • Files reviewed - 4 · Commit Range: cd07d81..5e4d852
    • pyproject.toml
    • requirements/base.in
    • requirements/base.txt
    • requirements/development.txt
  • Files skipped - 0
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers a full AI review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Superset You can customize the agent settings here or contact your Bito workspace admin at evan@preset.io.

Documentation & Help

AI Code Review powered by Bito Logo

@hainenber hainenber merged commit d6029f5 into apache:master Jan 30, 2026
65 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants