[Aikido] Fix 44 security issues in cryptography, starlette, aiohttp and 11 more#75
Open
aikido-autofix[bot] wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Upgrade dependencies to fix critical buffer overflow, Host header validation bypass, and null byte injection vulnerabilities.
✅ 44 CVEs resolved by this upgrade, including 3 critical 🚨 CVEs
This PR will resolve the following CVEs:
request.url.pathto diverge from the actual requested path and potentially bypassing path-based security checks or authorization middleware.Hostheader was not validated before reconstructingrequest.url, allowing malformed headers to causerequest.url.pathto differ from the actual requested path. This could bypass security restrictions in middleware and endpoints that rely onrequest.urlinstead of the raw path.cookiesparameter are sent after cross-origin redirects, potentially leaking sensitive data to attackers controlling redirects. This vulnerability allows information disclosure through cookie exposure across different origins./FlateDecodeand specific predictor parameters can exhaust system RAM, causing a denial of service attack. The vulnerability occurs during PDF parsing when processing streams with predictor values other than 1 and large parameters./Sizevalue can cause excessive runtime when loaded in incremental mode, leading to denial of service. The vulnerability allows attackers to create PDFs that consume significant processing resources./FlateDecodeimage using large size values can exhaust system RAM, causing a denial of service. This memory exhaustion vulnerability has been patched to prevent excessive resource consumption during PDF processing./Sizeor/Nvalues to trigger long runtimes during PDF parsing./Wwidth arrays and large/Sizevalues to cause excessive iteration, leading to denial of service through hangs or prolonged processing times.CSSSelectorobjects from large comma-separated lists without limits, allowing attackers to trigger denial of service through crafted selector strings with ~488x memory amplification.extract_zipped_paths()utility function uses predictable filenames when extracting zip archives to the temp directory, allowing local attackers to pre-create malicious files that get loaded instead of legitimate ones, resulting in arbitrary code execution.🤖 Remediation details
Fix critical and high-severity CVEs in cryptography, starlette, aiohttp, fastmcp, pypdf, python-multipart, urllib3, soupsieve, yarl, mcp, authlib, requests, idna, and pygments
Short summary
This PR remediates security vulnerabilities across 14 packages. Four direct dependency specs in the root
pyproject.tomlwere widened to allow patched versions (aiohttp,fastmcp,pypdf,requests); the remaining ten packages (cryptography,starlette,mcp,python-multipart,urllib3,soupsieve,yarl,authlib,idna,pygments) were transitive dependencies whose parent specs already permitted the patched versions and required only auv lock --upgrade-packagerefresh to move the resolved version inuv.lock.aiohttp
aiohttpis a direct dependency declared inpyproject.toml. The lower bound was raised from>=3.11.18to>=3.14.0,<4.0.0to require the patched release series, anduv lockresolved it to3.14.1. The previous range allowed3.13.3, which carried multiple high- and medium-severity vulnerabilities including remote code execution and denial-of-service issues fixed in3.13.4and3.14.0.fastmcp
fastmcpis a direct dependency that was hard-pinned to==3.2.0inpyproject.toml. The pin was replaced with>=3.3.0,<4.0.0, resolving to3.4.2inuv.lock. The3.2.0pin prevented any upgrade and left the project exposed to multiple high-severity vulnerabilities patched in3.2.4and3.3.0.pypdf
pypdfis a direct dependency inpyproject.toml. The lower bound was raised from>=5.1.0to>=6.12.0,<7.0.0, resolving to6.13.1inuv.lock. The prior floor permitted6.9.1, which was affected by several medium-severity vulnerabilities patched across6.9.2through6.12.0.python-multipart
python-multipartis a transitive dependency pulled in bymcp. Its parentmcpalready declared>=0.0.9with no upper bound, so no manifest edit was needed; auv lock --upgrade-package python-multipartrefresh moved the resolved version from0.0.22to0.0.32, satisfying the>=0.0.27patched requirement.urllib3
urllib3is a transitive dependency ofrequestsand several Azure/OpenTelemetry packages. All parent specs already permitted>=2.7.0, so auv lock --upgrade-package urllib3refresh was sufficient to move the resolved version from2.6.3to2.7.0.soupsieve
soupsieveis a transitive dependency ofbeautifulsoup4, which is itself pulled in by the direct dependencybs4.beautifulsoup4declares>=1.6.1with no upper bound, so auv lock --upgrade-package soupsieverefresh moved the resolved version from2.8.3to2.8.4.yarl
yarlis a transitive dependency ofaiohttp. Theaiohttpdirect-spec bump to>=3.14.0(see above) also unlockedyarl; auv lock --upgrade-package yarlrefresh moved the resolved version from1.23.0to1.24.2, satisfying the>=1.24.0patched requirement.mcp
mcpis a transitive dependency of bothfastmcpandmcp-proxy. Thefastmcpdirect-spec bump to>=3.3.0(see above) unlockedmcp; auv lock --upgrade-package mcprefresh moved the resolved version from1.26.0to1.27.2, the minimum patched version.authlib
authlibis a transitive dependency offastmcp.fastmcpdeclares>=1.6.5with no upper bound, so auv lock --upgrade-package authlibrefresh moved the resolved version from1.6.9to1.7.2, satisfying the>=1.6.12patched requirement.requests
requestsis a direct dependency inpyproject.toml. The lower bound was raised from>=2.32.3to>=2.33.0,<3.0.0, resolving to2.34.2inuv.lock. The prior floor permitted2.32.5, which was affected by a medium-severity vulnerability patched in2.33.0.cryptography
cryptographyis a transitive dependency of several packages includingazure-identity,msal,pyjwt,authlib, andsecretstorage. All parent specs already permitted>=46.0.7, so auv lock --upgrade-package cryptographyrefresh moved the resolved version from46.0.5to48.0.1.starlette
starletteis a transitive dependency offastapi,mcp, andsse-starlette. All parent specs already permitted>=1.0.1, so auv lock --upgrade-package starletterefresh moved the resolved version from0.52.1to1.2.1.idna
idnais a transitive dependency ofyarl,requests,anyio,httpx, andemail-validator. All parent specs already permitted>=3.15, so auv lock --upgrade-package idnarefresh moved the resolved version from3.11to3.18.pygments
pygmentsis a transitive dependency ofrich, which is pulled in byfastmcpandcyclopts.richdeclares>=2.13.0,<3.0.0, which already permits2.20.0, so auv lock --upgrade-package pygmentsrefresh moved the resolved version from2.19.2to2.20.0.Version changes
>=3.11.18→3.13.3resolved>=3.14.0,<4.0.0→3.14.1resolvedpyproject.toml==3.2.0>=3.3.0,<4.0.0→3.4.2resolvedpyproject.toml>=5.1.0→6.9.1resolved>=6.12.0,<7.0.0→6.13.1resolvedpyproject.toml>=2.32.3→2.32.5resolved>=2.33.0,<3.0.0→2.34.2resolvedpyproject.toml46.0.548.0.10.52.11.2.11.26.01.27.2fastmcpbump0.0.220.0.32mcpalready allowed target2.6.32.7.02.8.32.8.4beautifulsoup4already allowed target1.23.01.24.2aiohttpbump1.6.91.7.2fastmcpbump3.113.182.19.22.20.0richalready allowed target3.4.2fastmcp>=3.3.0split2.0.2fastmcp 3.4.21.7.1authlib 1.7.2