Skip to content

fix(autogen-ext): restrict unpickling of task-centric memory files#7761

Open
White-Mouse wants to merge 1 commit into
microsoft:mainfrom
White-Mouse:codex/restrict-task-memory-pickle
Open

fix(autogen-ext): restrict unpickling of task-centric memory files#7761
White-Mouse wants to merge 1 commit into
microsoft:mainfrom
White-Mouse:codex/restrict-task-memory-pickle

Conversation

@White-Mouse
Copy link
Copy Markdown

What

The experimental task-centric memory feature persists local state to disk (e.g. uid_memo_dict.pkl / uid_text_dict.pkl). On startup, the current implementation uses pickle.load(...) to deserialize those files.

This PR switches those loads to a small restricted unpickler allowlist (builtins containers/primitives + Memo for the memo dict) and adds regression coverage that unsafe globals are blocked during load.

Why

pickle is not safe for untrusted inputs. These persisted files are easy to copy between projects or restore from shared storage; failing closed here reduces the risk of arbitrary code execution if a .pkl file is replaced or tampered with.

Verification

  • ruff check (changed files)
  • pytest -q packages/autogen-ext/tests/task_centric_memory/test_restricted_pickle.py (requires chromadb)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants