{"schema":"threatline.record/2","record":{"id":"GHSA-x467-vgxf-2g6h","aliases":["GHSA-x467-vgxf-2g6h"],"summary":"Unauthenticated denial of service via unbounded recursion in Apple MDM enrollment property list parsing","details":"### Summary\r\n\r\nFleet's Apple MDM enrollment endpoints parse a device information payload supplied by the client before the device is authenticated. The binary property list parser used for this payload resolved object references recursively with no depth or cycle limit. A small crafted payload (around 150 bytes) could force the parser into exponential allocation or infinite recursion, exhausting CPU and memory and crashing the Fleet server.\r\n\r\n### Impact\r\n\r\nAn unauthenticated attacker with network access to a Fleet server that has Apple MDM enabled could crash the server, causing a denial of service for the whole instance.\r\n\r\nThis vulnerability impacts **availability only**. There is:\r\n\r\n- No exposure of sensitive data\r\n- No authentication bypass\r\n- No privilege escalation\r\n- No integrity impact\r\n\r\nThis issue only affects Fleet instances with Apple MDM enabled.\r\n\r\n### Patches\r\n\r\nFleet v4.89.0 bounds the depth and size of property lists parsed from Apple MDM enrollment and check-in requests. Fleet v4.92.0 moves this protection into the upstream `github.com/micromdm/plist` parser (v0.3.0).\r\n\r\n### Workarounds\r\n\r\nIf upgrading immediately is not possible, restrict network access to the Apple MDM enrollment endpoints (`/api/mdm/apple/enroll` and `/api/mdm/apple/account_driven_enroll`) to trusted networks. Request size limits do not mitigate this issue because the malicious payload is small.\r\n\r\n### Credits\r\n\r\nWe thank @fuzzztf for responsibly reporting this issue.\r\n\r\n### For more information\r\n\r\nIf you have any questions or comments about this advisory:\r\n\r\nEmail us at [security@fleetdm.com](mailto:security@fleetdm.com)\r\n\r\nJoin #fleet in [osquery Slack](https://join.slack.com/t/osquery/shared_invite/zt-h29zm0gk-s2DBtGUTW4CFel0f0IjTEw)\r\n","categories":["Unclassified"],"product":"github.com/fleetdm/fleet","vendor":"","ecosystem":null,"affected_ranges":[{"source":"GitHub Advisory Database","source_url":"https://github.com/fleetdm/fleet/security/advisories/GHSA-x467-vgxf-2g6h","source_modified_at":"2026-10-02T15:29:28Z","fetched_at":"2026-10-27T10:24:27.527526Z","package":{"ecosystem":"go","name":"github.com/fleetdm/fleet"},"range":"< 4.89.0"}],"fixed_versions":[],"cvss":null,"severity":"High","kev":{"listed":false},"epss":{"probability":null,"percentile":null,"score_date":null},"published_at":"2026-10-02T15:29:28Z","modified_at":"2026-10-02T15:29:28Z","provenance":[{"source":"GitHub Advisory Database","url":"https://github.com/fleetdm/fleet/security/advisories/GHSA-x467-vgxf-2g6h","fetched_at":"2026-10-27T10:24:27.527526Z","source_modified_at":"2026-10-02T15:29:28Z"}],"sources":["GitHub Advisory Database"],"references":[],"locations":[],"motoko_assessment":{"status":"requires_architecture_review","automatic_remediation":false},"classification":{"method":"product-first software-layer rules","rules_version":"2.1","matched_on":null,"confidence":"unknown","reviewed":false},"change_timestamp":"2026-10-02T15:29:28Z","content_hash":"a257d2193d04fe81d982b8dfdd5717db8671ac672296488e360a31df845f37b2"}}
