fix: rebuild FastMCP OpenAPI SSRF vulnerability chains#56
Open
Sam-Hui-dot wants to merge 1 commit into
Open
Conversation
Signed-off-by: Sam-Hui-dot <19303092837@163.com>
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.
Summary
Related to #7.
This PR rebuilds the FastMCP OpenAPI SSRF/path-traversal chains associated with
GHSA-VV7Q-7JX5-F767/CVE-2026-32871.It updates the two entries directly supported by the upstream security fix:
entry-00391entry-00394It also reviews the related resource-path entries,
entry-00392andentry-00395, and documents their remaining evidence gaps inmanual_review.csv.Changes
entry-00391critical_operationfrom the_build_urldeclaration to the actual unencoded path-parameter substitution.flat_argsthrough parameter mapping, substitution,urljoin(), andhttpx.Request.entry-00394entry_pointto the publicOpenAPITool.run(arguments)boundary.critical_operationfrom the generic request-send operation to the vulnerable URL substitution.Supporting artifacts
manual_review.csvfor related entries not directly covered by the upstream fix.394 / 408verified entries and178 / 184verified advisories.Evidence
c861862aededc7294cea5634d77e6926444ca10140bdfb6b1de0ce30609ee9ba5bb95ecd04a9fb71GHSA-VV7Q-7JX5-F767CVE-2026-32871The fix commit is a direct child of the vulnerable commit. It replaces the unencoded
str(param_value)path substitution with URL encoding, directly supporting the selectedcritical_operation.Validation
git diff --checkpassed.Commands used:
python3 scripts/apply_issue7_fastmcp_openapi_patch.py --check-upstream python3 -m unittest discover -s tests -p "test_issue7_fastmcp_openapi.py" -v git diff --checkManual review
The upstream fix directly validates the
RequestDirectorpath used byentry-00391andentry-00394.Although
entry-00392andentry-00395contain a similar substitution incomponents.py, that path is not covered by the fix or its regression tests. Their current annotations are therefore retained, with the remaining evidence gap and candidate changes documented inmanual_review.csv.