Downloads · 30 days
0
ericblackgachara/orbax-checkpoint-uncontrolled-recursion-poc
orbax-checkpoint-uncontrolled-recursion-poc is a machine learning model from ericblackgachara. Use it for the machine learning task on the model card, and read the license before you ship it in a product.
Downloads · 30 days
0
Access
Public
Updated Jun 1, 2026
Repo size
151 KB
Likes
0
Public
Click a slice to open those files.
.pdf151 KB · 89%
From the Hugging Face model README
| Field | Value |
|---|---|
| Package | orbax-checkpoint |
| Version | 0.11.40 (latest) |
| Commit | a87ebc8 |
| Platform | huntr.com |
| CWE | CWE-674 Uncontrolled Recursion |
| CVSS | 7.5 High |
_unchunk_array_leaves_in_place(d) in orbax/checkpoint/msgpack_utils.py recursively traverses a dict deserialized from a msgpack checkpoint file with no depth guard. A 1,001-level nested dict (3,009 bytes) triggers RecursionError.
def _unchunk_array_leaves_in_place(d): # no depth guard
for k, v in d.items():
elif isinstance(v, dict):
_unchunk_array_leaves_in_place(v) # ← unbounded recursion
victim: checkpointer.restore(malicious_dir/)
→ MsgpackHandler.deserialize(dir/checkpoint)
→ msgpack_restore(bytes)
→ _unchunk_array_leaves_in_place(state_dict) ← RecursionError at depth 1001
pip install orbax-checkpoint msgpack
python3 poc_orbax.py
Expected output:
[*] Python recursion limit: 1000
[*] Payload: 3009 bytes, depth=1001
[+] CONFIRMED: RecursionError in _unchunk_array_leaves_in_place
[+] CONFIRMED via MsgpackHandler: maximum recursion depth exceeded
def _unchunk_array_leaves_in_place(d, _depth=0):
if _depth > 500:
raise ValueError('Checkpoint nesting depth exceeds limit')
...
_unchunk_array_leaves_in_place(v, _depth + 1)
| File | Purpose |
|---|---|
poc_orbax.py | Working PoC |
submission.md | Full technical writeup (markdown) |
report.md | Plain-prose paste target for huntr form |
poc-evidence.html | HTML evidence page with terminal output |
README.md | This file |