From 728183e4209adad8fa4c60faa6756cd7100774da Mon Sep 17 00:00:00 2001 From: alex-clawd Date: Sun, 26 Jul 2026 00:55:05 -0700 Subject: [PATCH] fix(deps): bump bedrock-agentcore to patch CVE-2026-16796 (#6654) bedrock-agentcore 1.7.0 has GHSA-j6g5-3hh3-pgw8 (CVE-2026-16796, high): argument-delimiter injection in CodeInterpreter.install_packages(). It fails the pip-audit vulnerability scan on every PR in the repo. The patch is 1.18.1, which requires boto3>=1.43.31. The old <1.8.0 cap plus aiobotocore~=3.5.0 (botocore<1.42.92) made that unsatisfiable, so the AWS stack moves together: - bedrock-agentcore >=1.7.0,<1.8.0 -> >=1.18.1,<2.0.0 - boto3 ~=1.42.90 -> ~=1.43.46 (aws + bedrock extras) - aiobotocore ~=3.5.0 -> ~=3.8.0 (aws + bedrock extras) aiobotocore 3.8.0 allows botocore <1.43.47 and boto3 1.43.46 pins botocore 1.43.46, so the ranges overlap. Verified: uv lock resolves, pip-audit reports no vulnerabilities (3 existing ignores, none new), 48 bedrock tests pass, and both bedrock toolkits import cleanly. BrowserClient.{start,stop,generate_ws_headers} and CodeInterpreter.{start,stop,invoke} are unchanged in 1.18.1. --- lib/crewai-tools/pyproject.toml | 2 +- lib/crewai/pyproject.toml | 8 +++---- uv.lock | 42 ++++++++++++++++----------------- 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/lib/crewai-tools/pyproject.toml b/lib/crewai-tools/pyproject.toml index 0b2279030..7c53a447e 100644 --- a/lib/crewai-tools/pyproject.toml +++ b/lib/crewai-tools/pyproject.toml @@ -131,7 +131,7 @@ postgresql = [ ] bedrock = [ "beautifulsoup4>=4.13.4", - "bedrock-agentcore>=1.7.0,<1.8.0", + "bedrock-agentcore>=1.18.1,<2.0.0", "playwright>=1.52.0", "nest-asyncio>=1.6.0", ] diff --git a/lib/crewai/pyproject.toml b/lib/crewai/pyproject.toml index 641cf4a7c..8c4052408 100644 --- a/lib/crewai/pyproject.toml +++ b/lib/crewai/pyproject.toml @@ -78,8 +78,8 @@ qdrant = [ "qdrant-client[fastembed]~=1.14.3", ] aws = [ - "boto3~=1.42.90", - "aiobotocore~=3.5.0", + "boto3~=1.43.46", + "aiobotocore~=3.8.0", ] watson = [ "ibm-watsonx-ai~=1.3.39", @@ -91,8 +91,8 @@ litellm = [ "litellm>=1.84.0,<2", ] bedrock = [ - "boto3~=1.42.90", - "aiobotocore~=3.5.0", + "boto3~=1.43.46", + "aiobotocore~=3.8.0", ] google-genai = [ "google-genai~=1.65.0", diff --git a/uv.lock b/uv.lock index 241397d56..491e5e797 100644 --- a/uv.lock +++ b/uv.lock @@ -13,7 +13,7 @@ resolution-markers = [ ] [options] -exclude-newer = "2026-07-21T18:21:00.467584933Z" +exclude-newer = "2026-07-23T07:28:34.098923224Z" exclude-newer-span = "P3D" [options.exclude-newer-package] @@ -124,7 +124,7 @@ wheels = [ [[package]] name = "aiobotocore" -version = "3.5.0" +version = "3.8.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aiohttp" }, @@ -136,9 +136,9 @@ dependencies = [ { name = "typing-extensions", marker = "python_full_version < '3.11'" }, { name = "wrapt" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e6/89/9533b377e9412013cc43a539d81bc5f8feeb4b6830643821ad612f78b09b/aiobotocore-3.5.0.tar.gz", hash = "sha256:d45d1c4659ad0e48b694a5aa4ff18829100386f7de96c8d146ec7757a6f12918", size = 123061, upload-time = "2026-04-21T07:25:26.993Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/a7/bc31b7046c610471f0630819ca5d2a57ac4efa8d47135cb53e43f2785390/aiobotocore-3.8.0.tar.gz", hash = "sha256:80a1eb64ea915f3af3c1518669975bae74a17b2f37c14eb0fa2f83b915974670", size = 131368, upload-time = "2026-07-17T03:10:30.258Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2d/05/6eeeadef45c24630af0ceae4d038b883e9a394786300529286ba8cc1e62d/aiobotocore-3.5.0-py3-none-any.whl", hash = "sha256:49ce35bb8b96b85d3251c2cbbb2ed7a028dc0cb0d0d0801f9ccca1ccd0d41ded", size = 88281, upload-time = "2026-04-21T07:25:25.258Z" }, + { url = "https://files.pythonhosted.org/packages/6d/f4/5a7d76dc844d3ff8ed1f1a043158aa393794aebb787d3e2f8c0fe87f674f/aiobotocore-3.8.0-py3-none-any.whl", hash = "sha256:8bc605132cadfe844a3f334635a0a64fa5e360a4a206e915d99d53db5b6deeba", size = 91169, upload-time = "2026-07-17T03:10:28.771Z" }, ] [[package]] @@ -664,7 +664,7 @@ wheels = [ [[package]] name = "bedrock-agentcore" -version = "1.7.0" +version = "1.18.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "boto3" }, @@ -676,9 +676,9 @@ dependencies = [ { name = "uvicorn" }, { name = "websockets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/01/65/69a66d812c5f86b902234fe91146004efcea907444a60f024f9afe13d150/bedrock_agentcore-1.7.0.tar.gz", hash = "sha256:cf632892f6bd055ce047eb91fe4d72f86569234faf3eb5cd1b2b614261a77d7f", size = 540824, upload-time = "2026-04-28T19:29:02.749Z" } +sdist = { url = "https://files.pythonhosted.org/packages/88/e8/8149bb168ef3825884685eb98ef868f5bb5f796e4ea58eb98e8df3248937/bedrock_agentcore-1.18.1.tar.gz", hash = "sha256:ed4aa8822e39aa5846b9d68d1461afee19f2f795c1f6d71a61bc650ecc00ee31", size = 1030729, upload-time = "2026-07-17T19:55:21.354Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ba/9d/5f590afd5351e206d9a02f96777a69d1fc3edecfaa39bbba310248f21ea9/bedrock_agentcore-1.7.0-py3-none-any.whl", hash = "sha256:ee49695e613973baf01b4be400d3bc4b20ddedf3638765fb3bc6931a87fa0cd9", size = 178978, upload-time = "2026-04-28T19:29:00.944Z" }, + { url = "https://files.pythonhosted.org/packages/45/fe/26cc0a66920035d2740c062bd46df252b15708b7723e13ccae0ab7b334db/bedrock_agentcore-1.18.1-py3-none-any.whl", hash = "sha256:6d8001f09cdfca0a20650ea691426149f521037d8d56917057fc191c00801086", size = 450684, upload-time = "2026-07-17T19:55:19.334Z" }, ] [[package]] @@ -692,16 +692,16 @@ wheels = [ [[package]] name = "boto3" -version = "1.42.91" +version = "1.43.46" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "botocore" }, { name = "jmespath" }, { name = "s3transfer" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a7/c0/98b8cec7ca22dde776df48c58940ae1abc425593959b7226e270760d726f/boto3-1.42.91.tar.gz", hash = "sha256:03d70532b17f7f84df37ca7e8c21553280454dea53ae12b15d1cfef9b16fcb8a", size = 113181, upload-time = "2026-04-17T19:31:06.251Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f2/e7/976bf3dfe0aa5d7f31bec2f2cf57c79641620c910a39bc843a237aa9592d/boto3-1.43.46.tar.gz", hash = "sha256:66c0d943b049a46a492ec4ec2ebe73c930b1842c7137bee83aad6d93e95d4d96", size = 112654, upload-time = "2026-07-10T19:32:12.498Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/02/29/faba6521257c34085cc9b439ef98235b581772580f417fa3629728007270/boto3-1.42.91-py3-none-any.whl", hash = "sha256:04e72071cde022951ce7f81bd9933c90095ab8923e8ced61c8dacfe9edac0f5c", size = 140553, upload-time = "2026-04-17T19:31:02.57Z" }, + { url = "https://files.pythonhosted.org/packages/ef/1d/c52e66ff32ba7911664e6c4c2ac62e1c6d2d1e7550c7ac185d3f4b70a8a4/boto3-1.43.46-py3-none-any.whl", hash = "sha256:69453e2c1bcb9fd9806527ab99950cacfc2826cb0dce9a3a0414d19270c06c3c", size = 140031, upload-time = "2026-07-10T19:32:11.129Z" }, ] [[package]] @@ -725,16 +725,16 @@ bedrock-runtime = [ [[package]] name = "botocore" -version = "1.42.91" +version = "1.43.46" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "jmespath" }, { name = "python-dateutil" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/21/bc/a4b7c46471c2e789ad8c4c7acfd7f302fdb481d93ff870f441249b924ae6/botocore-1.42.91.tar.gz", hash = "sha256:d252e27bc454afdbf5ed3dc617aa423f2c855c081e98b7963093399483ecc698", size = 15213010, upload-time = "2026-04-17T19:30:50.793Z" } +sdist = { url = "https://files.pythonhosted.org/packages/7d/f1/1917891851ac5ac09bb9f4862b8fc9252a009d7c24e8688bb67e4383d9e7/botocore-1.43.46.tar.gz", hash = "sha256:59f2e1ac3cdc66d191cae91c0804bc41847ce817dc8147cf43eaada8f76a5533", size = 15694635, upload-time = "2026-07-10T19:32:00.437Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b1/fc/24cc0a47c824f13933e210e9ad034b4fba22f7185b8d904c0fbf5a3b2be8/botocore-1.42.91-py3-none-any.whl", hash = "sha256:7a28c3cc6bfab5724ad18899d52402b776a0de7d87fa20c3c5270bcaaf199ce8", size = 14897344, upload-time = "2026-04-17T19:30:44.245Z" }, + { url = "https://files.pythonhosted.org/packages/0e/f2/4bd8f2f419088feb3ce55f0ca91040ff902f402edfd197450b20a2e1d533/botocore-1.43.46-py3-none-any.whl", hash = "sha256:cb673891e623ae6e6a1bf24d94ef169504f3eb02584adb5d5bee2f6aae819b60", size = 15380350, upload-time = "2026-07-10T19:31:57.616Z" }, ] [[package]] @@ -1421,8 +1421,8 @@ watson = [ [package.metadata] requires-dist = [ { name = "a2a-sdk", marker = "extra == 'a2a'", specifier = "~=0.3.10" }, - { name = "aiobotocore", marker = "extra == 'aws'", specifier = "~=3.5.0" }, - { name = "aiobotocore", marker = "extra == 'bedrock'", specifier = "~=3.5.0" }, + { name = "aiobotocore", marker = "extra == 'aws'", specifier = "~=3.8.0" }, + { name = "aiobotocore", marker = "extra == 'bedrock'", specifier = "~=3.8.0" }, { name = "aiocache", extras = ["memcached", "redis"], marker = "extra == 'a2a'", specifier = "~=0.12.3" }, { name = "aiofiles", specifier = "~=24.1.0" }, { name = "aiosqlite", specifier = "~=0.21.0" }, @@ -1430,8 +1430,8 @@ requires-dist = [ { name = "appdirs", specifier = "~=1.4.4" }, { name = "azure-ai-inference", marker = "extra == 'azure-ai-inference'", specifier = "~=1.0.0b9" }, { name = "azure-identity", marker = "extra == 'azure-ai-inference'", specifier = ">=1.17.0,<2" }, - { name = "boto3", marker = "extra == 'aws'", specifier = "~=1.42.90" }, - { name = "boto3", marker = "extra == 'bedrock'", specifier = "~=1.42.90" }, + { name = "boto3", marker = "extra == 'aws'", specifier = "~=1.43.46" }, + { name = "boto3", marker = "extra == 'bedrock'", specifier = "~=1.43.46" }, { name = "cel-python", specifier = ">=0.5.0,<0.6" }, { name = "chromadb", specifier = "~=1.1.0" }, { name = "click", specifier = ">=8.1.7,<9" }, @@ -1743,7 +1743,7 @@ requires-dist = [ { name = "beautifulsoup4", specifier = "~=4.13.4" }, { name = "beautifulsoup4", marker = "extra == 'beautifulsoup4'", specifier = ">=4.12.3" }, { name = "beautifulsoup4", marker = "extra == 'bedrock'", specifier = ">=4.13.4" }, - { name = "bedrock-agentcore", marker = "extra == 'bedrock'", specifier = ">=1.7.0,<1.8.0" }, + { name = "bedrock-agentcore", marker = "extra == 'bedrock'", specifier = ">=1.18.1,<2.0.0" }, { name = "browserbase", marker = "extra == 'browserbase'", specifier = ">=1.0.5" }, { name = "composio-core", marker = "extra == 'composio-core'", specifier = ">=0.6.11.post1" }, { name = "contextual-client", marker = "extra == 'contextual'", specifier = ">=0.1.0" }, @@ -8105,14 +8105,14 @@ wheels = [ [[package]] name = "s3transfer" -version = "0.16.1" +version = "0.19.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "botocore" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/46/29/af14f4ef3c11a50435308660e2cc68761c9a7742475e0585cd4396b91777/s3transfer-0.16.1.tar.gz", hash = "sha256:8e424355754b9ccb32467bdc568edf55be82692ef2002d934b1311dbb3b9e524", size = 154801, upload-time = "2026-04-22T20:36:06.475Z" } +sdist = { url = "https://files.pythonhosted.org/packages/76/43/35e4d8aa320bffe8287fe8f65f578fa2d2db0a64212f0e710dce58267854/s3transfer-0.19.2.tar.gz", hash = "sha256:ba0309fd86be3c27dbf78cdd813c13c5e1df16e5874b99d2535ebbdfb9892993", size = 165592, upload-time = "2026-07-22T19:30:44.432Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/03/19/90d7d4ed51932c022d53f1d02d564b62d10e272692a1f9b76425c1ad2a02/s3transfer-0.16.1-py3-none-any.whl", hash = "sha256:61bcd00ccb83b21a0fe7e91a553fff9729d46c83b4e0106e7c314a733891f7c2", size = 86825, upload-time = "2026-04-22T20:36:04.992Z" }, + { url = "https://files.pythonhosted.org/packages/bc/e7/5c595c75e9f41a44f30e526eda465ea0b4eec93470e074e4a111b253f13a/s3transfer-0.19.2-py3-none-any.whl", hash = "sha256:d8168eccca828cbb2cd573675333f3bddd254313a9c42494b84c76b539e8ba25", size = 90216, upload-time = "2026-07-22T19:30:43.251Z" }, ] [[package]]