Describe the bug
The following error is thrown:
Error: Unhandled error: SyntaxError: Unexpected identifier 'pickle'
To Reproduce
Steps to reproduce the behavior:
run the following action step:
- name: Create commentuses: actions/github-script@v9.0.0with:
github-token: ${{ inputs.github-token }}script: | github.rest.issues.createComment({ issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, body: `### 1. **Arbitrary Code Execution via `pickle.loads()` on Untrusted Input** (`test01.py`)**Severity: CRITICAL**The file `test01.py` takes user input directly and passes it to `pickle.loads()`. This is a well-known **Remote Code Execution (RCE)** vulnerability. An attacker can craft a malicious pickle payload that executes arbitrary system commands upon deserialization.Additionally, `pickle.loads()` expects `bytes`, but `input()` returns a `str` in Python 3, so this code will also raise a **`TypeError`** at runtime.**File: `test01.py`**```python # Current (vulnerable and broken): import pickle data = input("Enter serialized data: ") obj = pickle.loads(data)```**Suggested fix:**```python import json data = input("Enter serialized data: ") obj = json.loads(data)```If `pickle` is absolutely required (not recommended with untrusted input), at minimum fix the type error and restrict allowed classes:
```python import pickle import io ALLOWED_CLASSES = { # explicitly list allowed classes here } class RestrictedUnpickler(pickle.Unpickler): def find_class(self, module, name): if (module, name) in ALLOWED_CLASSES: return ALLOWED_CLASSES[(module, name)] raise pickle.UnpicklingError(f"Forbidden class: {module}.{name}") data = input("Enter serialized data: ") obj = RestrictedUnpickler(io.BytesIO(data.encode('latin-1'))).load()```` })Expected behavior
No error and comment is created.
Desktop (please complete the following information):
- OS: Ubuntu 22.04
- Runner 2.331.0
Additional context
The markdown text is actually a dynamic response generated by a LLM, hence no way to modify the markdown contents.
Describe the bug
The following error is thrown:
Error: Unhandled error: SyntaxError: Unexpected identifier 'pickle'
To Reproduce
Steps to reproduce the behavior:
run the following action step:
Expected behavior
No error and comment is created.
Desktop (please complete the following information):
Additional context
The markdown text is actually a dynamic response generated by a LLM, hence no way to modify the markdown contents.