CNV-91916:[CNV-4.22] Starlette: request.form() limits silently ignored for application/x-www-form-urlencoded enable DoS - #2797
Conversation
Signed-off-by: Uday Yendava <uyendava@uyendava-thinkpadp1gen4i.punetw6.csb>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Report bugs in Issues Welcome! 🎉This pull request will be automatically processed with the following features: 🔄 Automatic Actions
📋 Available CommandsPR Status Management
Review & Approval
Testing & Validation
Cherry-pick Operations
Branch Management
Label Management
✅ Merge RequirementsThis PR will be automatically approved when the following conditions are met:
📊 Review ProcessApprovers and ReviewersApprovers:
Reviewers:
Available Labels
AI Features
Security Checks
💡 Tips
For more information, please refer to the project documentation or contact the maintainers. |
PR Summary by QodoBump transitive Starlette to remediate form parsing DoS
AI Description
Diagram
High-Level Assessment
Files changed (1)
|
Code Review by Qodo
1. Published installs remain vulnerable
|
| [[package]] | ||
| name = "starlette" | ||
| version = "1.3.1" | ||
| version = "1.6.0" |
There was a problem hiding this comment.
1. Published installs remain vulnerable 🐞 Bug ⛨ Security
Changing only uv.lock protects locked checkout environments, but published installs use pyproject.toml, where only fastmcp>=2.10.4 is declared and no requirement enforces a fixed Starlette version. Consequently, the documented pip-installed MCP server can retain or resolve a vulnerable Starlette version that satisfies the transitive dependencies, leaving the CVE remediation unenforced for users.
Agent Prompt
## Issue description
The CVE fix exists only in `uv.lock`, which is not part of dependency resolution when users install the published package. Add an explicit project requirement that enforces the minimum fixed Starlette version, then regenerate the lock file.
## Issue Context
The repository publishes an MCP entry point backed by FastMCP and documents installation from the package index. Its package metadata currently declares FastMCP but no Starlette security floor.
## Fix Focus Areas
- pyproject.toml[87-103]
- uv.lock[1477-1490]
- uv.lock[2545-2554]
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
What this PR does / why we need it:
Since the project is using the
starlettepackage as a transitive dependency(openshift-python-wrapper → fastmcp → mcp → starlette), it is affected byCVE-2026-54283 (GHSA-82w8-qh3p-5jfq). This vulnerability allows Denial of Service unbounded resource allocation inrequest.form()for URL-encoded requests (CVSS 7.5). This PR bumps starlette to >= 1.3.1 whichcontains the fix.
Which issue(s) this PR fixes:
CVE-2026-54283 — starlette
request.form()silently ignores configured limits (max_fields, max_part_size) for application/x-www-form-urlencoded requests, allowing field count and field size attacks.Special notes for reviewer:
The dependency is transitive (4 levels deep) and only the lock file needs updating. No direct code changes are required. Practical risk is low since this is a test framework, but bumping resolves the vulnerability in dependency scanners.
jira-ticket:
https://redhat.atlassian.net/browse/CNV-91916