RFC API endpoint is RCE-adjacent with no loopback/auth hardening #193
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
nsaspy/a0-symbolics#193
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
api/rfc.pysetsrequires_auth = False,requires_csrf = False, and norequires_loopbackgate. It forwards toruntime.handle_rfc()which performsimportlib.import_module(module)+getattr(imp, function_name)— arbitrary function invocation. The only gate is an HMAC-SHA256 of RFC_PASSWORD, verified with a non-constant-time==comparison inhelpers/rfc.py:verify_data.Risk
Suggested fix
requires_loopbackgate (likeapi/scheduler_tick.pydoes).hmac.compare_digestinhelpers/crypto.py:verify_data.Files:
api/rfc.py,helpers/rfc.py:44-67,helpers/crypto.py:12-13.Found during code audit (follow-up to #69).
Mirrored from
lost-rob0t/a0-symbolics#81via tracker sync.