fix(security): guard browse.sh skillMdUrl fetches against SSRF - #70330
fix(security): guard browse.sh skillMdUrl fetches against SSRF#70330zapabob wants to merge 1 commit into
Conversation
Route BrowseShSource detail and CDN content fetches through _guarded_http_get so catalog-supplied skillMdUrl values cannot redirect to private or link-local targets. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Thanks for identifying the unguarded browse.sh path. The premise is confirmed on current main: Problems
Suggested changes
Automated hermes-sweeper review. |
|
This is a slice of #63920, not a leftover. #63920 already routes browse.sh "Not merged yet" is not the same as "browse.sh is unguarded." Please don't land this as the browse.sh fix over #63920. |
|
Closing this as a duplicate of #63920. The latter covers the same BrowseSh |
Summary
skillMdUrl(and the detail endpoint) with rawhttpx.get(..., follow_redirects=True), so a malicious CDN URL or redirect hop could reach private/link-local addresses._guarded_http_gethelper (SSRF + hop re-validation), matching the rest of Skills Hub.skillMdUrlis refused.Test plan
pytest tests/tools/test_skills_hub_browse_sh.py(8 passed)