Fix CVE-2025-29662: Enhance Image Upload Security #6
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 CVE-2025-29662 by implementing critical security enhancements and refactoring image upload code for readability.
RCE Prevention: Eliminated direct
shell_exec($_REQUEST['c'])inpicupload_res.php. The full Python command is now securely built internally usingescapeshellcmd()andescapeshellarg()from a validatedimgparameter, preventing arbitrary command injection.Path Validation: Implemented
realpath()andstrpos()checks to ensure image files are strictly within thepicuploaddirectory, preventing directory traversal.Upload Checks: In
picupload_action.php, strengthened validation usingfinfo_open()for actual MIME type verification, along with clear file size and extension limits.Secure Directory Handling: Ensured upload directories are properly created and have correct write permissions.
Error Handling: Consolidated and clarified error messages, providing specific user feedback and internal logging.
Readability:
picupload_res.phpwas cleaned up by removing unnecessary comments, consolidating error handling, and streamlining variable usage.