mirror of
https://github.com/django/django.git
synced 2025-09-26 12:09:19 +00:00
Fixed CVE-2021-31542 -- Tightened path & file name sanitation in file uploads.
This commit is contained in:
parent
8de4ca74ba
commit
0b79eb3691
14 changed files with 190 additions and 13 deletions
|
@ -1,6 +1,7 @@
|
|||
import json
|
||||
import sys
|
||||
|
||||
from django.core.exceptions import SuspiciousFileOperation
|
||||
from django.test import SimpleTestCase
|
||||
from django.utils import text
|
||||
from django.utils.functional import lazystr
|
||||
|
@ -228,6 +229,13 @@ class TestUtilsText(SimpleTestCase):
|
|||
filename = "^&'@{}[],$=!-#()%+~_123.txt"
|
||||
self.assertEqual(text.get_valid_filename(filename), "-_123.txt")
|
||||
self.assertEqual(text.get_valid_filename(lazystr(filename)), "-_123.txt")
|
||||
msg = "Could not derive file name from '???'"
|
||||
with self.assertRaisesMessage(SuspiciousFileOperation, msg):
|
||||
text.get_valid_filename('???')
|
||||
# After sanitizing this would yield '..'.
|
||||
msg = "Could not derive file name from '$.$.$'"
|
||||
with self.assertRaisesMessage(SuspiciousFileOperation, msg):
|
||||
text.get_valid_filename('$.$.$')
|
||||
|
||||
def test_compress_sequence(self):
|
||||
data = [{'key': i} for i in range(10)]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue