fix(security): prevent injection vulnerabilities in direct_scanner#209
Open
fix(security): prevent injection vulnerabilities in direct_scanner#209
Conversation
- Add URL validation in scan_streamable_https() to prevent control characters - Add _validate_package_name() to prevent path traversal and control characters - Add _validate_version() to restrict version strings to semver-compatible chars - Add _validate_oci_url() to prevent shell metacharacter injection - Replace string concatenation with json.dumps() for proper JSON escaping These changes prevent potential command injection and JSON injection attacks when scanning MCP servers from user-provided URLs, package names, and OCI URLs.
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
This PR fixes potential injection vulnerabilities in the direct_scanner.py module.
Security Issues Fixed
1. URL Injection Vulnerability
scan_streamable_https()json.dumps()for proper escaping2. JSON Injection Vulnerability
scan_npm(),scan_pypi(),scan_oci()json.dumps()for proper escapingChanges
_validate_package_name()- prevents path traversal and control characters_validate_version()- restricts to semver-compatible characters_validate_oci_url()- prevents shell metacharacter injectionjson.dumps()for proper JSON escapingTest Plan
Security Impact
These changes prevent: