Skip to content

fix(deps): bump mcp to 1.30.0 and remediate FOSSA CVEs in samples and testcases - #249

Merged
robert-ursu merged 4 commits into
mainfrom
fix/cve-remediation-2026-09
Sep 15, 2026
Merged

robert-ursu merged 4 commits into
mainfrom
fix/cve-remediation-2026-09

Conversation

@robert-ursu

@robert-ursu robert-ursu commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

Summary

Remediates the FOSSA security findings for the SDK, its samples and its testcases.

CVEs Package Was Fixed in Change
CVE-2025-66416, CVE-2026-52869, CVE-2026-59950 mcp 1.26.0 (SDK), 1.9.0–1.12.0 (samples), 1.11.0 (testcase floors) 1.28.1 SDK pin ==1.30.0; agent sample locks 2.0.0; testcase floors >=1.28.1
CVE-2026-28277 langgraph 0.5.4 (agent samples) 1.0.10 floors >=1.0.10, locked 1.2.11

The three agent samples (github-helper-agent, github-slack-agent, mcp-functions-agent) are ported to the SDK MCP helpers. Their re-lock lands on langchain 1.4.0 and mcp 2.0.0, which removed langchain.output_parsers, mcp.server.fastmcp and the streamablehttp_client name, so the entrypoints stopped importing. Capping mcp<2 is not an option: every uipath-langchain since 0.17 pins mcp==2.0.0, and langchain-mcp-adapters caps mcp<2. The samples therefore drop the adapter and use uipath_langchain.agent.tools.mcp (load_mcp_tools, streamable_http_client) behind a small mcp_session helper, with uipath-langchain floored at 0.17.0. Each entrypoint imports cleanly after uv sync on Python 3.11.

uipath-mcp is bumped to 0.3.1. mcp 1.30.0 is the last 1.x release; it stays on the 1.x line rather than jumping to 2.x.

uipath moves from >=2.10.40, <2.14.0 to >=2.14.16, <2.15.0 so installs pick up the patched release from UiPath/uipath-python#1897. uipath 2.14 requires uipath-runtime 0.13, so that range follows to >=0.13.1, <0.14.0. The SDK lock now resolves uipath 2.14.16 / uipath-runtime 0.13.5; mypy, ruff and the test suite pass on that pair.

The five server samples (mcp-dynamic-server, mcp-functions-server, mcp-longrunning-server, mcp-math-server, mcp-sdk-server) take mcp transitively from the published uipath-mcp, which pins 1.26.0. Their lockfiles cannot move past 1.26.0 until 0.3.1 is on PyPI, so they are left untouched here and need a follow-up re-lock after this ships.

The workflows also gain the SAFE_CHAIN_MINIMUM_PACKAGE_AGE_EXCLUSIONS env already used in uipath-langchain-python: the runner's safe-chain guard blocked the hour-old uipath 2.14.16 wheel and failed uv sync on every job.

Verification

  • mypy, ruff check, ruff format --check pass
  • pytest: 203 passed
  • SDK lock and the three agent sample locks verified at or above the fixed versions

🤖 Generated with Claude Code

Copilot AI lite review requested due to automatic review settings September 15, 2026 08:39

Copilot AI 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.

🔵 Needs a closer look

The dependency updates span SDK, samples, testcases, and lockfiles, warranting final human approval.

Pull request overview

Updates MCP and LangGraph dependencies to remediate reported CVEs while retaining MCP 1.x compatibility.

Changes:

  • Bumps uipath-mcp to 0.3.1 and MCP to 1.30.0.
  • Raises testcase MCP floors to >=1.28.1.
  • Raises agent sample LangGraph floors to >=1.0.10 and refreshes locks.
File summaries
File Description
uv.lock Refreshes SDK dependency locks.
testcases/string-server/pyproject.toml Raises the MCP minimum version.
testcases/ground-to-cloud/pyproject.toml Raises the MCP minimum version.
testcases/datetime-server/pyproject.toml Raises the MCP minimum version.
samples/mcp-functions-agent/pyproject.toml Raises the LangGraph minimum version.
samples/github-slack-agent/pyproject.toml Raises the LangGraph minimum version.
samples/github-helper-agent/pyproject.toml Raises the LangGraph minimum version.
pyproject.toml Updates the SDK version and MCP pin.
Review details
  • Files reviewed: 7/11 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@robert-ursu robert-ursu changed the title fix(deps): bump mcp to 1.30.0 and remediate FOSSA CVEs in samples and testcases (PRODEV-1511) fix(deps): bump mcp to 1.30.0 and remediate FOSSA CVEs in samples and testcases Sep 15, 2026
robert-ursu and others added 2 commits September 15, 2026 14:06
… testcases

