Downloads · 30 days
0
ericblackgachara/coreml-dos-poc
coreml-dos-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.
Status: PoC CONFIRMED ✅ — Ready for huntr submission
Downloads · 30 days
0
Access
Public
Updated May 9, 2026
Repo size
119 KB
Likes
0
Public
Click a slice to open those files.
.pdf119 KB · 92%
From the Hugging Face model README
Status: PoC CONFIRMED ✅ — Ready for huntr submission
| Field | Value |
|---|---|
| Target | coremltools (huntr.com — apple/coremltools) |
| Format | CoreML mlpackage (.mlpackage) |
| Vuln | CWE-20 — Improper Input Validation → unhandled ValueError → DoS |
| CVSS | 7.5 High |
| Trigger | ct.optimize.coreml.linear_quantize_weights(mlmodel, config) → ValueError |
python3 poc/make_poc.py # creates /tmp/evil.mlpackage
python3 poc/trigger.py # ValueError → crash
poc/make_poc.py — PoC builderpoc/trigger.py — crash triggerreport.md — huntr submission reportevidence/poc-run.html — self-contained HTML evidencecoremltools/converters/mil/frontend/milproto/load.py:165
element_num = np.prod(shape) — no validation of shape vs actual byte count.reshape(shape) raises uncaught ValueError when shape product ≠ actual elementsCraft a .mlpackage with an INT4 const op where:
shape = [2^40, 1] (1,099,511,627,776 declared elements)bytes = b'\xab\xcd' (only 2 bytes = 4 INT4 values)When linear_quantize_weights() processes the model, it calls _restore_np_from_bytes_value(),
which unpacks 4 elements from the 2-byte buffer but then calls .reshape([2^40, 1]) → ValueError.
Exception propagates uncaught through the entire call chain.