🔒 Fix Intent URL Validation & SSRF Vulnerability #32
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.
This PR addresses a security vulnerability where
MainActivityblindly accepted and scraped URLs viaACTION_VIEWintents, potentially allowing malicious apps to pollute the library or trigger SSRF attacks by pointing the scraper to local network resources.Changes:
UrlSecurityutility to reject private IP addresses (192.168.x.x, 10.x.x.x, etc.) and loopback addresses, ensuring the scraper only targets public web content.ExternalUrlConfirmationDialog. When an external link is received, the app now prompts the user ("Open this link in Reader?") instead of acting immediately.libraryViewModel.addIteminMainActivity. External links are now opened in "Preview Mode" and are not automatically saved to the persistent library database, preventing library pollution.MainActivity(Compose root) to ensure the dialog is visible even if the user was on a different screen (e.g., Explore) when the intent was received. Upon confirmation, the app navigates to theReaderScreen.UrlSecurityTestto verify IP blocking logic.PR created automatically by Jules for task 862430617499026646 started by @Aatricks