Downloads · 30 days
0
celvexgroup/modelaudit-surrealml-surml-onnx-offset-blindspot-poc
modelaudit-surrealml-surml-onnx-offset-blindspot-poc is a machine learning model from celvexgroup. Use it for the machine learning task on the model card, and read the license before you ship it in a product.
Coordinated disclosure PoC for huntr (Protect AI MFV). Benign markers only; nothing executes.
Downloads · 30 days
0
Access
Public
Updated Jul 19, 2026
Repo size
340 B
Likes
0
Public
Click a slice to open those files.
.md2.5 KB · 48%
From the Hugging Face model README
Coordinated disclosure PoC for huntr (Protect AI MFV). Benign markers only; nothing executes.
.surml carrying an ONNX model.modelaudit scan --format json malicious_wrapped.surml -> detect 'unknown', scanner_names [], issues [], success TRUE, exit 0. The IDENTICAL ONNX bytes scanned bare (malicious_bare.onnx) -> detect 'onnx', success FALSE, 8 issues incl 4x CRITICAL (ONNX PyOp arbitrary-code-exec; CVE-2022-25882 + CVE-2025-51480 external_data path traversal), exit 1 -> positive control, detector is LIVE.extension_only_no_header.surml is the bare ONNX with ONLY the extension changed to .surml (sha256 == malicious_bare.onnx) -> modelaudit still detects 'onnx' and flags CRITICAL exit 1. This isolates the cause to the .surml header offset (not the extension): modelaudit is content-based, and the 4-byte big-endian header + //=> header block shifts the ONNX ModelProto off offset 0, so _looks_like_onnx_model_proto_stream parses at position 0, resolves field_number 0, and returns not-ONNX.embedded_onnx_verbatim=true) -- i.e. the exact bytes SurrealML hands to ONNX Runtime on load. Reproduce a real .surml with pip install surrealml onnxruntime + SurMlFile(model=<onnx>, engine=Engine.ONNX).save(...).Files: malicious_wrapped.surml (bypass), malicious_bare.onnx (positive control, fires CRITICAL), extension_only_no_header.surml (decisive control, fires). Full report in huntr submission.