Flock's ALPR firmware hard-codes an API key that anyone can pull from a public image
DDoSecrets published filesystem images taken from a working Flock ALPR camera. The Android build inside them carries a hard-coded API key and a security patch level seven years older than the build itself.
The Watch · Security desk
What happened
- DDoSecrets published filesystem images of the partitions from an in-use Flock ALPR camera, collected by a collective calling itself stegan0gram, and 404 Media and Wired ran a joint investigation into the data.
- Its kernel is Linux 3.18.71, first released in 2017 and 69 releases behind 3.18.140, the last release before that series was retired in May 2019.
- Micah Lee found a hard-coded credential returned by a getHpnotiqApiKey() method inside the library that 19 of the 20 Flock apps on the image share.
Why it matters
- What's now possible capability A public 1.5 GB download and a decompiler are enough to hold the same credential the camera holds, with no camera, no exploit and no network access to Flock.
- What it costs cost Retiring that credential is a fleet operation for Flock: the value lives in shipped firmware, so every deployed camera needs new app builds before the old key can be cut off.
- What it limits constraint The two root paths rest on the patch level predating both fixes, so nobody has yet shown that a camera on a pole falls to the public WrongZone code.
Next story · Product · Oct 5
Texas cities set their own price on police Flock records, up to $2.3 millionConfirmed2 publishers
The extraction path is three steps. Pull `partitions/24_system.img` out of the dataset, decompile `com.flocksafety.android.common.lib`, and read the string returned by `getHpnotiqApiKey()` in the `CameraSettings` class [12][5][6]. Micah Lee, who published the finding, describes what that string reaches as Flock's live production infrastructure, and puts a warning ahead of the details: "It's illegal to connect to Flock's servers using leaked credentials without their permission," he wrote [7][13].
The image exists because people took cameras out of the field. "We liberated hardware in the field, disarmed them, and proceeded with reverse engineering of the cameras and associated solar equipment," one of the hackers told 404 Media and Wired [4].
Both of the flaws Lee flags need code already running on the camera, and physical possession supplies that [24]. CVE-2018-9568, WrongZone, is a socket type confusion in the kernel's IPv6 handling that lifts a local program to root; Google patched it in December 2018, and exploit code is public [15]. CVE-2021-1905 is a use-after-free in the Qualcomm Adreno GPU driver, reachable from an unprivileged app, and it yields full control of the device; that fix landed in May 2021 [14]. Lee has the firmware and not a camera, so he did not confirm either one works [16].
Seven years separate the build date in `build.prop` from the security patch level it reports, to the day [20]. Android 8.1 came out in 2017, and Google stopped supporting it in 2021 [9]. That leaves roughly three years of 8.1 fixes that existed and were never applied, then four more years in which no fixes were written for the platform at all [21]. The kernel in the boot partition was compiled on the same June day in 2025 as the Android build [19].
A Flock spokesperson told 404 Media and Wired: "We received no report through that process, and based on the limited information provided, we do not have enough detail to assess the claims being made. If the individuals identified legitimate vulnerabilities, we encourage them to submit their technical findings through our vulnerability reporting process so our security team can review them and take any appropriate action." [17] Lee's post names the partition files, quotes the three property lines, and gives the command that prints the kernel version [18].
The dataset settles one unit at one moment. The camera whose firmware was extracted was on that build at that patch level on June 5, 2025; whether the rest of the deployed fleet is on the same Android 8.1 build is not in these images [8][1].
What to watch
- Whether Flock rotates the hpnotiq key, which would require pushing new app builds to deployed cameras.
- Whether anyone demonstrates CVE-2018-9568 or CVE-2021-1905 against a live Flock camera rather than a firmware image.
- Whether Flock or its agency customers state which Android build and patch level the rest of the fleet runs.
Clarity's read
What the record supports and how the coverage leans. The claims behind it follow.
Reality
- Evidence72
- Adoption70
- Hype gap+12
- Incentives65
- Confidence70
Claim ledger
Ranked by verification strength, evidence, and original report placement.
- [1]
DDoSecrets published a dataset consisting of filesystem images of the partitions from an in-use Flock ALPR camera.
- [2]
404 Media and Wired published a joint investigation into the Flock camera filesystem dataset.
- [3]
Hackers from a collective called stegan0gram collected the data.
- [4]
"We liberated hardware in the field, disarmed them, and proceeded with reverse engineering of the cameras and associated solar equipment."
- [5]
The Android firmware for this Flock camera includes 20 separate Flock apps, 19 of which share a library called com.flocksafety.android.common.lib.
- [6]
Decompiling the shared library reveals a method getHpnotiqApiKey() in the CameraSettings class that returns a hard-coded string literal.
- [7]
Micah Lee describes the hard-coded string as credentials into Flock's live production infrastructure.
- [8]
The build.prop file in the camera's system partition lists ro.build.version.sdk=27, ro.build.version.release=8.1.0, ro.build.version.security_patch=2018-06-05, and ro.build.date=Thu Jun 5 20:05:57 UTC 2025.
- [9]
Android 8.1 was released in 2017 and officially stopped getting support from Google in 2021.
- [10]
Google published security fixes for Android 8.1 until 2021.
- [11]
The camera runs Linux 3.18.71, released in 2017; the 3.18 series was maintained until May 2019, ending at 3.18.140, leaving this camera 69 releases short of the series end.
- [12]
The dataset includes partitions/24_system.img at 1.5 GB and partitions/21_boot.img at 32 MB.
- [13]
"It's illegal to connect to Flock's servers using leaked credentials without their permission."
- [14]
CVE-2021-1905 is a use-after-free in the Qualcomm Adreno GPU driver; any code running on the Flock camera, including in unprivileged apps, can corrupt kernel memory through the GPU driver and take full control of the device. It was patched in May 2021.
- [15]
CVE-2018-9568, known as WrongZone, is a kernel socket type confusion; a program running on the camera can confuse the kernel's socket handling over IPv6 and escalate itself to root. It was patched in December 2018, and public exploit code exists.
- [16]
Lee wrote that he does not have the Flock camera to test the vulnerabilities and confirm the hacks work, only that the camera's patch level predates all of them despite patches being available for years.
- [17]
"Flock takes security seriously and maintains a public Vulnerability Disclosure Policy for security researchers to report potential vulnerabilities directly to us. We received no report through that process, and based on the limited information provided, we do not have enough detail to assess the claims being made. If the individuals identified legitimate vulnerabilities, we encourage them to submit their technical findings through our vulnerability reporting process so our security team can review them and take any appropriate action."
- [18]
Lee's post gives the partition filenames, quotes the three build.prop property lines, and supplies the shell command that prints the kernel version string from the boot partition.
- [19]
The kernel version string reads "Linux version 3.18.71-perf-gaf770dc ... #1 SMP PREEMPT Thu Jun 5 20:15:45 UTC 2025", showing the 2017 kernel was compiled in June 2025.
- [20]
The Android build was compiled exactly seven years to the day after the security patch level it reports.
- [21]
About three years of Android 8.1 fixes that Google did publish were never applied to this build, and the four years between the end of 8.1 support and the build date produced no upstream fixes for the platform at all.
- [22]
Recovering the hard-coded key requires only downloading the public 1.5 GB system image and decompiling the shared library, with no exploitation of a camera.
- [23]
Because the key is compiled into a library shipped on the camera, revoking it requires distributing new app builds to deployed cameras rather than changing a server-side setting.
- [24]
Physical possession of a camera, which the collective had, satisfies the local code execution precondition both CVEs require.
Sources
2 independent publishers whose own reporting we read for this story.
- 404media.coHackers Stole Flock’s Camera Software, Revealing How the Company Tracks Cars and People
2 articles · September 16, 2026
- Flock cameras are riddled with security vulnerabilities and hard-coded credentials
micahflee.com
1 article · September 16, 2026