mcp moves from 1.26.0 to 1.30.0, the last 1.x release, which covers
CVE-2025-66416, CVE-2026-52869 and CVE-2026-59950. The three agent samples
are re-locked with langgraph 1.x and mcp 2.0.0 and the testcase mcp floors
are lifted to 1.28.1.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
uipath moves from >=2.10.40, <2.14.0 to >=2.14.16, <2.15.0 so installs pick
up the click, PyJWT, python-dotenv and python-socketio fixes shipped in
UiPath/uipath-python#1897. uipath 2.14 requires uipath-runtime 0.13, so that
range follows to >=0.13.1, <0.14.0.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Freshly published uipath releases are blocked by the runner's safe-chain
guard until they age, which fails uv sync on the first CI run after a
release. Mirrors the exemption already used in uipath-langchain-python.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

@radugheo radugheo left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Local review of the dependency bumps. SDK side is clean (mypy, ruff and 203 tests pass on mcp 1.30.0 / uipath 2.14.16). Three notes inline.

dependencies = [
"uipath-langchain>=0.0.118",
"langgraph>=0.5.4",
"langgraph>=1.0.10",

@radugheo radugheo Sep 15, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This lock also moves mcp to 2.0.0, which breaks all three agent samples at import. 2.0.0 drops mcp.server.fastmcp, imported at module load by langchain-mcp-adapters 0.3.1, and renames streamablehttp_client to streamable_http_client. Both are used by the samples.

Verified by syncing each lock on Python 3.11 and importing the entrypoint: clean on main, failing here.

Suggest adding "mcp>=1.28.1,<2" here and re-locking, keeping the samples on the same 1.x line the SDK chose. Confirmed that mcp 1.30.0 imports clean alongside langchain 1.4.0, adapters 0.3.1 and langgraph 1.2.11.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Right on the breakage, but mcp>=1.28.1,<2 is not resolvable: every uipath-langchain since 0.17 pins mcp==2.0.0, and the releases before that pin mcp==1.26.0 (vulnerable), so with that cap uv backtracked uipath-langchain to 0.1.31. langchain-mcp-adapters also caps mcp<2, so the adapter cannot ride along either.

Fixed in 66e2729 by staying on mcp 2.0.0 and porting the samples to the SDK helpers: uipath_langchain.agent.tools.mcp.load_mcp_tools and streamable_http_client, with a small mcp_session helper passing the bearer token through an httpx2.AsyncClient. langchain-mcp-adapters is dropped, uipath-langchain floored at 0.17.0 where those helpers landed. All three entrypoints import cleanly after uv sync on 3.11.

dependencies = [
"uipath-langchain>=0.0.118",
"langgraph>=0.5.4",
"langgraph>=1.0.10",

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Re-locking here also pulls langchain 1.4.0 through the uipath-langchain 0.0.118 -> 0.18.0 jump that the unchanged >=0.0.118 floor allows, and 1.4.0 removed langchain.output_parsers. That breaks main.py:8 in this sample and builder.py:5 in mcp-functions-agent.

Both files import fine on main and fail here. This line fires before the mcp one, so fixing only the mcp pin still leaves these two broken.

Fix: from langchain_core.output_parsers import PydanticOutputParser, which is present in langchain-core 1.6.3.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fixed in 66e2729: both files now import PydanticOutputParser from langchain_core.output_parsers.

Comment thread pyproject.toml
[project]
name = "uipath-mcp"
version = "0.3.0"
version = "0.3.1"

@radugheo radugheo Sep 15, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

The five server samples still lock vulnerable mcp, 1.9.0 in mcp-longrunning-server and 1.11.0 in the other four. Their uipath-mcp>=0.0.101 floors already permit 0.3.1, so a re-lock once it publishes is all that is needed.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Agreed, that is the plan. The five server-sample locks are left untouched here and will be re-locked once 0.3.1 is on PyPI, since their mcp comes transitively from the published uipath-mcp.

Re-locking the three agent samples pulled langchain 1.4.0 and mcp 2.0.0,
which removed langchain.output_parsers, mcp.server.fastmcp and the
streamablehttp_client name, so the entrypoints no longer imported.
langchain-mcp-adapters caps mcp below 2.0 and every uipath-langchain since
0.17 pins mcp==2.0.0, so the samples drop the adapter and use
uipath_langchain.agent.tools.mcp (load_mcp_tools, streamable_http_client)
instead, with a small mcp_session helper carrying the bearer token via an
httpx2 client.

Verified by syncing each sample on Python 3.11 and importing its entrypoint.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@sonarqubecloud

Copy link
Copy Markdown

@robert-ursu
robert-ursu merged commit e8e601b into main Sep 15, 2026
21 checks passed
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.

3 participants