summaryrefslogtreecommitdiff
path: root/test/Tests/MediaBag.hs
AgeCommit message (Collapse)Author
2023-07-20Fix new variant of the vulnerability in CVE-2023-35936.John MacFarlane
Guilhem Moulin noticed that the fix to CVE-2023-35936 was incomplete. An attacker could get around it by double-encoding the malicious extension to create or override arbitrary files. $ echo '![](data://image/png;base64,cHJpbnQgImhlbGxvIgo=;.lua+%252f%252e%252e%252f%252e%252e%252fb%252elua)' >b.md $ .cabal/bin/pandoc b.md --extract-media=bar <p><img src="bar/2a0eaa89f43fada3e6c577beea4f2f8f53ab6a1d.lua+%2f%2e%2e%2f%2e%2e%2fb%2elua" /></p> $ cat b.lua print "hello" $ find bar bar/ bar/2a0eaa89f43fada3e6c577beea4f2f8f53ab6a1d.lua+ This commit adds a test case for this more complex attack and fixes the vulnerability. (The fix is quite simple: if the URL-unescaped filename or extension contains a '%', we just use the sha1 hash of the contents as the canonical name, just as we do if the filename contains '..'.)
2023-06-23Improve tests for fillMediaBag/extractMedia.John MacFarlane
Ensure that the current directory is not changed up if a test fails, and fix messages for the assertion failures.
2023-06-23Add tests for fillMediaBag/extractMedia.John MacFarlane