From: Antonio Ospite <ao2@ao2.it> Date: Sun, 30 Oct 2016 10:34:22 +0000 (+0100) Subject: Fix information leakage by validating the URL scheme X-Git-Tag: v1.0.0~14 X-Git-Url: https://git.ao2.it/tweeper.git/commitdiff_plain/21601a9299810f223341ff4bed4f9649f5ea0359?hp=21601a9299810f223341ff4bed4f9649f5ea0359 Fix information leakage by validating the URL scheme Validate the scheme to prevent leaking information by abusing the file:// scheme. Before this change it was possible to see what files are available on the system running tweeper. The script in tests/test_information_leakage.sh shows the problem on earlier versions. Here is an execution with tweeper-0.6: ----------------------------------------------------------------------- URL file://twitter.com//etc/passwd --> /etc/passwd exists URL file://twitter.com//etc/file_with_an_unlikely_name ... /etc/file_with_an_unlikely_name does not exist Staring a test server URL file://twitter.com//etc/passwd --> /etc/passwd on http://localhost:8000 exists URL file://twitter.com//etc/file_with_an_unlikely_name ... /etc/file_with_an_unlikely_name on http://localhost:8000 does not exist Shutting down the test server ----------------------------------------------------------------------- Here is an execution after this fix: ----------------------------------------------------------------------- PHP Fatal error: unsupported scheme: file in /home/ao2/Proj/Tweeper/tweeper/tweeper.php on line 323 URL file://twitter.com//etc/passwd ... /etc/passwd does not exist PHP Fatal error: unsupported scheme: file in /home/ao2/Proj/Tweeper/tweeper/tweeper.php on line 323 URL file://twitter.com//etc/file_with_an_unlikely_name ... /etc/file_with_an_unlikely_name does not exist Staring a test server URL file://twitter.com//etc/passwd ... /etc/passwd on http://localhost:8000 does not exist URL file://twitter.com//etc/file_with_an_unlikely_name ... /etc/file_with_an_unlikely_name on http://localhost:8000 does not exist Shutting down the test server ----------------------------------------------------------------------- ---