-
v0.3.1 — Parser RCE Elimination (*read-eval* nil)
Some checks failedDeploy (Gitea) / deploy (push) Failing after 3sreleased this
2026-05-06 16:39:13 -04:00 | 201 commits to main since this releaseThree code paths processed untrusted input with read-from-string/read
without binding read-eval to nil, enabling the #. reader macro to
execute arbitrary Lisp during parsing — before any handler-case or
safety gate could intercept it.Fixes:
- think(): LLM output parsing (core-loop-reason)
- action-system-execute: :system :eval payload parsing (core-loop-act)
- load-memory-from-disk: memory snapshot file parsing (core-memory)
Each site now binds read-eval to nil around read/read-from-string.
Test test-read-eval-rce-blocked verifies #. in LLM output is blocked.Test results: reason 12/0, full suite 88/0 across 21 suites.
Downloads