QuizGenerator

v0.27.3 suspicious
6.0
Medium Risk

Generate randomized quiz questions for Canvas LMS and PDF exams

πŸ€– AI Analysis

Final verdict: SUSPICIOUS

The package exhibits a moderate level of risk due to its potential for executing arbitrary shell commands and obfuscating code/data without clear justification.

  • High shell execution risk
  • High obfuscation risk
Per-check LLM notes
  • Network: Network calls appear to be for downloading content and may be related to fetching resources required for quiz generation.
  • Shell: Shell executions involve LaTeX and Typst commands which could be used for generating PDFs and other documents. However, the use of '-shell-escape' in LaTeXMK is risky as it allows arbitrary shell commands execution.
  • Obfuscation: The use of base64 decoding and zlib decompression for data manipulation may indicate an attempt to obfuscate code or hide data, which is suspicious without clear justification.
  • Credentials: No patterns indicative of credential harvesting were found.
  • Metadata: The maintainer's author information is incomplete, and the repository lacks community engagement, raising some suspicion.

πŸ”¬ Heuristic Checks

⚠ Outbound Network Calls score 3.0

Found 2 network call pattern(s)

  • content_type')) with urllib.request.urlopen(download_url, ti
  • "lms_interface.classes.urllib.request.urlopen", return_value=self._FakeResponse(b"prin
⚠ Code Obfuscation score 6.0

Found 3 obfuscation pattern(s)

  • atch.group("mime") data = base64.b64decode(match.group("data")) ext = mimetypes.guess_extension(mim
  • ld_eval_env(context) return eval(expr, {"__builtins__": {}}, env) def _render_template(text
  • t, None) json_bytes = zlib.decompress(compressed) return json.loads(json_bytes.decode("utf
⚠ Shell / Subprocess Execution score 10.0

Found 6 shell execution pattern(s)

  • ug_name)) try: result = subprocess.run( f"latexmk -pdf -shell-escape -output-directory={os.pa
  • urn False cleanup_result = subprocess.run( f"latexmk -c {tmp_tex.name} -output-directory={os.path.
  • paths work correctly p = subprocess.Popen( ['typst', 'compile', '--root', '/', tmp_typ.name, out
  • measurements result = subprocess.run( ['typst', 'query', str(temp_file), '<measuremen
  • """ try: result = subprocess.run( ['typst', '--version'], capture_out
  • out')} {tmp_tex.name}", shell=True, capture_output=True, timeout=30, check=F
βœ“ Credential Harvesting

No credential harvesting patterns detected

βœ“ Typosquatting

No typosquatting candidates detected

βœ“ Registered Email Domain

Email domain looks legitimate: gmail.com>

βœ“ Suspicious Page Links

All external links appear legitimate

⚠ Git Repository History score 2.5

Git history flags: Repository has zero stars and zero forks

  • Repository has zero stars and zero forks
⚠ Maintainer History score 4.0

2 maintainer concern(s) found

  • Author name is missing or very short
  • Author "" appears to have only 1 package on PyPI (new or inactive account)
βœ“ Known CVE Vulnerabilities

No known vulnerabilities found in OSV database.

πŸ’‘ AI App Starter Prompt

Use this prompt to build a project with QuizGenerator
Your task is to develop a fully-functional mini-application called 'SmartQuiz' that leverages the Python package 'QuizGenerator' to create randomized quizzes for educational purposes. This application will serve as a versatile tool for educators and students alike, allowing them to generate quizzes that can be easily integrated into Canvas Learning Management System (LMS) and exported as PDF files for offline use. Here’s a detailed breakdown of what your application should achieve:

1. **User Interface**: Design a simple yet intuitive user interface using a web framework like Flask or Django. The UI should allow users to input details such as the number of questions, question types (multiple choice, true/false, short answer), and subject areas.

2. **Quiz Generation**: Utilize the 'QuizGenerator' package to dynamically generate quizzes based on the user inputs. Ensure that the quizzes are randomized each time they are generated to prevent memorization of specific question orders.

3. **Integration with Canvas LMS**: Implement functionality to export the generated quizzes directly into Canvas LMS format. This feature should include options for setting up quiz parameters such as time limits, point values, and randomization settings within the Canvas system.

4. **PDF Export**: Provide an option for users to download the generated quizzes as PDF files. These PDFs should be formatted neatly, including question numbers, multiple choice options (if applicable), and space for handwritten answers.

5. **Customization Options**: Allow advanced users to customize quiz generation parameters such as difficulty level, inclusion of images or diagrams, and specifying the exact questions or topics they want to include.

6. **Security and Privacy**: Ensure that any data entered by the user (such as quiz content or personal information) is handled securely. Use appropriate encryption methods and comply with privacy regulations.

7. **Testing and Documentation**: Thoroughly test your application to ensure it works as expected across different scenarios. Write comprehensive documentation explaining how to install, configure, and use 'SmartQuiz', including examples and best practices.

By following these guidelines, you'll create a powerful tool that enhances the learning experience for both teachers and students, making quiz creation more efficient and engaging.