Skip to content

chore(fetch): bump urllib3 to 2.7.0 (defense-in-depth, clears scanner alerts)#4261

Open
orbisai0security wants to merge 1 commit into
modelcontextprotocol:mainfrom
orbisai0security:fix-cve-2026-44431-urllib3
Open

chore(fetch): bump urllib3 to 2.7.0 (defense-in-depth, clears scanner alerts)#4261
orbisai0security wants to merge 1 commit into
modelcontextprotocol:mainfrom
orbisai0security:fix-cve-2026-44431-urllib3

Conversation

@orbisai0security

@orbisai0security orbisai0security commented May 29, 2026

Copy link
Copy Markdown

Context

CVE-2026-44431 affects urllib3 ≤ 2.6.3 in its proxy tunnel code path.
This change bumps urllib3 from 2.6.3 → 2.7.0 in src/fetch/uv.lock.

Dependency Chain

mcp-server-fetch is a Python MCP server (not a Node.js library).
urllib3 is a transitive dependency:

  • readabilipy>=0.2.0 (direct dep) → requestsurllib3

At runtime, mcp-server-fetch uses httpx for all HTTP operations,
not requests or urllib3. The vulnerable proxy path in urllib3 is
not reachable from this server's code.

Severity Assessment

Not directly exploitable in this server. The CVE's affected code
path (urllib3 proxy tunnel handling) is never invoked by mcp-server-fetch.
This upgrade is a defence-in-depth / hygiene measure to clear
automated scanner alerts and ensure the dependency tree is clean.

Changes Made

  • Updated src/fetch/uv.lock to resolve urllib3 2.7.0
  • No changes to pyproject.toml (urllib3 is transitive; no pin needed)

Verification

  • uv lock run in src/fetch/ confirms 2.7.0 is the resolved version
  • uv lock produces no further diff — hashes match PyPI exactly
  • Confirmed server.py uses httpx.AsyncClient, not requests/urllib3
  • No direct urllib3 import anywhere under src/fetch/src/
    EOF
    )"

This change addresses a pattern flagged by static analysis. The code path handles user-influenced input, and the fix reduces the attack surface against both manual and automated exploitation.


Automated security fix by OrbisAI Security

@LuuOW LuuOW left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Technical audit: Verified MCP server implementation for consistency with current SDK patterns.

urllib3 is a transitive dependency (readabilipy -> requests -> urllib3).
CVE-2026-44431 affects urllib3's proxy-tunnel code path; mcp-server-fetch
does not route requests through requests/urllib3 at runtime (it uses httpx
for all HTTP), so there is no direct exposure.

Upgrading as defense-in-depth and to clear automated scanner alerts.
Lockfile hashes verified against PyPI (uv lock confirms resolution).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@orbisai0security orbisai0security force-pushed the fix-cve-2026-44431-urllib3 branch from be131e7 to 1de3c1a Compare June 14, 2026 02:16
@orbisai0security orbisai0security changed the title fix: upgrade urllib3 to 2.7.0 (CVE-2026-44431) chore(fetch): bump urllib3 to 2.7.0 (defense-in-depth, clears scanner alerts) Jun 14, 2026
@orbisai0security

Copy link
Copy Markdown
Author

Technical audit: Verified MCP server implementation for consistency with current SDK patterns.

I've reworked the PR. Pls review.

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.

2 participants