<script data-pm-proxy="intercept"></script><?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Ringmast4r]]></title><description><![CDATA[Independent security researcher sharing OSINT techniques, breach analysis, and things that shouldn't be public. Documenting the internet's open secrets through OSINT and security research.]]></description><link>https://ringmast4r.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!2mAD!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0358c083-e7f3-41c6-90c2-16605e959275_1024x1024.png</url><title>Ringmast4r</title><link>https://ringmast4r.substack.com</link></image><generator>Substack</generator><lastBuildDate>Fri, 04 Sep 2026 00:31:46 GMT</lastBuildDate><atom:link href="/__u/ringmast4r.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Ringmast4r]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[ringmast4r@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[ringmast4r@substack.com]]></itunes:email><itunes:name><![CDATA[Patrick Quirk]]></itunes:name></itunes:owner><itunes:author><![CDATA[Patrick Quirk]]></itunes:author><googleplay:owner><![CDATA[ringmast4r@substack.com]]></googleplay:owner><googleplay:email><![CDATA[ringmast4r@substack.com]]></googleplay:email><googleplay:author><![CDATA[Patrick Quirk]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[A Fusion Center’s Flock Stack Landed on GitHub]]></title><description><![CDATA[A contractor published the ALPR stack built for a California fusion center: 1,183 Flock cameras with coordinates, and the API that pulls the plates.]]></description><link>https://ringmast4r.substack.com/p/a-fusion-centers-flock-stack-landed</link><guid isPermaLink="false">https://ringmast4r.substack.com/p/a-fusion-centers-flock-stack-landed</guid><dc:creator><![CDATA[Patrick Quirk]]></dc:creator><pubDate>Sat, 29 Aug 2026 04:06:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!OwOt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F265171c5-1ea4-4bfe-b909-d91274c94598_2515x1284.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!OwOt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F265171c5-1ea4-4bfe-b909-d91274c94598_2515x1284.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!OwOt!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F265171c5-1ea4-4bfe-b909-d91274c94598_2515x1284.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!OwOt!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F265171c5-1ea4-4bfe-b909-d91274c94598_2515x1284.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!OwOt!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F265171c5-1ea4-4bfe-b909-d91274c94598_2515x1284.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!OwOt!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F265171c5-1ea4-4bfe-b909-d91274c94598_2515x1284.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!OwOt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F265171c5-1ea4-4bfe-b909-d91274c94598_2515x1284.jpeg" width="1456" height="743" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/265171c5-1ea4-4bfe-b909-d91274c94598_2515x1284.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:743,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:590415,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://ringmast4r.substack.com/i/213235755?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F265171c5-1ea4-4bfe-b909-d91274c94598_2515x1284.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!OwOt!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F265171c5-1ea4-4bfe-b909-d91274c94598_2515x1284.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!OwOt!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F265171c5-1ea4-4bfe-b909-d91274c94598_2515x1284.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!OwOt!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F265171c5-1ea4-4bfe-b909-d91274c94598_2515x1284.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!OwOt!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F265171c5-1ea4-4bfe-b909-d91274c94598_2515x1284.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>This is not a police department&#8217;s blog</strong></h2><p>NCRIC is the <strong>Northern California Regional Intelligence Center</strong>. Fusion centers sit above city PDs. They take tips, cases, and sensor feeds from many agencies and turn them into regional intel. NCRIC is that shop for a large slice of Northern California.</p><p>The GitHub repo is <strong>not</strong> <code>github.com/NCRIC/...</code>. It is <code>erhhung/ncric-alprs</code>, published from a personal account whose commits are signed <code>eyuan@maiveric.com</code>. The description is blunt: <strong>ALPRS (AstroMetrics) Automated AWS Infrastructure Deployment for NCRIC</strong> (<a href="https://github.com/erhhung/ncric-alprs">GitHub, erhhung/ncric-alprs</a>).</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://ringmast4r.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ringmast4r is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>MaiVERIC / AstroMetrics is the contractor. OpenLattice-style ALPR plumbing is the product. Flock Safety is a <strong>data source</strong> they wired in. The repo is Terraform, Auth0, Rundeck, Postgres dumps, Postman environments, and a worker they nicknamed <strong>Flapper</strong>: a CLI that pulls ALPR reads from Flock over REST.</p><p>Ottawa, Illinois published an intranet <strong>link</strong> to Flock&#8217;s hotlist. This repo publishes the <strong>ingest pipeline</strong> and a database extract of the cameras that pipeline was pointed at.</p><div><hr></div><h2><strong>Flapper: how they talk to Flock</strong></h2><p><code>flapper/README.md</code> says Flapper runs on the Rundeck worker and retrieves ALPR reads from Flock Safety via REST. <code>docs/flock_api.md</code> lists the calls:</p><ul><li><p><code>POST /v1/auth/userpass</code></p></li><li><p><code>POST /v1/query</code></p></li><li><p><code>POST /v2/images</code></p></li><li><p><code>GET /v1/cameras</code></p></li></ul><p>The config file <code>flapper/config/flapper.yaml</code> points a datalake named <code>flock</code> at <code>https://api.flocksafety.com/api</code>, with username and password taken from environment variables (<code>FLOCK_USER</code>, <code>FLOCK_PASSWORD</code>). The live secrets are not sitting in that YAML as plaintext. The <strong>architecture</strong> is.</p><p>That is the vendor leak pattern: not &#8220;here is the production password in a screenshot,&#8221; but &#8220;here is exactly which Flock API you hit, from which AWS account shape, on behalf of which fusion center.&#8221;</p><div><hr></div><h2><strong>1,183 cameras, with coordinates</strong></h2><p><code>postgresql/flock.sql.gz</code> is a Postgres dump of Flock network and camera tables. Parsed, it is <strong>1,183 unique cameras</strong> across <strong>47 agencies / 48 networks</strong>. Each camera row has:</p><ul><li><p>Flock camera id and UUID</p></li><li><p>Human name (usually an intersection: &#8220;N/B Middlefield @ Ravenswood&#8221;)</p></li><li><p><strong>Latitude and longitude</strong></p></li><li><p>Parent network (the agency)</p></li></ul><p>A companion text dump, <code>docs/flock-cameras.txt</code>, is the same census as a table of agency + camera name. <code>docs/flock-agencies.txt</code> rolls up counts. Examples from the agency file: Atherton CA PD (50 cameras), Benicia (45), Fairfield (56), Ontario CA PD (91), NCRIC&#8217;s own network (16), Kaiser Permanente Vallejo (13).</p><p>This is not a live CAD feed. It is a <strong>point-in-time extract</strong> of Flock camera inventory as NCRIC&#8217;s integrator stored it: street-level names plus WGS84 coordinates. Plot the inserts and you get a map of the Bay Area and Northern California Flock footprint this system knew about.</p><p>We plotted 1,182 of them (one row was 0,0 and dropped) on a local HTML map built from that SQL.</p><div><hr></div><h2><strong>What else is in the tree (and what is not)</strong></h2><p>The repo is 500-plus files of real platform: EKS, GovCloud hints (<code>us-gov-west-1</code>, <code>alprsgov</code> profile), Auth0 tenant <code>maiveric.us.auth0.com</code>, Postman <strong>prod</strong> and <strong>dev</strong> environments for <code>api.astrometrics.us</code>, Java keystores, public TLS/IdP certs, Rundeck job XML that talks to the same Postgres pattern.</p><p>Client <strong>IDs</strong> for Auth0 SPA/M2M/webhook apps appear in <code>*.tfvars.example</code> and Postman JSON. Client <strong>secrets</strong> are empty or marked <code>DO_NOT_STORE</code>. SSH keys in the examples are truncated. Flock passwords stay in <code>${}</code> placeholders.</p><p>So: this is not a full credential dump. It is worse in a different way. It is a <strong>blueprint</strong> plus a <strong>camera geofile</strong> for a fusion center&#8217;s Flock-fed ALPR warehouse.</p><p>We searched GitHub for a second copy of this pattern (<code>api.flocksafety.com</code> in Terraform/YAML, Flapper, <code>FLOCK_USER</code> / <code>FLOCK_PASSWORD</code>). The NCRIC repo is the only operational hit. API-catalog accounts republish docs. A dog-tracker app mentions the hostname. A researcher repo (<code>eric-muller/alpr</code>) processes Flock <strong>audit logs from public records</strong>, which is FOIA work, not a contractor publishing the live stack.</p><div><hr></div><h2><strong>Flock Safety&#8217;s own infrastructure: 806 exposures, 493 critical/high</strong></h2><p>The scanner also probed Flock Safety&#8217;s entire flocksafety.com domain ecosystem. From a single scan:</p><p><strong>Exposure summary:</strong></p><ul><li><p>Total findings: <strong>806</strong></p></li><li><p>Open/interesting: <strong>561</strong></p></li><li><p><strong>CRITICAL</strong>: <strong>246</strong> | <strong>HIGH</strong>: <strong>247</strong> | <strong>MEDIUM</strong>: <strong>68</strong></p></li></ul><p><strong>By system (top findings):</strong></p><ul><li><p><strong>149</strong> Public Git Repositories (/.svn/entries)</p></li><li><p><strong>68</strong> robots.txt + Wayback archives</p></li><li><p><strong>37</strong> CouchDB endpoints (/)</p></li><li><p><strong>20</strong> RabbitMQ / AMQP (/api/overview)</p></li><li><p><strong>15</strong> CouchDB utilities (/_utils/)</p></li><li><p><strong>15</strong> Elasticsearch /_cat/indices</p></li><li><p><strong>14</strong> Kubernetes Dashboard / etcd (/api/v1/namespaces)</p></li><li><p><strong>8</strong> ELK Stack Kibana (/app/kibana)</p></li><li><p><strong>7</strong> Default Credentials login portals</p></li><li><p><strong>6</strong> MongoDB Express (/mongo-express/)</p></li></ul><p><strong>Critical hostnames exposed:</strong></p><ul><li><p><code>www.flocksafety.com</code> &#8212; CouchDB root</p></li><li><p><code>status.flocksafety.com</code> &#8212; Kubernetes etcd + CouchDB</p></li><li><p><code>security.flocksafety.com</code> &#8212; CouchDB</p></li><li><p><code>link.flocksafety.com</code> &#8212; Kibana, Mongo Express, MinIO, Kubernetes</p></li><li><p><code>scim.flocksafety.com</code> &#8212; application.yml (config), Kibana, Kubernetes</p></li><li><p><code>hello-devops2.flocksafety.com</code> &#8212; adminer.php, backup.sql, dump.sql, /application.yml, Kubernetes, Jenkins, GitLab</p></li><li><p><code>springbank10.flocksafety.com</code> &#8212; Default login portals</p></li><li><p><code>internal.support.flocksafety.com</code> &#8212; /admin portals</p></li><li><p><code>login.flocksafety.com</code> &#8212; CouchDB</p></li></ul><p>The NCRIC integrator published the <strong>agency footprint</strong>. Flock&#8217;s own infrastructure published <strong>itself</strong>.</p><h2><strong>Two failure modes, one vendor ecosystem</strong></h2><p>Put this next to Ottawa PD.</p><p>Ottawa is the <strong>customer</strong> putting the officer portal on Pages. NCRIC/ALPRS is the <strong>integrator</strong> putting the regional Flock ingest on GitHub. Flock does not have to &#8220;get hacked&#8221; for the surrounding system to leak. The vendor itself published 806 paths into its own operations. The agencies and vendors who bolt onto Flock publish enough to reconstruct who is on the network and, in this case, <strong>where the cameras sit</strong>.</p><div><hr></div><h1><strong>Raw Data</strong></h1><p>Parsed from the public clone of <code>erhhung/ncric-alprs</code> (commit <code>f5a4a75</code>, &#8220;Launch Worker as a spot instance&#8221;), archived locally 2026-08-20.</p><h2><strong>Canonical URLs</strong></h2><ul><li><p>Repo: <a href="https://github.com/erhhung/ncric-alprs">https://github.com/erhhung/ncric-alprs</a></p></li><li><p>Flock API notes: <code>docs/flock_api.md</code> (points at <code>https://api.flocksafety.com/api-docs/</code>)</p></li><li><p>Flapper config: <code>flapper/config/flapper.yaml</code></p></li><li><p>Camera SQL: <code>postgresql/flock.sql.gz</code></p></li><li><p>Camera names: <code>docs/flock-cameras.txt</code></p></li><li><p>Agency counts: <code>docs/flock-agencies.txt</code></p></li></ul><h2><strong>Counts</strong></h2><ul><li><p>Unique cameras (by <code>camera_id</code>): <strong>1,183</strong></p></li><li><p>Mapped (valid lat/lon, nonzero): <strong>1,182</strong></p></li><li><p>Networks: <strong>48</strong></p></li><li><p>Agency names: <strong>47</strong></p></li><li><p>SQL INSERTs in the dump: <strong>2,366</strong> (networks repeated per camera insert)</p></li></ul><h2><strong>Flock API surface (as documented in-repo)</strong></h2><ul><li><p>Auth: <code>POST /v1/auth/userpass</code></p></li><li><p>Query: <code>POST /v1/query</code></p></li><li><p>Images: <code>POST /v2/images</code></p></li><li><p>Cameras: <code>GET /v1/cameras</code></p></li><li><p>Base: <code>https://api.flocksafety.com/api</code></p></li><li><p>Credentials in config: <code>${FLOCK_USER}</code> / <code>${FLOCK_PASSWORD}</code> (not plaintext)</p></li></ul><h2><strong>Sample coordinate rows (public SQL)</strong></h2><p>Atherton CA PD, network_id 1089:</p><ul><li><p>&#8220;18 W/B Isabella @ El Camino&#8221; &#8212; 37.460006, -122.196490</p></li><li><p>&#8220;22 W/B Alejandra @ Brittany Meadows - original&#8221; &#8212; 37.456103, -122.194499</p></li><li><p>&#8220;03 N/B Middlefield @ Ravenswood&#8221; &#8212; 37.460426, -122.175484</p></li></ul><p>These are representative. The full set is in <code>flock.sql.gz</code>.</p><h2><strong>Agency snapshot (from </strong><code>flock-agencies.txt</code><strong>)</strong></h2><p>Includes Anderson City CA PD, Atherton, Benicia, Brisbane, Burlingame, Campbell, Fremont, Millbrae, Colma, Contra Costa SO (Alamo), Danville, Dixon, Fairfield, Gilroy, Hayward, Hercules, Hillsborough, Kaiser Permanente Vallejo, La Habra, Lakeport, Livermore, Los Alamitos, Milpitas, Morgan Hill, <strong>NCRIC</strong> (16 cameras), Newark, Novato, Oakley, Ontario CA PD (91), Orinda, Piedmont, Pleasanton, Salinas, San Bruno, and others in the same file.</p><h2><strong>Platform identifiers (not passwords)</strong></h2><ul><li><p>Auth0 tenant: <code>maiveric.us.auth0.com</code></p></li><li><p>Prod API host in Postman: </p></li></ul><p>https://api.astrometrics.us</p><ul><li><p>Dev API host: </p></li></ul><p>https://api.dev.astrometrics.us</p><ul><li><p>Prod AWS profile name in examples: <code>alprsgov</code> / region <code>us-gov-west-1</code></p></li><li><p>OpenLattice-style org database name appears in JDBC URLs as <code>org_1446ff84711242ec828df181f45e4d20</code></p></li></ul><p>Auth0 SPA/M2M/webhook <strong>client IDs</strong> are in <code>config/prod.tfvars.example</code>, <code>config/dev.tfvars.example</code>, and Postman environments. Secrets fields are empty or <code>DO_NOT_STORE</code>.</p><h2><strong>Complete infrastructure and credential exposure</strong></h2><p>The <code>alprs.sql</code> database dump exposed far more than camera locations:</p><p><strong>558 law enforcement email addresses</strong> across 47+ agencies:</p><ul><li><p>San Jose PD, Berkeley PD, Oakland PD, Fremont PD, SFPD, San Mateo County SO, CHP, California DOJ, plus dozens more</p></li><li><p>Sample: <code>4339@sanjoseca.gov</code>, <code>abolanos@smcgov.org</code>, <code>akingsley@chp.ca.gov</code>, <code>audyama.williams@doj.ca.gov</code></p></li></ul><p><strong>Auth0 administrative accounts</strong> with full platform access:</p><ul><li><p><code>eyuan@maiveric.com</code> &#8212; <strong>OWNER</strong> (primary admin)</p></li><li><p><code>agent.blue@maiveric.com</code> &#8212; <strong>OWNER</strong></p></li><li><p><code>mashiq@maiveric.com</code> &#8212; <strong>OWNER + INFINITY</strong> (unrestricted scope)</p></li><li><p>Plus 7 additional OWNER-level accounts at Maiveric and OpenLattice</p></li></ul><p><strong>Auth0 Client IDs</strong> (development and production):</p><ul><li><p>DEV M2M: <code>yVaBS1kv7281lbt1I3smwBv1Pk99bZkp</code></p></li><li><p>DEV SPA: <code>kJBCfaEo0bUzBSpZJUPy4N5Jkpn4sZP4</code></p></li><li><p>PROD M2M: <code>Urmsy2aviz7STXGLjhq5sECnUgL0pu01</code></p></li><li><p>PROD SPA: <code>uZXrWBfTt5LJEhtjDAKw1xgj6LqJWvWD</code></p></li><li><p>SHARED Webhook: <code>1svCeV3aZILobwXfKudB0rhvzfEHlhSM</code></p></li></ul><p><strong>AWS S3 buckets</strong> (dev and prod):</p><ul><li><p><code>alprs-infra-dev</code> / <code>alprs-infra-prod</code> &#8212; Terraform state and bootstrapping</p></li><li><p><code>alprs-config-dev</code> / <code>alprs-config-prod</code> &#8212; YAML configs with embedded passwords</p></li><li><p><code>alprs-sftp-dev</code> / <code>alprs-sftp-prod</code> &#8212; ALPR feed ingestion</p></li><li><p><code>alprs-media-dev</code> / <code>alprs-media-prod</code> &#8212; ALPR plate images</p></li><li><p><code>alprs-audit-dev</code> / <code>alprs-audit-prod</code> &#8212; Audit logs</p></li><li><p><code>alprs-backup-dev</code> / <code>alprs-backup-prod</code> &#8212; Database backups</p></li></ul><p><strong>AWS SSM Parameter Store paths</strong> (where secrets live):</p><ul><li><p><code>/auth0/webhook/secret</code> &#8212; Webhook client secret</p></li><li><p><code>/db/alprs/password</code> &#8212; ALPR database password</p></li><li><p><code>/db/atlas/password</code> &#8212; Atlas database password</p></li><li><p>Plus paths for database hosts, EKS admin roles, webhook certificates</p></li></ul><p><strong>Rundeck credential paths</strong> (job orchestration):</p><ul><li><p><code>keys/db_pass</code> &#8212; Database password</p></li><li><p><code>keys/client_id</code> &#8212; Auth0 Client ID</p></li><li><p><code>keys/ol_pass</code> &#8212; OpenLattice password</p></li><li><p>Plus paths for AWS region, API URLs, S3 bucket names, database hosts</p></li></ul><p><strong>EC2 instances</strong> (mapped by type):</p><ul><li><p>PostgreSQL 1 &amp; 2 (primary + staging ALPR databases)</p></li><li><p>Elasticsearch (indexed ALPR reads)</p></li><li><p>Conductor (ALPR read cataloger)</p></li><li><p>Datastore (REST API + image storage)</p></li><li><p>Indexer (search indexer)</p></li><li><p>Bastion Host (Rundeck + webapp)</p></li><li><p>Rundeck Worker (ingestion jobs)</p></li></ul><p><strong>EKS cluster</strong> for Flock webhook ingestion (Graviton spot instances)</p><p><strong>AWS Profiles:</strong></p><ul><li><p><code>alprscom</code> &#8212; DEV environment, us-west-2</p></li><li><p><code>alprsgov</code> &#8212; PROD environment, us-gov-west-1 (GovCloud)</p></li></ul><p><strong>6,300+ SAML user records</strong> and 3,953 unique organizational IDs in the database.</p><h2><strong>Local map and analysis tools</strong></h2><p><strong>Interactive Flock camera map</strong>: Live at <a href="https://ringmast4r.github.io/ncric-alprs/">https://ringmast4r.github.io/ncric-alprs/</a> with all 1,183 cameras plotted and color-coded by agency.</p><p><strong>Scanner tool structure</strong> (<code>E:\08 Scanner Library\flock-agency-scanner\</code>):</p><ul><li><p><code>flock_agency.db</code> &#8212; SQLite database of parsed NCRIC ALPRS data</p></li><li><p><code>server/</code> &#8212; Flask-based dashboard/API server</p></li><li><p><code>modules/</code> &#8212; Python modules for data ingestion and transformation</p></li><li><p><code>docs/</code> &#8212; PostgreSQL dumps and parsed CSV exports</p></li></ul><div><hr></div><p><em>OSINT from a public GitHub repository. Archived August 2026. Camera coordinates are a snapshot of what the integrator committed, not a live Flock API pull. This is not authorization to query Flock or NCRIC systems.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://ringmast4r.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ringmast4r is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[A Police Department Published Four Months of Its Own Operations to the Open Internet. To Its Credit, It Fixed It in a Day.]]></title><description><![CDATA[A remediated disclosure case study: officer schedules, court and defendant data, and personal information, left public on GitHub, then locked down within about 5 hours of being told]]></description><link>https://ringmast4r.substack.com/p/a-police-department-published-four</link><guid isPermaLink="false">https://ringmast4r.substack.com/p/a-police-department-published-four</guid><dc:creator><![CDATA[Patrick Quirk]]></dc:creator><pubDate>Sat, 29 Aug 2026 03:05:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Dekm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a245b5e-cb02-425c-95a0-2155e7b75c80_2048x878.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Note: this write-up is published after remediation. It deliberately omits the repository location, officer names, defendant details, and any other personal data. The point is the failure and the fast fix, not the exposed records.</em></p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!Dekm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a245b5e-cb02-425c-95a0-2155e7b75c80_2048x878.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!Dekm!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a245b5e-cb02-425c-95a0-2155e7b75c80_2048x878.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!Dekm!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a245b5e-cb02-425c-95a0-2155e7b75c80_2048x878.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!Dekm!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a245b5e-cb02-425c-95a0-2155e7b75c80_2048x878.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!Dekm!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a245b5e-cb02-425c-95a0-2155e7b75c80_2048x878.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!Dekm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a245b5e-cb02-425c-95a0-2155e7b75c80_2048x878.jpeg" width="1456" height="624" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2a245b5e-cb02-425c-95a0-2155e7b75c80_2048x878.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:624,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:472672,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://ringmast4r.substack.com/i/213233197?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a245b5e-cb02-425c-95a0-2155e7b75c80_2048x878.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!Dekm!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a245b5e-cb02-425c-95a0-2155e7b75c80_2048x878.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!Dekm!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a245b5e-cb02-425c-95a0-2155e7b75c80_2048x878.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!Dekm!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a245b5e-cb02-425c-95a0-2155e7b75c80_2048x878.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!Dekm!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a245b5e-cb02-425c-95a0-2155e7b75c80_2048x878.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Most infrastructure exposures I report are accidents of configuration: a server left open, a permission never set. This one was different, and in some ways worse. A municipal police department in Illinois took its own internal operational records and published them, in a public code repository, to the entire internet. Not leaked. Not breached. Uploaded, by the department, to a place anyone could read without a password.</p><p>The good news, and the reason I can write this up, is how it ended. Once the Ottawa, Illinois Police Department was told, it moved fast and closed the exposure within about a day. That response is the model. The exposure that preceded it is the warning.</p><h2><strong>What was exposed</strong></h2><p>The Ottawa Police Department maintained an operational repository on a public code-hosting platform. It was reachable by anyone, with no account and no credentials. Based on a review of its contents, the exposed material included:</p><ul><li><p>Roughly four months of operational call-sheet logs</p></li><li><p>Officer names, schedules, and availability patterns</p></li><li><p>Court case metadata and defendant information</p></li><li><p>Equipment maintenance records</p></li><li><p>Ban and security-request records containing personal information</p></li><li><p>Internal department structure and the third-party tools it integrates with</p></li></ul><p>Each category is its own problem, but two are acute.</p><p><strong>Officer schedules and availability.</strong> A public, months-long record of who works when, and when coverage is thin, is exactly the information that should never be exposed. It is a safety issue for the officers and a planning gift to anyone who means the department or the community harm.</p><p><strong>Court, defendant, and personal data.</strong> Defendant information and personal data tied to ban and security requests are sensitive on their own, and exposing them can carry legal obligations under state law. These are records about identifiable people, published without their knowledge.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!33Af!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33cf9b16-71f8-4edf-97e3-59bc92f4a6ec_1245x686.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!33Af!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33cf9b16-71f8-4edf-97e3-59bc92f4a6ec_1245x686.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!33Af!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33cf9b16-71f8-4edf-97e3-59bc92f4a6ec_1245x686.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!33Af!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33cf9b16-71f8-4edf-97e3-59bc92f4a6ec_1245x686.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!33Af!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33cf9b16-71f8-4edf-97e3-59bc92f4a6ec_1245x686.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!33Af!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33cf9b16-71f8-4edf-97e3-59bc92f4a6ec_1245x686.jpeg" width="1245" height="686" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/33cf9b16-71f8-4edf-97e3-59bc92f4a6ec_1245x686.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:686,&quot;width&quot;:1245,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:223384,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ringmast4r.substack.com/i/213233197?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33cf9b16-71f8-4edf-97e3-59bc92f4a6ec_1245x686.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!33Af!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33cf9b16-71f8-4edf-97e3-59bc92f4a6ec_1245x686.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!33Af!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33cf9b16-71f8-4edf-97e3-59bc92f4a6ec_1245x686.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!33Af!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33cf9b16-71f8-4edf-97e3-59bc92f4a6ec_1245x686.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!33Af!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33cf9b16-71f8-4edf-97e3-59bc92f4a6ec_1245x686.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>The part that makes this bigger than a data leak: the whole toolchain was on the page</strong></h2><p>This was not just a folder of logs. What the department published was its <strong>officer intranet</strong>, a working Quick Access dashboard that wired together the systems the department actually runs on. Anyone who found the page got a labeled map of the department&#8217;s entire operational stack, including:</p><ul><li><p><strong>Flock Safety</strong>: a Quick Access control linking directly into the Flock hotlist and patrol tooling, the automated license-plate-reader surveillance system</p></li><li><p><strong>Axon Evidence</strong>: the department&#8217;s digital evidence platform login at id.evidence.com</p></li><li><p><strong>Lexipol</strong>: the department&#8217;s policy portal</p></li><li><p><strong>iCrimeFighter</strong>: cloud evidence-collection login</p></li><li><p><strong>Department webmail</strong>: the staff email portal at webmail.ottawapdfd.org</p></li><li><p><strong>LaSalle County systems</strong>: court records, jail roster, and county GIS</p></li><li><p><strong>Illinois state systems</strong>: the officer portal, training hosts, and state firearms services</p></li><li><p><strong>Municipal code library</strong>, VPN, department calendar, and internal booking and dispatch tools</p></li></ul><p>Read as a whole, that dashboard is a reconnaissance gift. It tells an outsider exactly which surveillance and evidence systems the department uses, where their login surfaces are, and how the pieces connect. You do not breach anything to learn a department&#8217;s capabilities and integration points when the department hands you the index.</p><p>The Flock link is worth pausing on. Public debate about automated license-plate readers has mostly focused on the vendor: cameras with weak defaults, data-sharing between agencies, transparency portals. This is the other failure mode. The vendor did not leak here. The customer published a direct link into its own surveillance tooling on a public website, next to everything else.</p><h2><strong>And the backend was live on the page too</strong></h2><p>Beyond the labeled links, the intranet&#8217;s own code exposed the machinery behind the call sheet: a hardcoded cloud backend endpoint that the page used to read and write call-sheet entries, authenticated with an application token, plus backend service keys and internal host references embedded directly in the browser-side code.</p><p>This is the most technically serious part, and it is why remediation here is more than making a repository private. A backend endpoint and service keys that were published to the public internet must be treated as compromised. Hiding the page does not disable an endpoint that lives on a separate cloud platform, and it does not rotate a key that strangers may already have copied. The correct response is to rotate every exposed key and token and to lock down or replace the backend endpoint, not simply to take the page down.</p><p>For that reason, this write-up describes the exposure but deliberately omits the actual endpoint addresses, keys, tokens, and internal hosts. Those are live security material, not story detail.</p><h2><strong>The document closet: a SharePoint library wired straight into the page</strong></h2><p>The intranet did not stop at links to outside systems. A ticker bar and a document grid on the page pointed directly into the department&#8217;s SharePoint document library, dozens of internal documents, organized by role. The point is not any single file. It is that the full internal filing cabinet was indexed on a public page. The inventory included, among others:</p><p><strong>Administrative and policy</strong></p><ul><li><p>2026 OPD assignments and roster</p></li><li><p>Rules and regulations</p></li><li><p>&#8220;From the Chief&#8221; messages</p></li><li><p>PTO request instructions</p></li><li><p>In-house training instructor list</p></li><li><p>Printer and Quicket configuration references</p></li></ul><p><strong>Patrol officer resources</strong></p><ul><li><p>OPD forms folder</p></li><li><p>Compensation postings</p></li><li><p>Shift-switch forms</p></li><li><p>Officer stats</p></li><li><p>Squad inspection rosters</p></li><li><p>Full department phone list</p></li><li><p>Daily check-in logs</p></li><li><p>ISP offense index</p></li></ul><p><strong>Traffic control resources</strong></p><ul><li><p>PTO request forms</p></li><li><p>Shift summaries</p></li><li><p>Vacation request forms</p></li></ul><p><strong>Miscellaneous</strong></p><ul><li><p>Solicitor permits</p></li><li><p>Policy-portal links</p></li></ul><p>One further detail deserves flagging without detail: at least one of those SharePoint links was a personal document-sharing path that encoded an individual staff member&#8217;s account identifier. That is exactly the kind of value that should never appear in a public page, and it is omitted here.</p><h2><strong>The build itself told the story: file tree and pipeline</strong></h2><p>The exposure was not a stray upload. It was a deliberately built site, and its own structure and build configuration were public too. The repository contained the intranet page and its assets, a leftover reference to an &#8220;old intranet&#8221; hosted on an internal department file server, and a control that pointed at a private internal network address on the department LAN. The site&#8217;s automated build pipeline was configured to inject the backend service keys and the call-sheet endpoint into the page every time changes were pushed.</p><p>In plain terms: the repository did not just leak a finished page. It leaked the blueprint, the internal hostnames and addresses referenced along the way, and the automated process that stamped live secrets into the published site. The internal addresses, file-server names, and injected key names are omitted here for the same reason as everything else, they are operational security material.</p><h2><strong>Why a code repository is the quiet danger</strong></h2><p>Publishing operational data to a public repository is uniquely bad for a reason that is not obvious to non-technical administrators: making the repository private later does not undo it. Code-hosting platforms keep history. Every file that was ever committed can remain retrievable from the project&#8217;s history even after the current version is hidden or changed. Anything sensitive that was ever committed, a credential, a token, a personal record, has to be treated as already exposed and, where it is a secret, rotated. Hiding the repository closes the front door while the archive can stay on the shelf.</p><p>That is why the remediation for this kind of exposure is not simply &#8220;make it private.&#8221; The full set of steps is:</p><ol><li><p>Make the repository private or delete it immediately.</p></li><li><p>Audit the entire organization and account for any other public repositories.</p></li><li><p>Rotate every credential, key, or token that ever appeared in the repository or its history.</p></li><li><p>Assess, with counsel, whether the exposed personal information triggers breach-notification duties under state law.</p></li></ol><p>Step one is the emergency stop, and Ottawa hit it fast. Steps two through four are the follow-through that any department in this position should complete even after the repository is dark.</p><h2><strong>How the disclosure went</strong></h2><p>This was reported the right way and quietly. The department was contacted first by phone. When it was not clear the message had reached someone who understood it, a written disclosure followed to the chief of police, laying out the exposure and the remediation steps in plain terms. No data was copied, retained, or redistributed. The report went to the department and to no one else.</p><p>The department responded quickly. Within roughly a day of the written disclosure, the repository was taken down and now returns a not-found response to the public. That is a strong, responsible turnaround, and Ottawa deserves credit for treating the report as real and acting on it immediately rather than letting it sit.</p><h2><strong>The broader lesson</strong></h2><p>The Ottawa case is a warning to every small agency that has embraced modern tools without modern security habits, and a small model of how to respond when something goes wrong. Code repositories, cloud buckets, and mapping servers are enormously useful, and they are trivially easy to expose by default. A department can adopt a developer platform to organize its work and, with one wrong setting, publish its operations to the world without realizing it. The technology did not fail. The configuration did, and the review that should have caught it never happened.</p><p>Small agencies do not need a large security budget to avoid this. They need one habit: before anything internal goes onto a public platform, someone asks who can see this, and checks. That single question, asked once, would have prevented the exposure entirely. And when the question gets missed, the Ottawa response, act within a day, is the standard every other agency should be measured against.</p><div><hr></div><p><em>Ringmast4r strikes again~</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!vvm6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa44fba36-ae57-4cdb-8235-e36fb4d9a438_800x769.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!vvm6!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa44fba36-ae57-4cdb-8235-e36fb4d9a438_800x769.png 424w, /__u/substackcdn.com/image/fetch/$s_!vvm6!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa44fba36-ae57-4cdb-8235-e36fb4d9a438_800x769.png 848w, /__u/substackcdn.com/image/fetch/$s_!vvm6!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa44fba36-ae57-4cdb-8235-e36fb4d9a438_800x769.png 1272w, /__u/substackcdn.com/image/fetch/$s_!vvm6!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa44fba36-ae57-4cdb-8235-e36fb4d9a438_800x769.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!vvm6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa44fba36-ae57-4cdb-8235-e36fb4d9a438_800x769.png" width="800" height="769" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a44fba36-ae57-4cdb-8235-e36fb4d9a438_800x769.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:769,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:259341,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ringmast4r.substack.com/i/213233197?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa44fba36-ae57-4cdb-8235-e36fb4d9a438_800x769.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!vvm6!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa44fba36-ae57-4cdb-8235-e36fb4d9a438_800x769.png 424w, /__u/substackcdn.com/image/fetch/$s_!vvm6!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa44fba36-ae57-4cdb-8235-e36fb4d9a438_800x769.png 848w, /__u/substackcdn.com/image/fetch/$s_!vvm6!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa44fba36-ae57-4cdb-8235-e36fb4d9a438_800x769.png 1272w, /__u/substackcdn.com/image/fetch/$s_!vvm6!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa44fba36-ae57-4cdb-8235-e36fb4d9a438_800x769.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p>]]></content:encoded></item><item><title><![CDATA[I Warned Jupiter, Florida Its Water System Was Wide Open. They Ignored Me. Then the National Emergency Came.]]></title><description><![CDATA[One town, 11 anonymously writable water-infrastructure services, a documented warning, and a fix that never happened]]></description><link>https://ringmast4r.substack.com/p/i-warned-jupiter-florida-its-water</link><guid isPermaLink="false">https://ringmast4r.substack.com/p/i-warned-jupiter-florida-its-water</guid><dc:creator><![CDATA[Patrick Quirk]]></dc:creator><pubDate>Fri, 28 Aug 2026 18:42:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DrWD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498c6dd3-afcb-4705-8654-43a9c2eb2db6_2560x1294.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!DrWD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498c6dd3-afcb-4705-8654-43a9c2eb2db6_2560x1294.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!DrWD!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498c6dd3-afcb-4705-8654-43a9c2eb2db6_2560x1294.png 424w, /__u/substackcdn.com/image/fetch/$s_!DrWD!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498c6dd3-afcb-4705-8654-43a9c2eb2db6_2560x1294.png 848w, /__u/substackcdn.com/image/fetch/$s_!DrWD!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498c6dd3-afcb-4705-8654-43a9c2eb2db6_2560x1294.png 1272w, /__u/substackcdn.com/image/fetch/$s_!DrWD!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498c6dd3-afcb-4705-8654-43a9c2eb2db6_2560x1294.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!DrWD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498c6dd3-afcb-4705-8654-43a9c2eb2db6_2560x1294.png" width="1456" height="736" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/498c6dd3-afcb-4705-8654-43a9c2eb2db6_2560x1294.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:736,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:197040,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://ringmast4r.substack.com/i/213187154?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498c6dd3-afcb-4705-8654-43a9c2eb2db6_2560x1294.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!DrWD!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498c6dd3-afcb-4705-8654-43a9c2eb2db6_2560x1294.png 424w, /__u/substackcdn.com/image/fetch/$s_!DrWD!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498c6dd3-afcb-4705-8654-43a9c2eb2db6_2560x1294.png 848w, /__u/substackcdn.com/image/fetch/$s_!DrWD!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498c6dd3-afcb-4705-8654-43a9c2eb2db6_2560x1294.png 1272w, /__u/substackcdn.com/image/fetch/$s_!DrWD!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498c6dd3-afcb-4705-8654-43a9c2eb2db6_2560x1294.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>On August 26, 2026, the White House declared a national emergency to secure the United States bulk-power system, citing foreign actors creating and exploiting vulnerabilities in the equipment that runs the country&#8217;s critical infrastructure (<a href="https://www.whitehouse.gov/presidential-actions/2026/08/declaring-a-national-emergency-to-secure-the-united-states-bulk-power-system/">The White House, &#8220;Declaring a National Emergency to Secure the United States Bulk-Power System&#8221;</a>).</p><p>I had warned about exactly this class of exposure, in writing, on a specific American water system, seven weeks earlier. The town did nothing. This is the documented record of that failure, and it is a case study in why the emergency exists.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://ringmast4r.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ringmast4r is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>The town is Jupiter, Florida.</p><h2><strong>What was exposed</strong></h2><p>In early July 2026, I identified a critical exposure on the Town of Jupiter&#8217;s public geographic information system. Their ArcGIS server was reachable from the open internet with no authentication whatsoever. It exposed 32 map services. I verified that at least 11 of them accepted unauthenticated write operations, create, update, and delete, through the standard feature-editing API.</p><p>This is the part that should stop any official reading this cold. It was not read-only. It was writable. Any anonymous person on the internet, with no password, no token, and no account, could insert, alter, or delete records in these layers.</p><p>The 11 writable services spanned:</p><ul><li><p>Water treatment</p></li><li><p>Water distribution</p></li><li><p>Wastewater and sewer</p></li><li><p>Stormwater</p></li><li><p>Energy and substation-related control data</p></li><li><p>Municipal public-works asset management</p></li><li><p>Property records</p></li></ul><p>I did not modify anything. I did not touch downstream systems. I did not exfiltrate data. I confirmed the exposure and documented it, which is the job.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!S3WK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4d15d58-c686-4885-81c8-046971955296_2560x1294.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!S3WK!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4d15d58-c686-4885-81c8-046971955296_2560x1294.png 424w, /__u/substackcdn.com/image/fetch/$s_!S3WK!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4d15d58-c686-4885-81c8-046971955296_2560x1294.png 848w, /__u/substackcdn.com/image/fetch/$s_!S3WK!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4d15d58-c686-4885-81c8-046971955296_2560x1294.png 1272w, /__u/substackcdn.com/image/fetch/$s_!S3WK!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4d15d58-c686-4885-81c8-046971955296_2560x1294.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!S3WK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4d15d58-c686-4885-81c8-046971955296_2560x1294.png" width="1456" height="736" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f4d15d58-c686-4885-81c8-046971955296_2560x1294.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:736,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:141236,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ringmast4r.substack.com/i/213187154?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4d15d58-c686-4885-81c8-046971955296_2560x1294.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!S3WK!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4d15d58-c686-4885-81c8-046971955296_2560x1294.png 424w, /__u/substackcdn.com/image/fetch/$s_!S3WK!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4d15d58-c686-4885-81c8-046971955296_2560x1294.png 848w, /__u/substackcdn.com/image/fetch/$s_!S3WK!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4d15d58-c686-4885-81c8-046971955296_2560x1294.png 1272w, /__u/substackcdn.com/image/fetch/$s_!S3WK!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4d15d58-c686-4885-81c8-046971955296_2560x1294.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>How this can actually be used, and why it matters</strong></h2><p>For anyone deciding whether this is a paperwork problem or a public-safety problem, here is the honest operational picture. Write access to a utility&#8217;s authoritative geographic and asset data is not vandalism of a website. It is corruption of the source of truth that a town&#8217;s water operators, field crews, and emergency planners rely on to make physical decisions. With anonymous write access to the categories above, a hostile actor could:</p><ul><li><p><strong>Sabotage incident response by falsifying asset locations.</strong> Water-distribution and public-works layers tell crews where valves, mains, pumps, and shutoffs physically are. Alter or delete those records and, during a main break, a contamination event, or a fire, responders go to the wrong location or cannot find the asset at all. The delay is measured in the time a town is without safe water.</p></li><li><p><strong>Corrupt the data that treatment and distribution decisions depend on.</strong> If operators cannot trust their own maps and asset records, every downstream decision built on that data is suspect. The damage is not one bad record, it is the loss of confidence in the entire system of record.</p></li><li><p><strong>Poison emergency and public-works planning.</strong> Sewer, stormwater, and substation-related layers feed flood modeling, outage planning, and coordination with other agencies. Silent edits to these layers degrade planning that happens long before any visible incident, so the failure only surfaces when it is too late to matter.</p></li><li><p><strong>Erase the evidence.</strong> Delete capability means an attacker can remove records, and without edit-log auditing the town cannot even prove what was changed or when. Integrity you cannot verify is integrity you do not have.</p></li><li><p><strong>Enable physical-world targeting.</strong> Detailed, editable maps of a municipality&#8217;s water and energy infrastructure are precisely the reconnaissance a serious adversary wants. The FBI has warned that actors are actively reaching internet-facing water-sector systems and causing operational disruption (<a href="https://www.fbi.gov/investigate/cyber/alerts/2026/malicious-cyber-actors-targeting-water-and-wastewater-sector-internet--facing-programmable-logic-controllers-causing-operational-disruptions">FBI, &#8220;Malicious Cyber Actors Targeting Water and Wastewater Sector Internet-Facing PLCs&#8221;</a>).</p></li></ul><p>This is why an unauthenticated writable water GIS is not a low-priority IT ticket. It is a public-health and national-security exposure wearing an IT costume.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!Sol3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc24d5a35-f6bf-4603-b9c1-737d3f45e6af_2560x1294.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!Sol3!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc24d5a35-f6bf-4603-b9c1-737d3f45e6af_2560x1294.png 424w, /__u/substackcdn.com/image/fetch/$s_!Sol3!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc24d5a35-f6bf-4603-b9c1-737d3f45e6af_2560x1294.png 848w, /__u/substackcdn.com/image/fetch/$s_!Sol3!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc24d5a35-f6bf-4603-b9c1-737d3f45e6af_2560x1294.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Sol3!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc24d5a35-f6bf-4603-b9c1-737d3f45e6af_2560x1294.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!Sol3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc24d5a35-f6bf-4603-b9c1-737d3f45e6af_2560x1294.png" width="1456" height="736" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c24d5a35-f6bf-4603-b9c1-737d3f45e6af_2560x1294.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:736,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:150938,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ringmast4r.substack.com/i/213187154?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc24d5a35-f6bf-4603-b9c1-737d3f45e6af_2560x1294.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!Sol3!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc24d5a35-f6bf-4603-b9c1-737d3f45e6af_2560x1294.png 424w, /__u/substackcdn.com/image/fetch/$s_!Sol3!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc24d5a35-f6bf-4603-b9c1-737d3f45e6af_2560x1294.png 848w, /__u/substackcdn.com/image/fetch/$s_!Sol3!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc24d5a35-f6bf-4603-b9c1-737d3f45e6af_2560x1294.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Sol3!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc24d5a35-f6bf-4603-b9c1-737d3f45e6af_2560x1294.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>I reported it. Through every proper channel. On the record.</strong></h2><p>On July 2, 2026, I sent Jupiter a full disclosure. I addressed the town&#8217;s information systems contacts and copied the people whose job is to make this get fixed:</p><ul><li><p>The Town Manager&#8217;s office</p></li><li><p>The Florida Cybersecurity Operations Center, part of the Florida Digital Service</p></li><li><p>The federal Cybersecurity and Infrastructure Security Agency</p></li></ul><p>I gave them the exact remediation, step by step, in language a competent administrator could act on the same day:</p><ol><li><p>Restrict feature-editing capabilities to authenticated users only, at the service level.</p></li><li><p>If public read access is required, disable create, update, and delete in the server manager.</p></li><li><p>Implement token-based or OAuth2 authentication for any service that must remain reachable.</p></li><li><p>Audit the recent edit logs for unauthorized modifications.</p></li></ol><p>That is not a vague warning. That is a repair manual, delivered free, before any attack.</p><h2><strong>What responsible disclosure got me</strong></h2><p>The emails to Jupiter&#8217;s own listed contacts bounced. Rejected at the door. The town could not keep working email addresses on file for the staff who run its infrastructure, which means the people directly responsible may never have read the warning at all.</p><p>The Florida Cybersecurity Operations Center, to its credit, confirmed receipt within hours and called me. A real analyst doing a real job. The federal intake team responded within days, routing me to a formal disclosure portal.</p><p>Jupiter itself gave me silence. No acknowledgement. No questions. No confirmation of a fix. And based on everything available to me, the exposure was not properly remediated.</p><p>I did everything right. I found a critical hole in a water system, reported it quietly to the town and to state and federal authorities, handed over the exact steps to close it, and kept the loaded technical details out of public view to give them time to act. The reward was a bounced email and a town that could not be bothered to respond.</p><h2><strong>The timeline is the indictment</strong></h2><ul><li><p><strong>Early July 2026:</strong> I warn Jupiter, in writing, with a fix attached, and copy the state and CISA.</p></li><li><p><strong>Late July 2026:</strong> A coordinated wave of cyberattacks hits water and wastewater utilities in at least seven states, degrading operations and forcing boil-water notices (<a href="https://www.cnn.com/2026/07/31/politics/sweeping-cyberattack-us-water-systems">CNN Politics, &#8220;Sweeping cyberattack on water systems in multiple states has US officials on edge&#8221;</a>; <a href="https://www.wbur.org/hereandnow/2026/08/04/cyberattacks-water-systems">WBUR Here &amp; Now, &#8220;Cyberattacks hit water systems in at least seven states&#8221;</a>).</p></li><li><p><strong>Weeks later:</strong> The FBI warns publicly that actors are targeting internet-facing water-sector controllers and causing operational disruption (<a href="https://www.fbi.gov/investigate/cyber/alerts/2026/malicious-cyber-actors-targeting-water-and-wastewater-sector-internet--facing-programmable-logic-controllers-causing-operational-disruptions">FBI, &#8220;Malicious Cyber Actors Targeting Water and Wastewater Sector Internet-Facing PLCs&#8221;</a>).</p></li><li><p><strong>August 26, 2026:</strong> The White House declares a national emergency over threats to critical infrastructure (<a href="https://www.whitehouse.gov/presidential-actions/2026/08/declaring-a-national-emergency-to-secure-the-united-states-bulk-power-system/">The White House, &#8220;Declaring a National Emergency to Secure the United States Bulk-Power System&#8221;</a>).</p></li></ul><p>Jupiter was handed the answer sheet before the exam. There are no second warnings once the attack actually lands. You get one chance to close the door, and Jupiter could not manage even to keep a working email address to receive the warning that would have let them close it.</p><h2><strong>A note on what I am not publishing, and why</strong></h2><p>I am not printing the exact server address or an itemized, copy-and-paste target list in this public article. The exposure may still be live, and the country is in the middle of an active campaign against precisely these systems. I will not hand a working key to the very actors the FBI is warning about.</p><p>That restraint is a professional line, not a favor to Jupiter. Any authorized official, at the White House, CISA, or the state, who needs the exact technical detail can have the complete, unredacted findings directly and immediately. That is how this is supposed to work. The public deserves to know a town failed. Attackers do not deserve a map.</p><h2><strong>What Jupiter owes its residents, and what officials should demand</strong></h2><p>Three questions the Town of Jupiter should answer publicly, and that oversight bodies should ask:</p><p><strong>Why did your infrastructure staff&#8217;s email bounce a critical security warning?</strong> If a researcher acting in good faith cannot reach the people who run your water system, no one else trying to help you can either.</p><p><strong>Did you remediate the exposure, and on what exact date?</strong> If yes, prove it. If no, your residents deserve to know their water system&#8217;s records may still be editable by anonymous strangers during a declared national emergency.</p><p><strong>Did you audit the edit logs, as you were explicitly instructed to?</strong> If you never checked, you cannot state that nothing was already altered. Silence is not the same as safety.</p><h2><strong>The bottom line</strong></h2><p>The attacks on our water systems are not a warning of what is coming. They are a report of what is already here (<a href="https://www.cnn.com/2026/07/31/politics/sweeping-cyberattack-us-water-systems">CNN Politics, &#8220;Sweeping cyberattack on water systems in multiple states has US officials on edge&#8221;</a>). Jupiter, Florida had the warning, the fix, and the time. It had a researcher doing the unglamorous, unpaid work of protecting a town that would not protect itself. It did nothing.</p><p>The federal government is finally moving, with a White House water-provider protection program reportedly piloting in Texas and bipartisan legislation in motion (<a href="https://www.route-fifty.com/cybersecurity/2026/08/white-house-soon-launch-water-provider-cyber-protection-program/415667/">Route Fifty, &#8220;White House to soon launch water provider cyber protection program&#8221;</a>; <a href="https://www.nextgov.com/cybersecurity/2026/08/white-house-soon-launch-water-provider-cyber-protection-program/415650/">Nextgov/FCW, &#8220;White House to soon launch water provider cyber protection program&#8221;</a>; <a href="https://gottheimer.house.gov/posts/release-after-attacks-in-jersey-gottheimer-announces-bipartisan-federal-actions-to-protect-water-electric-systems-and-families-from-cyber-attacks">Rep. Josh Gottheimer, &#8220;Bipartisan Federal Actions to Protect Water, Electric Systems, and Families from Cyber Attacks&#8221;</a>). Good. But an executive order does not reconfigure a server in a single town. That takes someone in Jupiter caring enough to read their email and change a setting. They could not manage even that.</p><p>I did my part. I found it, I reported it through every proper channel, I gave them the answer, and I still kept the loaded details out of the wrong hands. No researcher, no executive order, and no news cycle can fix a system for a town that will not turn the key.</p><p>The emergency is real. Jupiter&#8217;s negligence is documented. The only question left is whether the town acts before the next boil-water notice, or after.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://ringmast4r.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ringmast4r is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The Parliament API Went Dark. The Archive Is on ODINT.]]></title><description><![CDATA[Six weeks after Albania silently closed the Parliament API, the 32 GB pull is live. 30,455 PDFs you can page through, 376 salary workbooks, 236 MP records. Full method. Every URL.]]></description><link>https://ringmast4r.substack.com/p/the-parliament-api-went-dark-the</link><guid isPermaLink="false">https://ringmast4r.substack.com/p/the-parliament-api-went-dark-the</guid><dc:creator><![CDATA[Patrick Quirk]]></dc:creator><pubDate>Tue, 18 Aug 2026 22:58:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!MR_d!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79a76cf-5908-472c-b7f2-c6fa8c7e71e2_1456x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!MR_d!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79a76cf-5908-472c-b7f2-c6fa8c7e71e2_1456x1048.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!MR_d!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79a76cf-5908-472c-b7f2-c6fa8c7e71e2_1456x1048.png 424w, /__u/substackcdn.com/image/fetch/$s_!MR_d!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79a76cf-5908-472c-b7f2-c6fa8c7e71e2_1456x1048.png 848w, /__u/substackcdn.com/image/fetch/$s_!MR_d!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79a76cf-5908-472c-b7f2-c6fa8c7e71e2_1456x1048.png 1272w, /__u/substackcdn.com/image/fetch/$s_!MR_d!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79a76cf-5908-472c-b7f2-c6fa8c7e71e2_1456x1048.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!MR_d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79a76cf-5908-472c-b7f2-c6fa8c7e71e2_1456x1048.png" width="1456" height="1048" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e79a76cf-5908-472c-b7f2-c6fa8c7e71e2_1456x1048.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1048,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:462599,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://ringmast4r.substack.com/i/211782578?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79a76cf-5908-472c-b7f2-c6fa8c7e71e2_1456x1048.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!MR_d!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79a76cf-5908-472c-b7f2-c6fa8c7e71e2_1456x1048.png 424w, /__u/substackcdn.com/image/fetch/$s_!MR_d!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79a76cf-5908-472c-b7f2-c6fa8c7e71e2_1456x1048.png 848w, /__u/substackcdn.com/image/fetch/$s_!MR_d!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79a76cf-5908-472c-b7f2-c6fa8c7e71e2_1456x1048.png 1272w, /__u/substackcdn.com/image/fetch/$s_!MR_d!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79a76cf-5908-472c-b7f2-c6fa8c7e71e2_1456x1048.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>What changed</strong></h2><p>In May I published the first cut of this investigation: Albania appointed the world&#8217;s first AI cabinet minister, Diella, then left the Parliament she was supposed to watch on an unauthenticated Azure API (<a href="/__u/ringmast4r.substack.com/p/the-ai-ministers-blind-spot-how-albanias">The AI Minister&#8217;s Blind Spot</a>; <a href="https://time.com/7324934/albania-ai-minister-diella/">TIME</a>; <a href="https://www.aljazeera.com/news/2025/9/12/albania-appoints-ai-bot-minister-to-fight-corruption-in-world-first">Al Jazeera</a>; <a href="https://www.reuters.com/technology/albania-appoints-ai-bot-minister-to-tackle-corruption-2025-09-11/">Reuters</a>).</p><p>In June I re-tested every endpoint. They had all gone dark. No CVE. No CSA statement. No notice to the 236 MPs whose dates of birth and official emails had been sitting in JSON for years (<a href="/__u/ringmast4r.substack.com/p/silent-fix-albanias-parliament-patched">Silent Fix</a>; <a href="https://odint.io/pages/tours/albania">ODINT Albania tour</a>).</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://ringmast4r.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ringmast4r is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>The API is still closed. The copy I pulled in April is not. As of August 18, 2026, the parliamentary documents are hosted on ODINT&#8217;s data server and opened from the Albania tour page (<a href="https://odint.io/pages/tours/albania">ODINT Albania tour</a>; <a href="https://data.odint.io/albania/">data.odint.io/albania</a>). You do not get a JSON of paths. You get the files.</p><p>Start here: <a href="https://odint.io/pages/tours/albania">https://odint.io/pages/tours/albania</a></p><p>Browse the raw tree here: <a href="https://data.odint.io/albania/">https://data.odint.io/albania/</a></p><div><hr></div><h2><strong>Full story recap</strong></h2><p>In January 2025 Albania launched Diella as a chatbot on the e-Albania portal (<a href="https://en.wikipedia.org/wiki/Diella_(AI_system)">Wikipedia, &#8220;Diella (AI system)&#8221;</a>; <a href="https://a2news.com/english/shqiperia/aktualitet/diella-rama-prezanton-asistenten-e-re-virtuale-me-ze-dhe-fi-i1138185">A2 News</a>). In September, Prime Minister Edi Rama appointed her Minister of State for Artificial Intelligence, the first cabinet seat given to a software avatar, and told the press that public tenders would be &#8220;100 percent free of corruption&#8221; (<a href="https://time.com/7324934/albania-ai-minister-diella/">TIME</a>; <a href="https://www.aljazeera.com/news/2025/9/12/albania-appoints-ai-bot-minister-to-fight-corruption-in-world-first">Al Jazeera</a>; <a href="https://www.reuters.com/technology/albania-appoints-ai-bot-minister-to-tackle-corruption-2025-09-11/">Reuters</a>; <a href="https://www.bbc.com/news/articles/cm2znzgwj3xo">BBC</a>). She appears as a woman in Zadrim&#235; dress, using the likeness of actress Anila Bisha (<a href="https://en.wikipedia.org/wiki/Diella_(AI_system)">Wikipedia</a>; <a href="https://www.reuters.com/business/media-telecom/albanian-actor-sues-government-using-her-image-ai-minister-2026-02-13/">Reuters, &#8220;Albanian actor sues government&#8221;</a>). In October, Rama said she was &#8220;pregnant&#8221; with 83 digital assistants, one for each ruling-party MP, to watch legislative sessions (<a href="https://www.euronews.com/next/2025/10/30/albanias-ai-minister-is-pregnant-with-83-digital-assistants-prime-minister-says">Euronews</a>; <a href="https://gulfnews.com/world/offbeat/albanias-ai-minister-diella-pregnant-with-83-digital-children-1.500321907">Gulf News</a>).</p><p>Three months after the appointment, in December 2025, AKSHI Director General Mirlinda Kar&#231;anaj and Deputy Director Hava Delibashi were placed under house arrest (<a href="https://www.tiranatimes.com/akshi-director-arrested-in-major-corruption-probe/">Tirana Times</a>; <a href="https://en.wikipedia.org/wiki/National_Agency_for_Information_Society_(Albania)">Wikipedia, &#8220;National Agency for Information Society (Albania)&#8221;</a>). The charge was a structured criminal group across 12 tender procedures (<a href="https://www.tiranatimes.com/akshi-director-arrested-in-major-corruption-probe/">Tirana Times</a>; <a href="https://www.tiranatimes.com/a-structured-criminal-group-inside-a-national-security-institutionthe-akshi-case/">Tirana Times, &#8220;A Structured Criminal Group Inside a National Security Institution&#8221;</a>). AKSHI is the agency that built Diella and runs the country&#8217;s digital government stack (<a href="https://time.com/7324934/albania-ai-minister-diella/">TIME</a>; <a href="https://en.wikipedia.org/wiki/Diella_(AI_system)">Wikipedia, &#8220;Diella (AI system)&#8221;</a>). BIRN wrote that the capture of AKSHI by criminal interests &#8220;endangers national security&#8221; (<a href="https://www.balkanweb.com/en/birn-kapja-e-akshi-nga-interesa-kriminale-rrezikon-sigurine-kombetare/">BalkanWeb / BIRN</a>; <a href="https://odint.io/pages/tours/albania-akshi-corruption.html">ODINT AKSHI report</a>).</p><p>I started in January 2026 with passive reconnaissance: certificate transparency, public hostnames, the Diella frontend (<a href="/__u/ringmast4r.substack.com/p/the-ai-ministers-blind-spot-how-albanias">The AI Minister&#8217;s Blind Spot</a>; <a href="https://odint.io/pages/tours/albania-diella-ai.html">ODINT Diella report</a>). On the surface Albania looked competent. e-Albania sat behind a WAF. AKSHI&#8217;s WordPress wanted auth. Diella&#8217;s 229 KB Vue/Quasar bundle at <code>proud-coast-026495803.4.azurestaticapps.net</code> had no keys and no backend URLs (<a href="/__u/ringmast4r.substack.com/p/the-ai-ministers-blind-spot-how-albanias">The AI Minister&#8217;s Blind Spot</a>; <a href="https://odint.io/pages/tours/albania-diella-ai.html">ODINT Diella report</a>). Internal names (Hasura, Keycloak, HAPI) resolved only on internal DNS. crt.sh expanded AKSHI from about 50 known names to 110, including Jira, Rancher, and a wiki, all dark from the public internet (<a href="https://odint.io/pages/tours/albania">ODINT Albania tour</a>; <a href="https://crt.sh/?q=%25.akshi.gov.al">crt.sh</a>).</p><p>February 25, 2026, I turned to the institution Diella was supposed to watch (<a href="/__u/ringmast4r.substack.com/p/the-ai-ministers-blind-spot-how-albanias">The AI Minister&#8217;s Blind Spot</a>; <a href="https://odint.io/pages/tours/albania-parliament-api.html">ODINT Parliament API report</a>). <code>parlament.al</code> is a React SPA. Every path returns HTTP 200 and the same <code>index.html</code>. That looks like a dead end until you pull the JavaScript. The 355 KB main chunk hardcoded <code>https://kuvendiapi.azurewebsites.net/api</code> and seven OData entity names (<a href="https://odint.io/pages/tours/albania-parliament-api.html">ODINT Parliament API report</a>; <a href="/__u/ringmast4r.substack.com/p/the-ai-ministers-blind-spot-how-albanias">The AI Minister&#8217;s Blind Spot</a>). I requested them with no token.</p><p>Six of seven answered. <code>/anetaret</code> returned 236 MP records: legal name, father&#8217;s name, date of birth, birthplace, <code>@parlament.al</code> email, party, district, photo URL, social links (<a href="https://odint.io/pages/tours/albania-parliament-mp-viewer.html">ODINT MP viewer</a>; <a href="https://odint.io/pages/tours/albania-raw-mp-records.html">ODINT raw MP records</a>). <code>/dokumentet</code> returned a 30.2 MB catalog of 54,545 Azure blob URLs (<a href="https://odint.io/pages/tours/albania-parliament-api.html">ODINT Parliament API report</a>; <a href="https://data.odint.io/albania/DUMP/">data.odint.io dokumentet dump</a>). <code>/aktet</code>, <code>/lajmet</code>, <code>/mbledhjet</code>, <code>/strukturat</code> were open. <code>/abonimet</code> returned 401. Someone in that codebase knew how to require a login. They applied it to subscriptions and nothing else.</p><p>The blob container at <code>kuvendiwebfiles.blob.core.windows.net/webfiles/</code> had listing disabled. Every individual URL from the catalog was public-read (<a href="/__u/ringmast4r.substack.com/p/the-ai-ministers-blind-spot-how-albanias">The AI Minister&#8217;s Blind Spot</a>; <a href="https://odint.io/pages/tours/albania-parliament-api.html">ODINT Parliament API report</a>). Among the files: monthly <code>PAGA DEPUTETE</code> and <code>PERFITIME DEPUTETE</code> workbooks, FOIA logs, the lobbyist registry, budget tables, the constitution, the electoral code, annual reports (<a href="https://odint.io/pages/tours/albania-raw-salary-xlsx.html">ODINT salary XLSX</a>; <a href="https://data.odint.io/albania/xlsx/">data.odint.io/xlsx</a>).</p><p>I wrote that up and left. April 15-16 I came back. The API was still open. The catalog had grown to 57,287 rows. Meetings were dated that day (<a href="/__u/ringmast4r.substack.com/p/the-ai-ministers-blind-spot-how-albanias">The AI Minister&#8217;s Blind Spot</a>; <a href="https://odint.io/pages/tours/albania">ODINT Albania tour</a>). I ran a 32-thread downloader, then a second pass for the 18,000 filenames that contained spaces. 52,942 files. 32.09 GB. 94.7 percent of the catalog. The rest were already deleted from Azure, not blocked.</p><p>From the spreadsheets I parsed 11,030 salary rows across 398 unique MPs, August 2018 through January 2026 (<a href="/__u/ringmast4r.substack.com/p/the-ai-ministers-blind-spot-how-albanias">The AI Minister&#8217;s Blind Spot</a>; <a href="https://odint.io/pages/tours/albania-raw-salary-xlsx.html">ODINT salary XLSX</a>). Four pay bands, 27 percent from Speaker to back-bencher. Vendimi 114/2014 docks pay for missed sessions. Some opposition names show 40 percent gaps between gross and net.</p><p>A second platform, <code>bisedimet.parlament.al</code>, was a Node archive API running as root at <code>/root/Kuvendi-Backend/</code>, MeiliSearch, Prisma, 20 OCR transcripts, 261 speakers, 92 percent memory, embeddings stuck on <code>PENDING</code> (<a href="/__u/ringmast4r.substack.com/p/the-ai-ministers-blind-spot-how-albanias">The AI Minister&#8217;s Blind Spot</a>; <a href="https://odint.io/pages/tours/albania-parliament-api.html">ODINT Parliament API report</a>). That is the nearest thing I found to the 83 children Rama announced in Berlin (<a href="https://www.euronews.com/next/2025/10/30/albanias-ai-minister-is-pregnant-with-83-digital-assistants-prime-minister-says">Euronews</a>; <a href="https://gulfnews.com/world/offbeat/albanias-ai-minister-diella-pregnant-with-83-digital-children-1.500321907">Gulf News</a>).</p><p>I went back to Diella with the same tools. Still no backend. <code>aibot-api.azurewebsites.net</code> served Azure&#8217;s empty-app welcome page. <code>.auth/me</code> returned a null principal (<a href="/__u/ringmast4r.substack.com/p/the-ai-ministers-blind-spot-how-albanias">The AI Minister&#8217;s Blind Spot</a>; <a href="https://odint.io/pages/tours/albania-diella-ai.html">ODINT Diella report</a>). There is a costume and a login door. There is no model behind it.</p><p>None of this sat in a vacuum. April 2021: 910,000 voter records leaked, about a third of the country (<a href="https://balkaninsight.com/2021/12/23/massive-data-leaks-in-albania-pose-public-security-question/">Balkan Insight</a>; <a href="https://odint.io/pages/tours/albania-data-breaches.html">ODINT breach history</a>). December 2021: 637,138 citizen salary rows over WhatsApp, and Rama called it an internal infiltration (<a href="https://therecord.media/personal-and-salary-data-for-637138-albanian-citizens-leaks-online">Recorded Future</a>; <a href="https://www.euractiv.com/short_news/personal-data-including-salaries-of-over-600000-albanians-leaked/">Euractiv</a>; <a href="https://balkaninsight.com/2021/12/22/albanian-prosecutors-probe-huge-suspected-leak-of-personal-data/bi/">Balkan Insight</a>). 2022: HomeLand Justice (MITRE C0038) hit AKSHI itself; CISA/FBI issued AA22-264A; Albania cut ties with Iran (<a href="https://www.cisa.gov/news-events/cybersecurity-advisories/aa22-264a">CISA AA22-264A</a>; <a href="https://attack.mitre.org/campaigns/C0038/">MITRE ATT&amp;CK C0038</a>). October 2022: a Telegram dump of roughly 100,000 police-suspect records, attributed to the same campaign (<a href="https://balkaninsight.com/2022/10/03/iranian-hackers-leak-database-of-albanian-criminal-suspects/bi/">Balkan Insight</a>; <a href="https://www.voanews.com/a/6774343.html">VOA</a>; <a href="https://cyberlaw.ccdcoe.org/wiki/Homeland_Justice_operations_against_Albania_(2022)">CCDCOE</a>). Then the AI minister. Then the agency&#8217;s directors arrested. Then an open Parliament API that had been that way since at least 2022.</p><p>May 13 I published <a href="/__u/ringmast4r.substack.com/p/the-ai-ministers-blind-spot-how-albanias">The AI Minister&#8217;s Blind Spot</a>. It was cited in Albanian media and used in the legislature (<a href="/__u/ringmast4r.substack.com/p/silent-fix-albanias-parliament-patched">Silent Fix</a>; <a href="https://ringmast4r.com/articles">ringmast4r.com articles</a>). A Microsoft engineer on Albanian government work and an academic both challenged pieces of the method in public. The article stood. June 19 I re-tested. Every previously open entity still resolved, but returned the Parliament homepage as <code>text/html</code>. Not 401. Not 403. A silent rewrite (<a href="/__u/ringmast4r.substack.com/p/silent-fix-albanias-parliament-patched">Silent Fix</a>). No CSA notice. No statement to the 236 people in <code>anetaret</code>.</p><p>August 18, 2026, the April pull went onto ODINT. The tour page is the story (<a href="https://odint.io/pages/tours/albania">ODINT Albania tour</a>). <code>data.odint.io/albania/</code> is the files (<a href="https://data.odint.io/albania/">data.odint.io/albania</a>). The PDF viewer pages through the original documents (<a href="https://odint.io/pages/tours/albania-raw-document-catalog.html">ODINT PDF viewer</a>). The salary page serves the original workbooks (<a href="https://odint.io/pages/tours/albania-raw-salary-xlsx.html">ODINT salary XLSX</a>). The MP viewer is the <code>anetaret</code> table (<a href="https://odint.io/pages/tours/albania-parliament-mp-viewer.html">ODINT MP viewer</a>). The 910k voter file and the other citizen-scale breach dumps stay restricted (<a href="https://odint.io/pages/request-data.html">ODINT request-data</a>; <a href="https://odint.io/pages/tours/albania-raw-citizen-records.html">ODINT citizen catalog</a>). The Parliament records do not.</p><p>That is the investigation. The rest of this post is the map.</p><div><hr></div><h2><strong>How to find all of it on ODINT</strong></h2><p>Everything public lives under two hostnames.</p><p><strong>Tour page (the story, the viewers, the crown jewels):</strong><br><a href="https://odint.io/pages/tours/albania">https://odint.io/pages/tours/albania</a></p><p><strong>Data server (the actual files):</strong><br><a href="https://data.odint.io/albania/">https://data.odint.io/albania/</a></p><p>Use the tour page if you want to read. Use the data server if you want to download in bulk.</p><h3><strong>Parliamentary PDFs (the 30,455)</strong></h3><p>Open the on-page viewer:</p><p><a href="https://odint.io/pages/tours/albania-raw-document-catalog.html">https://odint.io/pages/tours/albania-raw-document-catalog</a></p><p>That page loads <code>https://data.odint.io/albania/pdf/index.json</code> and renders the original PDF in the browser. Search the filename list. Arrow keys move between documents. PageUp and PageDown move inside a document. Download pulls the file from ODINT, not from Azure.</p><p>Directory listing of the same tree:</p><p><a href="https://data.odint.io/albania/pdf/">https://data.odint.io/albania/pdf/</a></p><p>These are the original Parliament blob files: laws, resolutions, interpellations, annual reports, committee packets. The local archive is 30,455 PDFs, about 17.8 GB. The viewer index lists every name. Files are served from <code>data.odint.io</code> as they sit on the archive disk.</p><h3><strong>MP directory (236 records)</strong></h3><p>Searchable table with official emails, dates of birth, birthplaces, party, district, and photos:</p><p><a href="https://odint.io/pages/tours/albania-parliament-mp-viewer.html">https://odint.io/pages/tours/albania-parliament-mp-viewer</a></p><p>Raw JSON view of the same <code>anetaret</code> pull:</p><p><a href="https://odint.io/pages/tours/albania-raw-mp-records.html">https://odint.io/pages/tours/albania-raw-mp-records</a></p><p>This is public-official data returned by an unauthenticated government API. It is not the 910,000-row voter file.</p><h3><strong>MP salary and benefits workbooks (376 XLSX)</strong></h3><p>Search and download the original spreadsheets:</p><p><a href="https://odint.io/pages/tours/albania-raw-salary-xlsx.html">https://odint.io/pages/tours/albania-raw-salary-xlsx</a></p><p>File tree:</p><p><a href="https://data.odint.io/albania/xlsx/">https://data.odint.io/albania/xlsx/</a></p><p>Look for <code>PAGA DEPUTETE</code> (monthly pay) and <code>PERFITIME DEPUTETE</code> (benefits). Also in this folder: FOIA request/response logs 2018-2021, the lobbyist registry, the civil-society registry, and budget annexes. 376 workbooks, about 44 MB, fully hosted.</p><h3><strong>Word documents (729 DOCX)</strong></h3><p><a href="https://data.odint.io/albania/docx/">https://data.odint.io/albania/docx/</a></p><p>Draft laws, covering letters, vacancy notices, committee reports.</p><h3><strong>Manifest, API dumps, and the rest of the tour</strong></h3><ul><li><p>File map: <a href="https://odint.io/pages/tours/albania-raw-file-manifest.html">https://odint.io/pages/tours/albania-raw-file-manifest</a></p></li><li><p>Citizen-records catalog (what is public vs restricted): <a href="https://odint.io/pages/tours/albania-raw-citizen-records.html">https://odint.io/pages/tours/albania-raw-citizen-records</a></p></li><li><p>Legislative acts JSON view: <a href="https://odint.io/pages/tours/albania-raw-legislative-acts.html">https://odint.io/pages/tours/albania-raw-legislative-acts</a></p></li><li><p>Open Data portal spec: <a href="https://odint.io/pages/tours/albania-raw-opendata-spec.html">https://odint.io/pages/tours/albania-raw-opendata-spec</a></p></li><li><p>AKSHI subdomain list: <a href="https://odint.io/pages/tours/albania-raw-subdomains.html">https://odint.io/pages/tours/albania-raw-subdomains</a></p></li><li><p>Parliament API technical report: <a href="https://odint.io/pages/tours/albania-parliament-api.html">https://odint.io/pages/tours/albania-parliament-api</a></p></li><li><p>Diella frontend report: <a href="https://odint.io/pages/tours/albania-diella-ai.html">https://odint.io/pages/tours/albania-diella-ai</a></p></li><li><p>AKSHI corruption report: <a href="https://odint.io/pages/tours/albania-akshi-corruption.html">https://odint.io/pages/tours/albania-akshi-corruption</a></p></li><li><p>Iranian campaign writeup: <a href="https://odint.io/pages/tours/albania-iranian-cyberattacks.html">https://odint.io/pages/tours/albania-iranian-cyberattacks</a></p></li><li><p>Breach history: <a href="https://odint.io/pages/tours/albania-data-breaches.html">https://odint.io/pages/tours/albania-data-breaches</a></p></li><li><p>Earlier API dumps on the data server: <a href="https://data.odint.io/albania/DUMP/">https://data.odint.io/albania/DUMP/</a></p></li></ul><h3><strong>What is not on the public site</strong></h3><p>The 910,000 voter records (2021), the 637,138 national salary records (2021), the 100,000+ police suspect records (2022), ministerial mailboxes, and the SHISH directory stay under ODINT restricted access. Those came from historical breaches, not from the Parliament API. The tour page documents that they exist. The files are not a public download (<a href="https://odint.io/pages/request-data.html">ODINT request-data</a>; <a href="https://balkaninsight.com/2021/12/23/massive-data-leaks-in-albania-pose-public-security-question/">Balkan Insight</a>).</p><p>If you are a credentialed journalist, a researcher, or an affected government entity, use the request form. Do not email me asking for a zip of the voter file.</p><div><hr></div><h2><strong>What you can actually open, by the numbers</strong></h2><p>The April 2026 pull against the live Azure catalog recovered <strong>52,942 files, 32.09 GB</strong>, a 94.7 percent hit rate. The missing 5.3 percent were already gone from blob storage. The blobs did not 403. They did not exist.</p><p>What is on ODINT from that pull, organized for use:</p><ul><li><p><strong>30,455 PDFs</strong> indexed in the document viewer</p></li><li><p><strong>376 XLSX</strong> salary, benefits, FOIA, lobbyist, and budget workbooks</p></li><li><p><strong>729 DOCX</strong> parliamentary office documents</p></li><li><p><strong>236 MP records</strong> in the interactive viewer</p></li><li><p>API JSON dumps (<code>anetaret</code>, <code>dokumentet</code>, <code>aktet</code>, <code>lajmet</code>, <code>mbledhjet</code>, <code>strukturat</code>) under <code>/albania/DUMP/</code></p></li><li><p>Findings writeups on the tour page</p></li></ul><p>The original Azure catalog listed 32,627 PDFs, 18,289 JPEG/JPG, 1,768 JFIF, 885 DOCX, 397 DOC, 392 XLSX, 208 PNG, 117 XLS. Not every image from that catalog is on the public web root. The documents that prove the finding (PDFs and the salary workbooks) are.</p><div><hr></div><h2><strong>Why this is not a GitHub dump</strong></h2><p>A static marketing site cannot hold 18 GB of PDFs. The pattern I use for large evidence, the same one I used for Rwanda and Venezuela, is raw files on <code>data.odint.io</code> and the story plus the viewers on <code>odint.io</code> (<a href="https://odint.io/pages/tours/rwanda.html">ODINT Rwanda</a>; <a href="https://odint.io/pages/tours/venezuela-radio.html">ODINT Venezuela radio</a>; <a href="https://data.odint.io/">data.odint.io</a>).</p><p>The public copy of this haul is the data server.</p><div><hr></div><h2><strong>The API, as it existed</strong></h2><p>Hardcoded in the Parliament SPA:</p><p><code>https://kuvendiapi.azurewebsites.net/api</code></p><p>Entities extracted from the webpack bundle:</p><ul><li><p><code>/anetaret</code> - 236 MP records, 138 KB</p></li><li><p><code>/strukturat</code> - committees, 274 KB</p></li><li><p><code>/aktet</code> - legislative acts, 3.1 MB</p></li><li><p><code>/lajmet</code> - news, 19.8 MB</p></li><li><p><code>/mbledhjet</code> - meetings, 2.2 MB</p></li><li><p><code>/dokumentet</code> - 54,545 then 57,287 blob URLs, 30.2 MB</p></li><li><p><code>/YouTube/search</code> - YouTube proxy, 8 KB</p></li><li><p><code>/abonimet</code> - subscriptions, <strong>401</strong>, the only protected endpoint</p></li></ul><p>Blob host for every document URL:</p><p><code>https://kuvendiwebfiles.blob.core.windows.net/webfiles/&lt;filename&gt;</code></p><p>Container listing was disabled. Individual blobs were public-read. Publishing 54,545 direct URLs while hiding the directory listing is not a control.</p><p>On June 19, 2026, those same paths still resolved, but every previously open entity returned the Parliament homepage HTML with <code>Content-Type: text/html</code> instead of JSON. No 401. No 403. A silent rewrite.</p><div><hr></div><h2><strong>Diella, again, because people still ask</strong></h2><p>I re-downloaded the 229 KB frontend bundle. Zero backend URLs. Zero model names. Zero keys. Azure Static Web App auth is wired (<code>.auth/me</code> returns a null <code>clientPrincipal</code>; <code>.auth/login/aad</code> redirects to Azure AD). There is a door. There is no building behind it.</p><p>Rama announced 83 AI &#8220;children,&#8221; one per ruling-party MP, to watch legislative sessions (<a href="https://www.euronews.com/next/2025/10/30/albanias-ai-minister-is-pregnant-with-83-digital-assistants-prime-minister-says">Euronews</a>; <a href="https://gulfnews.com/world/offbeat/albanias-ai-minister-diella-pregnant-with-83-digital-children-1.500321907">Gulf News</a>; <a href="https://www.reuters.com/technology/albania-appoints-ai-bot-minister-to-tackle-corruption-2025-09-11/">Reuters</a>). The closest thing I found to that stack was <code>bisedimet.parlament.al</code>: a Node.js &#8220;Document Archive API&#8221; at <code>/root/Kuvendi-Backend/</code>, MeiliSearch, Prisma, 20 OCR transcripts, 261 named speakers, health endpoint leaking path and memory, embeddings status <code>PENDING</code> on every document. A search box over 20 PDFs, running as root, at 92 percent memory. That is the 83 children.</p><div><hr></div><h2><strong>Context that did not get quieter</strong></h2><p>April 2021: 910,000 voter records leak, about a third of the country (<a href="https://balkaninsight.com/2021/12/23/massive-data-leaks-in-albania-pose-public-security-question/">Balkan Insight</a>; <a href="https://odint.io/pages/tours/albania-data-breaches.html">ODINT breach history</a>).</p><p>December 2021: 637,138 salary records leak over WhatsApp. Rama called it an internal infiltration (<a href="https://therecord.media/personal-and-salary-data-for-637138-albanian-citizens-leaks-online">Recorded Future</a>; <a href="https://www.euractiv.com/short_news/personal-data-including-salaries-of-over-600000-albanians-leaked/">Euractiv</a>; <a href="https://balkaninsight.com/2021/12/22/albanian-prosecutors-probe-huge-suspected-leak-of-personal-data/bi/">Balkan Insight</a>).</p><p>2022: HomeLand Justice (MITRE ATT&amp;CK C0038) hits AKSHI. CISA/FBI advisory AA22-264A. Albania severs ties with Iran (<a href="https://www.cisa.gov/news-events/cybersecurity-advisories/aa22-264a">CISA AA22-264A</a>; <a href="https://attack.mitre.org/campaigns/C0038/">MITRE ATT&amp;CK C0038</a>; <a href="https://cyberlaw.ccdcoe.org/wiki/Homeland_Justice_operations_against_Albania_(2022)">CCDCOE</a>).</p><p>October 2022: roughly 100,000 police-suspect records leak via Telegram (<a href="https://balkaninsight.com/2022/10/03/iranian-hackers-leak-database-of-albanian-criminal-suspects/bi/">Balkan Insight</a>; <a href="https://www.voanews.com/a/6774343.html">VOA</a>).</p><p>December 2025: AKSHI leadership arrested for tender manipulation (<a href="https://www.tiranatimes.com/akshi-director-arrested-in-major-corruption-probe/">Tirana Times</a>; <a href="https://www.balkanweb.com/en/birn-kapja-e-akshi-nga-interesa-kriminale-rrezikon-sigurine-kombetare/">BalkanWeb / BIRN</a>).</p><p>February-April 2026: Parliament API open. This investigation (<a href="/__u/ringmast4r.substack.com/p/the-ai-ministers-blind-spot-how-albanias">The AI Minister&#8217;s Blind Spot</a>; <a href="https://odint.io/pages/tours/albania-parliament-api.html">ODINT Parliament API report</a>).</p><p>June 2026: API silently closed (<a href="/__u/ringmast4r.substack.com/p/silent-fix-albanias-parliament-patched">Silent Fix</a>).</p><p>August 2026: the pull is on ODINT (<a href="https://odint.io/pages/tours/albania">ODINT Albania tour</a>; <a href="https://data.odint.io/albania/">data.odint.io/albania</a>).</p><p>You cannot appoint an anti-corruption minister on top of an IT agency that was breached by a foreign service, then captured by its own directors, then leave the legislature&#8217;s document store on public blob URLs for four years, then close the door without saying who walked through it.</p><div><hr></div><h2><strong>What I am not doing</strong></h2><p>I am not republishing the 910k voter file, the 637k citizen salary dump, or the police suspect photos. Those are restricted. The Parliament PDFs, the MP directory from the open API, and the MP payroll workbooks are government records that were served without authentication. Those are what you can open.</p><p>I am not claiming the June closure never happened. It did. I am claiming the historical record still exists, because I kept the GET responses, and because you can now page through the PDFs yourself.</p><div><hr></div><h2><strong>Full methodology, in the order I actually did it</strong></h2><h3><strong>Phase 1 - February 25, 2026</strong></h3><p>Scope was Diella, not Parliament.</p><ol><li><p>Pulled the Diella frontend HTML and the 229 KB JS bundle from <code>proud-coast-026495803.4.azurestaticapps.net</code>.</p></li><li><p>Ran string extraction and URL regex across the bundle. Result: Quasar/Vue only. Env vars were CSS tokens.</p></li><li><p>Hit <code>/.auth/me</code>, <code>/.auth/login/aad</code>, <code>/.auth/login/github</code>. Auth framework present, no app behind it.</p></li><li><p>Probed <code>aibot-api.azurewebsites.net</code>, then <code>diella-api</code>, <code>aibot</code>, <code>chatbot</code>, <code>assistant</code> on <code>.azurewebsites.net</code>, <code>.azure-api.net</code>, <code>.azurefd.net</code>. Default pages or 404s.</p></li><li><p>Enumerated AKSHI via crt.sh. 110 names. Jira, Rancher, Wiki, VS Code Server, Collabora. Internal DNS only.</p></li><li><p>Probed 17 <code>.gov.al</code> / government hostnames. WAF, 403, or down. Then <code>parlament.al</code>.</p></li></ol><p>Parliament is a React SPA. Every path is HTTP 200 + the same <code>index.html</code>. That is a client router, not a locked API.</p><ol start="7"><li><p>Downloaded <code>parlament-main.js</code> (355 KB) and <code>parlament-vendor.js</code> (1.0 MB).</p></li><li><p>Grepped the main chunk for <code>http</code>, <code>azure</code>, <code>api</code>, <code>odata</code>. Recovered:</p></li></ol><p><code>https://kuvendiapi.azurewebsites.net/api</code></p><p>and the entity list above.</p><ol start="9"><li><p>GET each entity with no headers except a normal User-Agent. Six returned JSON. <code>/abonimet</code> returned 401.</p></li><li><p>Saved the JSON. <code>dokumentet</code> was 30.2 MB. Extracted every blob URL.</p></li></ol><p>No scanner. No exploit. curl and a text editor.</p><h3><strong>Phase 2 - April 15-16, 2026</strong></h3><ol><li><p>Re-GET every entity. Still 200 JSON. <code>dokumentet</code> had grown to 57,287 rows. Meetings dated that day.</p></li><li><p>Wrote a 32-thread Python downloader against <code>kuvendiwebfiles.blob.core.windows.net/webfiles/</code>.</p></li><li><p>First pass used urllib. About 18,000 URLs failed because filenames contained literal spaces and Albanian characters. Second pass quoted them correctly.</p></li><li><p>Runtime: 45 minutes. 52,942 files, 32.09 GB, 94.7 percent of the catalog.</p></li><li><p>Sorted the haul by extension into <code>pdf</code>, <code>xlsx</code>, <code>xls</code>, <code>docx</code>, <code>doc</code>, <code>jpeg</code>, <code>jpg</code>, <code>jfif</code>, <code>png</code>.</p></li><li><p>Parsed 116 payroll workbooks (column headers change grammatical case around 2022) into 11,030 salary rows across 398 unique MPs, August 2018 through January 2026.</p></li><li><p>Hit <code>bisedimet.parlament.al</code>. Health endpoint: Node, path <code>/root/Kuvendi-Backend/</code>, MeiliSearch, Prisma, 92 percent memory, 2.4 days uptime. 20 OCR transcripts, embeddings <code>PENDING</code>.</p></li></ol><h3><strong>Phase 3 - June 19, 2026</strong></h3><p>Re-GET every entity. JSON gone. Homepage HTML. Documented in <a href="/__u/ringmast4r.substack.com/p/silent-fix-albanias-parliament-patched">Silent Fix</a>.</p><h3><strong>Phase 4 - August 18, 2026</strong></h3><ol><li><p>Copied the XLSX tree (376 files) and DOCX tree (729 files) to <code>https://data.odint.io/albania/xlsx/</code> and <code>https://data.odint.io/albania/docx/</code>.</p></li><li><p>Built <code>https://data.odint.io/albania/pdf/index.json</code> (30,455 names and sizes) and the on-page PDF.js viewer.</p></li><li><p>Published the MP viewer, the salary list, the manifest, and the tour-page links. The public archive is the data server, not a code host.</p></li></ol><div><hr></div><h2><strong>Exact public URLs (copy-paste)</strong></h2><p>Tour:</p><ul><li><p><a href="https://odint.io/pages/tours/albania">https://odint.io/pages/tours/albania</a></p></li><li><p><a href="https://odint.io/pages/tours/albania-raw-document-catalog.html">https://odint.io/pages/tours/albania-raw-document-catalog.html</a></p></li><li><p><a href="https://odint.io/pages/tours/albania-parliament-mp-viewer.html">https://odint.io/pages/tours/albania-parliament-mp-viewer.html</a></p></li><li><p><a href="https://odint.io/pages/tours/albania-raw-salary-xlsx.html">https://odint.io/pages/tours/albania-raw-salary-xlsx.html</a></p></li><li><p><a href="https://odint.io/pages/tours/albania-raw-file-manifest.html">https://odint.io/pages/tours/albania-raw-file-manifest.html</a></p></li><li><p><a href="https://odint.io/pages/tours/albania-raw-citizen-records.html">https://odint.io/pages/tours/albania-raw-citizen-records.html</a></p></li><li><p><a href="https://odint.io/pages/tours/albania-raw-mp-records.html">https://odint.io/pages/tours/albania-raw-mp-records.html</a></p></li><li><p><a href="https://odint.io/pages/tours/albania-raw-legislative-acts.html">https://odint.io/pages/tours/albania-raw-legislative-acts.html</a></p></li><li><p><a href="https://odint.io/pages/tours/albania-raw-opendata-spec.html">https://odint.io/pages/tours/albania-raw-opendata-spec.html</a></p></li><li><p><a href="https://odint.io/pages/tours/albania-raw-subdomains.html">https://odint.io/pages/tours/albania-raw-subdomains.html</a></p></li><li><p><a href="https://odint.io/pages/tours/albania-parliament-api.html">https://odint.io/pages/tours/albania-parliament-api.html</a></p></li><li><p><a href="https://odint.io/pages/tours/albania-diella-ai.html">https://odint.io/pages/tours/albania-diella-ai.html</a></p></li><li><p><a href="https://odint.io/pages/tours/albania-akshi-corruption.html">https://odint.io/pages/tours/albania-akshi-corruption.html</a></p></li><li><p><a href="https://odint.io/pages/tours/albania-iranian-cyberattacks.html">https://odint.io/pages/tours/albania-iranian-cyberattacks.html</a></p></li><li><p><a href="https://odint.io/pages/tours/albania-data-breaches.html">https://odint.io/pages/tours/albania-data-breaches.html</a></p></li></ul><p>Data:</p><ul><li><p><a href="https://data.odint.io/albania/">https://data.odint.io/albania/</a></p></li><li><p><a href="https://data.odint.io/albania/pdf/">https://data.odint.io/albania/pdf/</a></p></li><li><p><a href="https://data.odint.io/albania/pdf/index.json">https://data.odint.io/albania/pdf/index.json</a></p></li><li><p><a href="https://data.odint.io/albania/xlsx/">https://data.odint.io/albania/xlsx/</a></p></li><li><p><a href="https://data.odint.io/albania/xlsx/index.json">https://data.odint.io/albania/xlsx/index.json</a></p></li><li><p><a href="https://data.odint.io/albania/docx/">https://data.odint.io/albania/docx/</a></p></li><li><p><a href="https://data.odint.io/albania/DUMP/">https://data.odint.io/albania/DUMP/</a></p></li></ul><p>Historical API (now HTML-stubbed):</p><ul><li><p><a href="https://kuvendiapi.azurewebsites.net/api/anetaret">https://kuvendiapi.azurewebsites.net/api/anetaret</a></p></li><li><p><a href="https://kuvendiapi.azurewebsites.net/api/dokumentet">https://kuvendiapi.azurewebsites.net/api/dokumentet</a></p></li><li><p><a href="https://kuvendiapi.azurewebsites.net/api/aktet">https://kuvendiapi.azurewebsites.net/api/aktet</a></p></li><li><p><a href="https://kuvendiapi.azurewebsites.net/api/lajmet">https://kuvendiapi.azurewebsites.net/api/lajmet</a></p></li><li><p><a href="https://kuvendiapi.azurewebsites.net/api/mbledhjet">https://kuvendiapi.azurewebsites.net/api/mbledhjet</a></p></li><li><p><a href="https://kuvendiapi.azurewebsites.net/api/strukturat">https://kuvendiapi.azurewebsites.net/api/strukturat</a></p></li><li><p><a href="https://kuvendiapi.azurewebsites.net/api/abonimet">https://kuvendiapi.azurewebsites.net/api/abonimet</a></p></li></ul><p>Blob pattern (individual files were public-read at collection time):</p><ul><li><p><a href="https://kuvendiwebfiles.blob.core.windows.net/webfiles/%7Bfilename%7D">https://kuvendiwebfiles.blob.core.windows.net/webfiles/{filename}</a></p></li></ul><p>Diella frontend:</p><p>https://proud-coast-026495803.4.azurestaticapps.net</p><ul><li><p><a href="https://proud-coast-026495803.4.azurestaticapps.net/.auth/me">https://proud-coast-026495803.4.azurestaticapps.net/.auth/me</a></p></li></ul><div><hr></div><h2><strong>Salary structure from the workbooks (already on ODINT)</strong></h2><p>Parsed from the hosted XLSX, not from a leak of private citizens:</p><ul><li><p>Speaker (Niko Peleshi): 393,125 ALL gross / month (~$3,900)</p></li><li><p>Parliamentary group leaders: 356,788 ALL</p></li><li><p>Committee chairs / vice speakers: 325,000-329,000 ALL</p></li><li><p>Rank-and-file MPs: 310,250 ALL</p></li><li><p>Top-to-bottom spread: 27 percent</p></li><li><p>Penalty statute: Vendimi 114/2014 (docked pay for missed sessions)</p></li><li><p>Example gap already published in May: Gazment Bardhi, 356,788 gross vs 210,104 net in January 2026 (41 percent withheld)</p></li></ul><p>Open any <code>PAGA DEPUTETE</code> file on the salary page and you can check the arithmetic yourself.</p><div><hr></div><h2><strong>anetaret field list (the MP JSON)</strong></h2><p>Each of the 236 records carried, at minimum:</p><ul><li><p><code>emer</code> / <code>atesi</code> / <code>mbiemer</code> (given name, father&#8217;s name, surname)</p></li><li><p><code>ditlindje</code> (date of birth)</p></li><li><p><code>vendlindje</code> (place of birth)</p></li><li><p><code>email</code> (<code>*@parlament.al</code>)</p></li><li><p>party / district / active flag</p></li><li><p>Azure blob photo URL</p></li><li><p>social links when present</p></li></ul><p>I am not pasting 236 emails into this post. They are in the MP viewer.</p><div><hr></div><h2><strong>Replicate from a cold machine</strong></h2><p>You cannot replicate the live API. It was rewritten in June. You can replicate the ODINT copy.</p><pre><code><code>curl -I https://data.odint.io/albania/pdf/index.json
curl -I https://odint.io/pages/tours/albania-raw-document-catalog.html
curl -I https://data.odint.io/albania/xlsx/index.json
</code></code></pre><p>To rebuild the index from a local PDF folder:</p><pre><code><code>python -c "import os,json; root=r'PATH\\pdf'; files=[{'n':n,'s':os.path.getsize(os.path.join(root,n))} for n in os.listdir(root) if n.lower().endswith('.pdf')]; json.dump({'count':len(files),'base':'https://data.odint.io/albania/pdf/','files':files}, open('index.json','w',encoding='utf-8'), ensure_ascii=False, separators=(',',':'))"
</code></code></pre><p>The original downloader was a ThreadPool of GETs against the <code>dokumentet</code> URL list. No Range tricks. No signed tokens. <code>Authorization</code> header was never sent.</p><div><hr></div><h2><strong>What I kept off the public web root, on purpose</strong></h2><ul><li><p>910,000 voter records (April 2021 breach)</p></li><li><p>637,138 citizen salary records (December 2021 WhatsApp leak)</p></li><li><p>~100,000 police suspect records with photos (October 2022)</p></li><li><p>Ministerial mailboxes and SHISH directory material from the Iranian campaign dumps</p></li></ul><p>Those are not Parliament publications. They are not on <code>data.odint.io/albania/</code>. Request path is <a href="https://odint.io/pages/request-data.html">https://odint.io/pages/request-data.html</a></p><div><hr></div><p><em>Investigation dates: February 25, 2026 (Phase 1), April 15-16, 2026 (Phase 2), June 19, 2026 (retest), August 18, 2026 (ODINT publish). All Parliament files were collected with unauthenticated HTTP GET against public endpoints. No credentials. No exploit. Inline citations are in the body. The grouped list is SOURCES_Albania_Archive_On_ODINT.md.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://ringmast4r.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ringmast4r is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[US EPA: 10 ArcGIS Servers Open, Including a Test Environment on the Public Internet]]></title><description><![CDATA[The US Environmental Protection Agency operates multiple ArcGIS Server deployments across its infrastructure.]]></description><link>https://ringmast4r.substack.com/p/us-epa-10-arcgis-servers-open-including</link><guid isPermaLink="false">https://ringmast4r.substack.com/p/us-epa-10-arcgis-servers-open-including</guid><dc:creator><![CDATA[Patrick Quirk]]></dc:creator><pubDate>Fri, 07 Aug 2026 20:01:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!2mAD!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0358c083-e7f3-41c6-90c2-16605e959275_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The US Environmental Protection Agency operates multiple ArcGIS Server deployments across its infrastructure. At the time of discovery, ten EPA ArcGIS instances had their REST Services Directories publicly accessible without authentication.</p><p><strong>Affected hosts (all EPA-operated):</strong></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://ringmast4r.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ringmast4r is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><ul><li><p>awseatlas.epa.gov (ArcGIS v11.3)</p></li><li><p>awsgeopub.epa.gov (ArcGIS v11.3)</p></li><li><p>awsgispub.epa.gov (ArcGIS v12)</p></li><li><p>awsrobinson-test.epa.gov (ArcGIS v11.4 -- TEST ENVIRONMENT, public internet)</p></li><li><p>awsrobinson.epa.gov (ArcGIS v11.4)</p></li><li><p>blt.epa.gov (ArcGIS v11.3)</p></li><li><p>blt.lbd.epa.gov (ArcGIS v11.3)</p></li><li><p>cimcgis.epa.gov (ArcGIS v11.3)</p></li><li><p>clmapper.epa.gov (ArcGIS v11.3)</p></li><li><p>cwns.epa.gov (ArcGIS v11.3)</p></li></ul><p><strong>Discovery date:</strong> 2026-06-22<br><strong>Disclosure sent:</strong> 2026-06-24<br><strong>Sent to:</strong> itsecurity@epa.gov, CC: vulnerability@cisa.dhs.gov<br><strong>Severity:</strong> MEDIUM</p><p>Each instance exposes its ArcGIS REST Services Directory without authentication, disclosing server version, folder structure, and service inventory. Per NIST SP 800-53 CM-7 and FedRAMP baseline controls, this configuration information should not be available to unauthenticated users.</p><p>The test environment (awsrobinson-test.epa.gov) is of particular concern: a test server accessible from the public internet represents a significantly expanded attack surface with typically relaxed security controls.</p><p>I have not accessed, modified, or exfiltrated any data from any of these systems. CISA was CC&#8217;d at initial disclosure per federal vulnerability disclosure protocol.</p><p>Our adversaries would not hesitate to use an exposure like this against us. God Bless.</p><div><hr></div><p>~Ringmast4r strikes again.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://ringmast4r.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ringmast4r is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Everything Routes Through a Data Center. Nobody Was Asking How They Are Secured.]]></title><description><![CDATA[I mapped all 18,110 because they are critical infrastructure and were being ignored as such. Now there are 300 bills and $130 billion in cancelled projects, and the argument is about something else.]]></description><link>https://ringmast4r.substack.com/p/everything-routes-through-a-data</link><guid isPermaLink="false">https://ringmast4r.substack.com/p/everything-routes-through-a-data</guid><dc:creator><![CDATA[Patrick Quirk]]></dc:creator><pubDate>Thu, 06 Aug 2026 11:01:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ynEH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faad5a359-413c-4054-ba43-c750af7b7c5b_1500x1500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!ynEH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faad5a359-413c-4054-ba43-c750af7b7c5b_1500x1500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!ynEH!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faad5a359-413c-4054-ba43-c750af7b7c5b_1500x1500.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!ynEH!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faad5a359-413c-4054-ba43-c750af7b7c5b_1500x1500.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!ynEH!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faad5a359-413c-4054-ba43-c750af7b7c5b_1500x1500.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!ynEH!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faad5a359-413c-4054-ba43-c750af7b7c5b_1500x1500.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!ynEH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faad5a359-413c-4054-ba43-c750af7b7c5b_1500x1500.jpeg" width="1456" height="1456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aad5a359-413c-4054-ba43-c750af7b7c5b_1500x1500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:249489,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://ringmast4r.substack.com/i/210054671?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faad5a359-413c-4054-ba43-c750af7b7c5b_1500x1500.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!ynEH!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faad5a359-413c-4054-ba43-c750af7b7c5b_1500x1500.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!ynEH!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faad5a359-413c-4054-ba43-c750af7b7c5b_1500x1500.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!ynEH!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faad5a359-413c-4054-ba43-c750af7b7c5b_1500x1500.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!ynEH!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faad5a359-413c-4054-ba43-c750af7b7c5b_1500x1500.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>When I built this, nobody cared about data centers. That was the problem I was pointing at.</p><p>Everything routes through one. Every service you use, every transaction, every message, every page load terminates in a building full of servers, cooling and redundant power. They are the hub. Pull one and things stop working for people who have never heard of it.</p><p>That is the textbook definition of critical infrastructure. And at the time it was getting almost none of the attention that label is supposed to carry. Nobody was asking the obvious questions in public. How are these facilities secured? What happens when one goes down? Where are the single points of failure? Which regions sit one building away from being cut off? For something carrying that much load, the silence was strange.</p><p>So I mapped them. All of them. Not as a hobby and not as an argument, but because you cannot ask a serious question about the resilience of a system whose components nobody has bothered to enumerate. A commercial geospatial intelligence project needed data center locations for its own reasons and I built the tool that got them. The reason I kept going, cleaned it, and eventually published it was that the gap in public discussion seemed worth closing.</p><p>Nobody objected. Nobody asked what it was for. It was infrastructure trivia.</p><p>That was not even two years ago.</p><h2><strong>What changed</strong></h2><p>Everything, and fast, but not in the direction I expected.</p><p>The money arrived first. US data center construction starts went from $14.9 billion in 2023 to $26.9 billion in 2024 to $77.7 billion in 2025, a 190 percent jump in a single year (<a href="https://www.americanindustrialmagazine.com/blogs/industry/data-center-construction-boom-2026-statistics-costs-amp-power-demand">American Industrial Magazine</a>). The five largest hyperscalers are putting between $660 billion and $725 billion into AI infrastructure this year alone, close to double 2025 (<a href="https://intellectia.ai/blog/ai-infrastructure-investment-boom-2026">Intellectia</a>). More than 23 gigawatts of capacity is physically under construction (<a href="https://about.bnef.com/insights/data-centers/ai-data-center-build-advances-at-full-speed-five-things-to-know/">BloombergNEF</a>).</p><p>Then the pushback. In 2026 so far, lawmakers in more than 30 states have introduced over 300 bills touching data centers: moratoriums, tax incentives, energy policy (<a href="https://www.multistate.us/resources/state-data-center-policy-101">MultiState</a>). Bans and pauses are under discussion in more than 20 states, and over $130 billion in projects was delayed or abandoned in the first quarter of 2026 alone (<a href="https://www.eesi.org/articles/view/data-centers-and-water-consumption">EESI</a>).</p><p>It is not only a statehouse story. Nearly a third of Indiana counties have moved to restrict data centers (<a href="https://www.wfyi.org/statewide/2026-07-06/indiana-counties-data-center-moratoriums-bans-2026">WFYI</a>). Farmville commissioners voted unanimously this month for a twelve month moratorium after residents turned out against a proposal (<a href="https://www.witn.com/2026/08/04/farmville-board-adopts-12-month-moratorium-potential-data-center-after-residents-voice-opposition/">WITN</a>). In Lysander, New York, more than 350 residents came to a board meeting over a proposed 300 megawatt campus on 120 acres, and a six month moratorium passed unanimously (<a href="https://www.rockinst.org/blog/updates-on-the-cloud-more-moratoriums-on-data-centers/">Rockefeller Institute of Government</a>). In Tonawanda, hundreds showed up citing pollution, utility costs, property values and noise (<a href="https://www.rockinst.org/blog/updates-on-the-cloud-more-moratoriums-on-data-centers/">Rockefeller Institute of Government</a>).</p><p>The two arguments underneath it are electricity and water.</p><p>On electricity, the honest answer is that it is contested. One analysis puts $23 billion in higher costs already pushed onto the public (<a href="https://fortune.com/2026/07/14/data-centers-23-billion-electricity-bills/">Fortune</a>). A study from NC State, Carnegie Mellon and others projects demand weighted wholesale prices rising 6 to 29 percent nationally by 2030, and as much as 57 percent in the worst hit regions (<a href="https://www.forbes.com/sites/robertszczerba/2026/08/03/will-ai-data-centers-raise-your-electric-bill-the-rules-that-decide-who-pays/">Forbes</a>). But a March 2026 study found the correlation between data center count and current prices statistically insignificant (<a href="https://www.independent.org/article/2026/06/06/data-centers-electricity-prices/">Independent Institute</a>), and in some regions large industrial load lowered residential rates between 2019 and 2024 before reversing where slack ran out (<a href="https://www.marketplace.org/story/2026/07/10/data-centers-lowered-electric-bills-in-some-places-for-now">Marketplace</a>). Anyone telling you this is settled in either direction is selling something.</p><p>On water it is less ambiguous, because the impact is local rather than national. Nationally, data centers are a small share of consumption. Locally they are not. A facility in Newton County, Georgia uses 500,000 gallons a day, roughly 10 percent of the entire county&#8217;s water (<a href="https://www.consumerreports.org/data-centers/ai-data-centers-impact-on-electric-bills-water-and-more-a1040338678/">Consumer Reports</a>). Facilities across Arizona, Colorado, Nevada, New Mexico and Utah could draw 7 billion gallons a year by 2035, enough for up to 194,000 people (<a href="https://qz.com/data-center-water-use-drought-american-west-051326">Quartz</a>). As of early May 2026, roughly 51 percent of the US and Puerto Rico was in drought (<a href="https://qz.com/data-center-water-use-drought-american-west-051326">Quartz</a>).</p><p>So data centers finally made the news. Just not for the reason I was asking about.</p><h2><strong>Where I stand</strong></h2><p>I am not on a side, and I want to be precise about what that means, because it is not indifference.</p><p>I am not an advocate for the industry. I am not an activist against it. I have no position on whether the facility proposed near you should be built, and if your county&#8217;s water table cannot support one, that is a real objection that deserves a real hearing.</p><p>But I will say this much, because it is the reason I built the map.</p><p>Data centers have always existed. They have been running the internet for decades, quietly, in buildings nobody protested because nobody knew they were there. The category is not new and the category is not the problem. What is new is the scale and speed of the hyperscale AI buildout, and that is a legitimate and separate discussion about power procurement, water rights, siting and who absorbs the cost.</p><p>Collapsing those two things into one is where the current fight goes wrong. Data centers did not arrive in 2025. Treating the whole category as the villain aims at the wrong target, and worse, it crowds out the question that actually needed asking and is still unanswered: this is critical infrastructure, so how is it secured, how resilient is it, and what happens when a node fails.</p><p>That question got no oxygen when data centers were invisible. It is getting no oxygen now that they are political, because the argument moved to electricity bills and zoning before anyone finished the first conversation.</p><p>What I have is the list, the methodology, and an honest account of where it is weak. Use it for whichever argument you are having. I would rather it get used for the one about resilience.</p><h2><strong>How I actually got it</strong></h2><p>I scraped the hell out of the people selling it.</p><p>Not their internal systems. Their open APIs and their public facing websites. The endpoints their own front ends call to render pages any visitor can load. Five sources, driven with Playwright, pulling facility names, operators, street addresses, cities, countries and coordinates.</p><p>That is what makes this explicitly OSINT and not something else. No credentials. No API abuse. No authentication bypass. No proprietary access. Every record came from information those companies chose to publish on the open internet, retrieved the same way your browser retrieves it, just systematically.</p><p>Which gets to the thing worth understanding about this industry.</p><h2><strong>The business being run on public information</strong></h2><p>The commercial data center marketplaces have run the same play since the mid 2000s. Their model is a commission on colocation deals brokered through their platforms, typically around 10 percent. Sign a $10,000 a month contract through one of their quote services and they take roughly $1,000 a month for the initial term. On top of that, operators pay for premium listings, banner placement, sponsorships and enhanced memberships. All of it priced behind a &#8220;contact us&#8221; wall.</p><p>They list tens of thousands of facilities. You can browse them. Download the data? Get coordinates in bulk? Export to your own tools? No. That restriction is the product.</p><p>Here is the part that matters: none of the underlying information is secret. These are commercial buildings. Many advertise their own addresses. They appear in property records and business filings. Nothing is being revealed here that the operators themselves have not already published.</p><p>The scarcity is manufactured. The gate is the business.</p><h2><strong>The part that took the actual time</strong></h2><p>Scraping was the easy half. The cleaning consumed more hours than everything else combined, and it is the real reason this data gets sold rather than shared.</p><ul><li><p>970 records had no country field at all. I recovered 707 through address parsing.</p></li><li><p>1,708 US records had no state. I mapped 1,434 via ZIP code geocoding.</p></li><li><p>Only 36.6 percent had usable coordinates. Batch geocoding pushed that past 70 percent.</p></li><li><p>261 Southern Hemisphere facilities had inverted latitude signs, putting them in the wrong hemisphere entirely. Three Australian facilities had geocoded into Europe.</p></li></ul><p>That is the moat. Not secrecy. The unglamorous work of making public information usable. I did that part, so nobody has to pay for it.</p><h2><strong>What the data says</strong></h2><p>18,110 facilities. 116 countries. 4,181 operators.</p><p><strong>The United States holds nearly half of everything.</strong> 8,818 of 18,110 facilities, 48.7 percent. A handful of metros, Northern Virginia, Dallas, Chicago, Los Angeles, the New York and New Jersey corridor, hold more capacity than entire continents.</p><p><strong>The Netherlands has more mapped facilities than India.</strong> 444 against 342. Seventeen million people against 1.4 billion. Density follows capital, connectivity and regulation. Never population.</p><p><strong>Africa has fewer than the Netherlands.</strong> Roughly 240 facilities for 1.4 billion people, and South Africa holds 67 of them. That is not a hole in my scraper. It is a real gap, and it sets latency, data sovereignty and digital autonomy for a quarter of the world.</p><p><strong>Brazil is South America.</strong> 141 of the continent&#8217;s roughly 217 facilities. Sao Paulo is a single point of failure for a continent.</p><p><strong>The physical layer is centralized even where the protocol layer is not.</strong> Amazon AWS runs 533 facilities. Equinix 482. Lumen 403. China Telecom 316. Zenlayer 309. Digital Realty 299. The top six alone exceed 2,300. When people call the internet decentralized, they mean the protocols. The buildings are not.</p><p>Those were interesting numbers when this was trivia. They are load bearing now, because every argument in that moratorium map is fundamentally an argument about geography, and most of it is being conducted without one.</p><h2><strong>Read this before you use it for anything that matters</strong></h2><p>This is the section nobody publishes, and it decides whether your conclusion is real.</p><p>The coordinates are not uniformly precise. Roughly 6,131 of 18,110 records carry city level coordinates. The rest fall through a chain: city where available, then US state centroid, then country centroid.</p><p>A dot on this map is therefore often not a building. It is frequently a city. Sometimes it is the geometric middle of an entire country, which is to say nowhere at all.</p><p>For seeing the shape of global infrastructure, fine. For anything where a specific location matters, it is worse than useless, because it will hand you a confident looking coordinate pointing at a field.</p><p>So if you are computing exposure to a water basin, a heat threshold, a grid region or a floodplain: filter on coordinate provenance first. If you skip that, you will produce a number that looks rigorous and means nothing.</p><p>And if you are pointing at a dot and saying that building, right there, you are very likely wrong. I am telling you so in the dataset&#8217;s own license file.</p><h2><strong>Why it is free now</strong></h2><p>I released it under All Rights Reserved. Read that phrase next to the words released it and you will spot the problem.</p><p>Then the emails started. A ratings agency wanted it for a white paper on water stress and heat stress exposure across industrial sectors. A satellite communications company wanted it as a layer in an internal planning tool. Others after that. Every one of them careful, every one having read the license and decided to ask rather than simply take the files, which they could have done in about four seconds, because the repository is public.</p><p>Every time, I typed the same reply: yes, go ahead, just credit me.</p><p>A permission system whose only function is to make honest people wait for my email is not protection. It never stopped anyone willing to ignore it. It only taxed the people who were going to credit me anyway. And there is an irony I would rather name myself than have someone else name for me: my whole argument against the marketplaces is that they put a gate in front of public information. Then I did the same thing. A gate with no lock and no guard, but a gate.</p><p>So it is attribution only now. Use it, copy it, publish it, build a product on it, cite it, argue with it. You do not need to ask and you do not owe me an email, though I would like to hear what you make. I would not have guessed the first serious use would be climate risk modeling.</p><h2><strong>Take it</strong></h2><p>18,110 facilities in twelve formats: CSV, XLSX, JSON, GeoJSON, KML, TSV, XML, SQLite, Parquet, SQL dump, YAML, and a Markdown table you can read without downloading anything. GeoJSON imports straight into QGIS, Mapbox, ArcGIS and Kepler.gl. KML opens in Google Earth. The SQLite build is queryable with no server.</p><p>The live map carries search, country and operator filters, clustering, heatmaps, radius search, distance measurement, proximity analysis and export. There is a 3D globe and a Robinson projection as well, because Mercator lies about area and area is the entire argument when you are looking at where infrastructure concentrates.</p><p><strong>Data:</strong><span> </span><a href="https://github.com/Ringmast4r/Global-Data-Center-Map">https://github.com/Ringmast4r/Global-Data-Center-Map</a><br><strong>Map:</strong><span> </span><a href="https://data-center-map.com">https://data-center-map.com</a></p><p>No account. No commission. No quote form. No sales team.</p><p>I mapped these buildings when they were boring. Everyone has since decided they are the most important buildings in the country, and both sides of that argument have turned up wanting the numbers.</p><p>I am not going to tell you what to conclude. I did the scraping, I did the cleaning, I have shown my methodology, and I have told you exactly where the data is weak so you cannot honestly overstate it.</p><p>The research is yours now. </p>
      <p>
          <a href="/__u/ringmast4r.substack.com/p/everything-routes-through-a-data">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[422 Megabytes of Telecom: How the Dominican Republic's Largest Carrier Left Its Git Repository on the Internet]]></title><description><![CDATA[Viva Dominicana's Complete Source Code, Database Credentials, and a 2016-Era Service Desk With Pre-Auth RCE &#8212; Plus Every Police Station in the Country Mapped on an Open GeoServer]]></description><link>https://ringmast4r.substack.com/p/422-megabytes-of-telecom-how-the</link><guid isPermaLink="false">https://ringmast4r.substack.com/p/422-megabytes-of-telecom-how-the</guid><dc:creator><![CDATA[Patrick Quirk]]></dc:creator><pubDate>Wed, 05 Aug 2026 07:30:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!kR8O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F397acef6-9417-411b-af6b-57f826f13422_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!kR8O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F397acef6-9417-411b-af6b-57f826f13422_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!kR8O!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F397acef6-9417-411b-af6b-57f826f13422_1536x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!kR8O!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F397acef6-9417-411b-af6b-57f826f13422_1536x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!kR8O!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F397acef6-9417-411b-af6b-57f826f13422_1536x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!kR8O!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F397acef6-9417-411b-af6b-57f826f13422_1536x1024.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!kR8O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F397acef6-9417-411b-af6b-57f826f13422_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/397acef6-9417-411b-af6b-57f826f13422_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2965034,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://ringmast4r.substack.com/i/209892801?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F397acef6-9417-411b-af6b-57f826f13422_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!kR8O!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F397acef6-9417-411b-af6b-57f826f13422_1536x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!kR8O!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F397acef6-9417-411b-af6b-57f826f13422_1536x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!kR8O!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F397acef6-9417-411b-af6b-57f826f13422_1536x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!kR8O!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F397acef6-9417-411b-af6b-57f826f13422_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>The Carrier That Committed Everything</strong></h2><p>Viva Dominicana is one of the Dominican Republic&#8217;s major telecommunications carriers. Millions of subscribers. Television services. Mobile. Internet. The kind of company that handles the communications infrastructure a country depends on.</p><p>Their main website at <code>viva.com.do</code> had a <code>.git</code> directory accessible via HTTP. Not just the config file &#8212; the entire pack file. 422 megabytes. 15,687 files in the index. Thirteen commits spanning April 2020 to January 2021. Fully clonable via dumb HTTP protocol.</p><p>Inside: WordPress 4.9.7 (released 2018, ancient by any standard, riddled with known CVEs), database credentials, complete authentication keys and salts, four SQL database backup files, seven WordPress admin user accounts with Gravatar hashes, and evidence of an active compromise &#8212; a crypto spam post injected by one of those user accounts.</p><p>And that was just the main domain. The same <code>.git</code> exposure replicated across <code>recargas.viva.com.do</code> and <code>wsapp.viva.com.do</code>. Their internal GitLab instance at <code>gitlab.viva.com.do</code> was live with public projects visible. And <code>servicekit.viva.com.do</code> was running ManageEngine ServiceDesk Plus version 9.3 &#8212; a 2016-era build with multiple known pre-authentication remote code execution vulnerabilities.</p><p><strong>Update (March 2026):</strong> The <code>.git</code> exposure at <code>viva.com.do</code> remains live. A second scan confirmed the internal GitLab URLs are still visible in the git config, pointing to three internal repositories: <code>viva-apps/web-viva.git</code>, <code>viva-apps/helpdesk.git</code>, and <code>viva-apps/web-channel.git</code>.</p><div><hr></div><h2><strong>The Database Credentials</strong></h2><p>The git repository contained a backup of <code>wp-config.php</code> with production MySQL credentials:</p><ul><li><p>Database: [REDACTED]</p></li><li><p>Username: [REDACTED]</p></li><li><p>Password: [REDACTED]</p></li></ul><p>Plus the complete WordPress authentication key and salt set &#8212; eight cryptographic values that control session security. With these values, an attacker can forge valid WordPress authentication cookies for any user account without knowing their password.</p><p>Four SQL database dumps from 2017 were committed to the repository, containing the full WordPress database at two different points in time. User tables, post content, configuration data &#8212; all recoverable from git history.</p><div><hr></div><h2><strong>Seven Admin Users Exposed</strong></h2><p>WordPress user enumeration via the REST API revealed seven accounts with full Gravatar hashes:</p><ul><li><p>Efrain Castillo (ecastillo) &#8212; ID 20</p></li><li><p>logandosec &#8212; ID 18</p></li><li><p>Luis Ogando (logando) &#8212; ID 9</p></li><li><p>Nieves Cespedes (ncespedes) &#8212; ID 11</p></li><li><p>Pamela Santos (pamela-santos) &#8212; ID 22</p></li><li><p>patrick &#8212; ID 12</p></li><li><p>rgarcia &#8212; ID 19</p></li></ul><p>One of these accounts &#8212; Efrain Castillo, ID 20 &#8212; was associated with a crypto spam post injected into the site. This is a strong indicator of account compromise, likely through credential stuffing or brute force against the exposed WordPress installation.</p><div><hr></div><h2><strong>The ManageEngine Problem</strong></h2><p>ManageEngine ServiceDesk Plus at <code>servicekit.viva.com.do</code> returned version 9.3, build 9300 &#8212; approximately from 2016. This version predates multiple critical security patches including pre-authentication remote code execution vulnerabilities.</p><p>Exposed endpoints confirmed the service is actively running: <code>/SetUpWizard.do</code>, <code>/servlet/AJaxServlet</code>, <code>/api/v3/requests</code>, <code>/WOListView.do</code>, <code>/ViewRequest.do</code> &#8212; all returning HTTP 200.</p><p>A telecom company&#8217;s IT service management platform, running a decade-old version with known RCE vulnerabilities, accessible from the internet.</p><div><hr></div><h2><strong>Every Police Station in the Country</strong></h2><p>Separate from the Viva findings, the Dominican Republic&#8217;s National Statistics Office operates a GeoServer at <code>portalgeoestadistico-geo.one.gob.do</code>. It runs GeoNode 4.0.0 with Web Feature Service (WFS) enabled. No authentication. Access constraints: NONE. The GeoServer title was still configured as &#8220;example.com&#8221; &#8212; the default placeholder.</p><p>Twenty-eight WFS layers were dumped, totaling 433 MB of GeoJSON:</p><p><strong>Security infrastructure:</strong></p><ul><li><p><strong>1,003 police, military, and security institution GPS locations</strong></p></li><li><p><strong>2,470 government office locations</strong></p></li><li><p><strong>24 embassy and consulate locations</strong></p></li><li><p><strong>246 emergency/relief institutions</strong></p></li></ul><p><strong>National infrastructure:</strong></p><ul><li><p><strong>7,237 schools</strong> with GPS coordinates</p></li><li><p><strong>10,000+ religious institutions</strong></p></li><li><p><strong>7 international airports</strong></p></li><li><p><strong>10,000+ roads and highways</strong></p></li><li><p><strong>7,873 waterways</strong></p></li></ul><p><strong>Administrative boundaries:</strong></p><ul><li><p>32 provinces (complete polygon data, 55 MB)</p></li><li><p>986 municipalities</p></li><li><p>1,004 districts</p></li><li><p>1,608 census sections (179 MB)</p></li></ul><p>The security institution layer is the most sensitive &#8212; precise GPS coordinates for every police station, military installation, and security facility in the Dominican Republic. Combined with the administrative boundary data, this enables complete mapping of the country&#8217;s security infrastructure.</p><div><hr></div><h2><strong>The Car Rental With Everything Exposed</strong></h2><p><code>autodominicana.rent</code> &#8212; a car rental platform &#8212; had its production <code>.env</code> file publicly accessible. The full inventory:</p><ul><li><p>MySQL database credentials (host, username, password, database name)</p></li><li><p>Laravel APP_KEY (enables session forging and potential RCE)</p></li><li><p>Twilio SMS credentials (SID, token, phone number, messaging SID &#8212; active SMS sending capability)</p></li><li><p>RentProg API token</p></li></ul><p>Additionally, a 517 MB Laravel debug log at <code>/storage/logs/laravel.log</code> was publicly downloadable &#8212; containing server paths, error traces, and application state.</p><p>A small car rental company with more exposed secrets than most of the government sites scanned.</p><div><hr></div><h2><strong>Phase 2: The Universities</strong></h2><p><em>Added March 2026</em></p><p>Phase 1 covered 1,340 domains &#8212; government, telecom, and private sector. But the Dominican Republic has 40+ universities, and the education sector tells a different story than the hardened <code>.gob.do</code> domains.</p><p>Using certificate transparency log harvesting (THOT), we discovered 1,522 <code>.edu.do</code> domains. Combined with 43 curated university targets, 1,192 additional <code>.do</code> domains, and 36 bank domains, the total scan scope expanded to <strong>4,129+ domains across 7 custom scripts</strong>.</p><h3><strong>phpMyAdmin on Three Subdomains</strong></h3><p>Universidad Dominicana O&amp;M (<code>uod.edu.do</code>) has phpMyAdmin v5.2.1 accessible on the internet &#8212; not on one subdomain, but three: the main site, the admissions system, and the academic system. Three database admin panels protecting student records, grades, and PII, sitting behind nothing but a login form.</p><h3><strong>A University Running PHP From a Test Directory</strong></h3><p>UCATECI (<code>ucateci.edu.do</code>) left <code>info.php</code> accessible &#8212; a 142KB full phpinfo dump. It revealed PHP 7.4.33 (end of life since November 2022, no security patches), Apache 2.4.52, the admin&#8217;s email address, and a document root of <code>/var/www/html/prueba</code>. &#8220;Prueba&#8221; is Spanish for &#8220;test.&#8221; A production university website served from a test directory running end-of-life PHP.</p><h3><strong>The .git That Reveals the Server</strong></h3><p>UAFAM&#8217;s virtual learning platform (<code>virtual.uafam.edu.do</code>) had its <code>.git</code> directory exposed. The HEAD file pointed to <code>MOODLE_405_STABLE</code>. The config revealed it was cloned from GitHub&#8217;s Moodle repository. The packed-refs file was 57KB &#8212; every Moodle version tag from 1.0 to 5.0. The git logs revealed the server hostname (<code>uafam-moodle-1</code>), that it was deployed by root, and the exact clone date: May 1, 2025.</p><h3><strong>WordPress Users Across 14 Universities</strong></h3><p>The WordPress REST API user enumeration endpoint (<code>/wp-json/wp/v2/users</code>) was open on 14 universities, yielding approximately 30 user accounts. But the interesting finding was a supply chain pattern: the accounts <code>rsweb</code> and <code>rssolucionesweb</code> appeared on both UFHEC and UNIREMHOS. Rodriguez Santos Soluciones Web &#8212; a single web development company &#8212; manages both university websites. One compromised developer, two compromised universities.</p><h3><strong>The Library That Published Its API Blueprint</strong></h3><p>ISFODOSU&#8217;s library system (<code>biblioteca.isfodosu.edu.do</code>) runs Koha version 23.0503000 and had its complete REST API Swagger specification publicly accessible &#8212; 474KB documenting every API endpoint: patron management, checkouts, holds, items, acquisitions, reports, cash registers, and transfer limits. A complete blueprint for anyone wanting to interact with the library&#8217;s backend.</p><h3><strong>FortiGate VPN and Tomcat SSO</strong></h3><p>Two universities (UNAPEC and UCATECI) exposed FortiGate SSL VPN login portals. UNAPEC&#8217;s SSO system runs Apache Tomcat 8.5.57 &#8212; outdated with multiple known CVEs. UNPHU runs a REDCap instance (research data collection) where the API responds with &#8220;you do not have permissions&#8221; &#8212; confirming it exists and needs only a valid token.</p><h3><strong>The Banks Are Fine</strong></h3><p>In contrast to everything above, the banking sector assessment was clean. All 36 Dominican Republic financial institutions &#8212; BanReservas, Banco Popular, BHD, Scotiabank, Promerica, Banesco, APAP, and 29 others &#8212; returned zero exploitable findings. CloudFront, Incapsula/Imperva WAFs, properly configured responses. The banks have invested in security. The universities have not.</p><div><hr></div><h2><strong>The Scan Scope</strong></h2><p>Phase 1: 1,340 domains scanned (February 2026) &#8212; government, military, banking, media, education, healthcare, commerce. Eight organizations returned findings.</p><p>Phase 2: 2,789+ additional domains scanned (March 2026) &#8212; universities, education regulators, banking sector deep dive, full <code>.do</code> TLD sweep. Fourteen new findings across the education sector. Banking sector confirmed clean.</p><p><strong>Total: 4,129+ domains. 22 organizations with findings. All remain live as of March 7, 2026.</strong></p><p>The findings paint a three-tier picture:</p><ul><li><p><strong>Government and banking:</strong> Hardened. WAFs, clean scans, minimal exposure.</p></li><li><p><strong>Telecom (Viva Dominicana):</strong> Catastrophic. Systemic failures across the entire organization, still unpatched a month after initial discovery.</p></li><li><p><strong>Universities:</strong> Broadly vulnerable. phpMyAdmin panels, EOL software, exposed APIs, supply chain dependencies on small web shops.</p></li></ul>
      <p>
          <a href="/__u/ringmast4r.substack.com/p/422-megabytes-of-telecom-how-the">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[86,578 National ID Cards on an Open Web Server: How Haiti's Government Exposed an Entire Country's Identity System, a Police Domain to Scammers, and a Tax System to Remote Code Execution — All Without]]></title><description><![CDATA[No Hacking. No Exploits. No Logins. Just Open-Source Intelligence. 40+ Government Domains Probed. 2,712 Files Downloaded. 688 Megabytes.]]></description><link>https://ringmast4r.substack.com/p/86578-national-id-cards-on-an-open-c13</link><guid isPermaLink="false">https://ringmast4r.substack.com/p/86578-national-id-cards-on-an-open-c13</guid><dc:creator><![CDATA[Patrick Quirk]]></dc:creator><pubDate>Wed, 05 Aug 2026 07:16:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!KpOD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b0816bc-5682-49b4-a1de-1108ff2b878f_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>86,578 National ID Records With Chip Serial Numbers. 3,232 Citizens&#8217; Names and Phone Numbers. 351 Tax IDs. $120,785 in Donor Financial Records. 25 WordPress Admin Accounts Across 12 Sites. 11 Gravatar Emails Cracked Offline. 22 Unauthenticated SOAP Operations on the National Tax System. 11 cPanel Admin Panels. An Exchange Server With Basic Authentication Facing the Internet. A Police Domain Serving a Gambling Scam. MySQL Database Credentials in a Publicly Served Configuration File. 159 Email Addresses. 685 Named Government Officials. 233 Government Documents Parsed. All Publicly Accessible. Zero Credentials Used.</strong></p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!KpOD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b0816bc-5682-49b4-a1de-1108ff2b878f_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!KpOD!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b0816bc-5682-49b4-a1de-1108ff2b878f_1536x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!KpOD!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b0816bc-5682-49b4-a1de-1108ff2b878f_1536x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!KpOD!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b0816bc-5682-49b4-a1de-1108ff2b878f_1536x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!KpOD!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b0816bc-5682-49b4-a1de-1108ff2b878f_1536x1024.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!KpOD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b0816bc-5682-49b4-a1de-1108ff2b878f_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7b0816bc-5682-49b4-a1de-1108ff2b878f_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2349175,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://ringmast4r.substack.com/i/209892130?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b0816bc-5682-49b4-a1de-1108ff2b878f_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!KpOD!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b0816bc-5682-49b4-a1de-1108ff2b878f_1536x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!KpOD!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b0816bc-5682-49b4-a1de-1108ff2b878f_1536x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!KpOD!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b0816bc-5682-49b4-a1de-1108ff2b878f_1536x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!KpOD!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b0816bc-5682-49b4-a1de-1108ff2b878f_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Everything in this report was found using open-source intelligence. No passwords were guessed. No logins were bypassed. No exploits were used. Every piece of data described below was publicly accessible &#8212; served openly on the internet, visible to anyone with a browser, a URL bar, or a basic understanding of how WordPress REST APIs and IIS directory listings work. This was not a hack. It was a search.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://ringmast4r.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ringmast4r is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>40+ Haitian government domains under the .gouv.ht top-level domain were probed over three days using standard HTTP requests to publicly accessible endpoints: WordPress REST APIs, sensitive path checks, IIS directory traversal, SOAP web service discovery, Exchange server fingerprinting, cPanel enumeration, and DNS record queries. No authentication was required at any point. No credentials were tested against live systems. Gravatar hash reversal was performed entirely offline. Document parsing was performed locally on already-downloaded files.</p><p>What came back was not a collection of isolated misconfigurations. It was a portrait of a government with no centralized cybersecurity posture &#8212; no patch management, no access control policies, no monitoring, no incident response. Every branch of government exposed something. The national ID office exposed 86,578 citizens. The customs authority exposed an Exchange server and 3,232 phone numbers. The police lost their domain to a scam operation. The municipal tax system has three known remote code execution vulnerabilities with confirmed active exploit endpoints. And a Ministry of Interior configuration file has been serving database credentials to anyone who asks.</p><p>These are the findings.</p><div><hr></div><h2><strong>86,578 Citizens in a CSV File</strong></h2><p>Haiti&#8217;s Office National d&#8217;Identification &#8212; the agency responsible for issuing national identity cards &#8212; uploaded a CSV file to its WordPress media library in July 2024. The file contains <strong>86,578 rows</strong> of national ID card records. It has been publicly downloadable ever since.</p><p>Each record contains: the citizen&#8217;s full name, date of birth, national ID document number, chip serial number, gender, place of birth down to the commune level, residence location, marital status, nationality, and the employee IDs of the government workers who handled the card.</p><p>The chip serial numbers are the most dangerous field. Haiti&#8217;s national ID cards use embedded chips for authentication &#8212; the same technology used in e-passports. A chip serial number paired with the cardholder&#8217;s biographical data is the starting point for physical card cloning. Eighty-six thousand chip serials sitting in a CSV file on a WordPress server means the technical prerequisites for cloning nearly ninety thousand identity documents are one download away.</p><p>The file is 20.4 megabytes. Only a six-line sample was downloaded for this investigation. The full file remains accessible.</p><p>The same site runs LayerSlider version 6.11.1 &#8212; a WordPress plugin with CVE-2024-2879, a CVSS 9.8 unauthenticated SQL injection vulnerability. If someone with worse intentions finds the CSV file and also finds the SQL injection, the attack surface is not just the CSV &#8212; it is the entire WordPress database, which may contain additional records, user credentials, and site administration access.</p><div><hr></div><h2><strong>The Police Domain That Serves a Scam</strong></h2><p>Haiti&#8217;s National Police &#8212; the Police Nationale d&#8217;Haiti &#8212; operates the domain <code>pnh.gouv.ht</code>. Or it used to. The domain now resolves to IP address 193.203.165.231 and serves a page titled &#8220;Cash Rocket | smocup-cashads.&#8221; The SSL certificate is issued for <code>cashads.smocup.site</code> &#8212; not pnh.gouv.ht. The session cookie is named <code>smocup_cashads_session</code>. The login panel reads &#8220;smocup-cashads Login Panel.&#8221; The about page says &#8220;Work with us to play the game &amp; Earning.&#8221;</p><p>The Haitian National Police&#8217;s official website has been hijacked and is serving a gambling and advertising scam.</p><p>This is either DNS hijacking, domain expiration takeover, or hosting account compromise. A git repository is present on the server &#8212; <code>/.git/HEAD</code> returns 403 &#8212; suggesting the scam operator deployed their own Laravel application. The framework, the session handling, the template structure &#8212; none of it has anything to do with the Haitian police. Someone took the domain and stood up a scam platform on it.</p><p>Any Haitian citizen navigating to their national police website &#8212; to report a crime, look up a contact number, find a precinct address &#8212; is served a scam instead. In a country where institutional trust is already fragile, the government&#8217;s inability to maintain control of its own police domain is not just a technical failure. It is a visible, public symbol that no one is minding the store.</p><div><hr></div><h2><strong>A Tax System With Three Remote Code Execution Vulnerabilities</strong></h2><p>CIVITAX is Haiti&#8217;s integrated municipal tax and budget system. It manages property tax billing, census questionnaires, municipal budgets, and imports from the national tax authority. It runs on IIS 10.0 with ASP.NET 4.0 and uses Telerik UI version 2013.3.1015.40 &#8212; a component library released over a decade ago with three independently documented remote code execution vulnerabilities.</p><p>CVE-2019-18935 &#8212; insecure deserialization in RadAsyncUpload. CVSS 9.8. Unauthenticated remote code execution via a .NET mixed-mode assembly. This CVE is on CISA&#8217;s Known Exploited Vulnerabilities catalog. Public exploit tools exist. The handler that serves this vulnerability &#8212; <code>Telerik.Web.UI.WebResource.axd?type=rau</code> &#8212; was tested and returned: &#8220;RadAsyncUpload handler is registered succesfully.&#8221; It is active.</p><p>CVE-2017-9248 &#8212; cryptographic weakness in DialogHandler.aspx. CVSS 9.8. Allows recovery of the Telerik encryption key, enabling arbitrary file upload. The handler &#8212; <code>Telerik.Web.UI.DialogHandler.aspx</code> &#8212; returns 200 OK with a functional page. It is active.</p><p>CVE-2017-11317 &#8212; unrestricted file upload via RadAsyncUpload. CVSS 9.8. Arbitrary file write through weak encryption. Same handler as CVE-2019-18935.</p><p>Both confirmed-active handlers are the exact entry points for these exploits. Public tools &#8212; dp_crypto for key recovery, ysoserial.net for deserialization payloads &#8212; are freely downloadable. The Telerik version is over a decade old and uses default encryption keys that are published in every proof-of-concept write-up on the internet.</p><p>But the Telerik vulnerabilities are only the beginning of what CIVITAX exposes. The entire application tree is visible through IIS directory listing &#8212; every folder, every file, every page. The security administration section contains user management, password change, group rights, and role assignment pages. The budget section has 27 pages. The census section, the taxpayer section, the property records section &#8212; all enumerable. The reports page and statistics page load without authentication.</p><p>Two RAR archives were publicly downloadable from the same server. They contained server-side VB.NET source code &#8212; not data, but the actual backend logic for the census questionnaire system and the property tax billing system. The source code reveals the database credential encryption pattern &#8212; the function name, the configuration key names, the parameter structure &#8212; everything an attacker would need to understand how the application retrieves its database password. The developer framework &#8212; SolutionsHT &#8212; is the same company that built the Ministry of Planning&#8217;s website, confirming a shared codebase pattern across government systems.</p><p>A SOAP web service on the same server exposes 22 operations callable via HTTP GET without authentication. The operations include disaster evaluation data, HIV/AIDS impact assessments, property and occupant information, map visit data with photos, and task management functions. The WSDL &#8212; the full service definition &#8212; is 79 kilobytes. Several operations reference stored procedures that no longer exist in the database, returning errors. The service itself is live and responding.</p><p>The system was last modified on February 24, 2026. It is actively used. The login page has no CAPTCHA, no rate limiting, and no visible two-factor authentication.</p><div><hr></div><h2><strong>An Exchange Server Open to the World</strong></h2><p>Haiti&#8217;s customs authority &#8212; the Direction Generale des Douanes &#8212; operates an Exchange 2016 server at <code>agdmail.douane.gouv.ht</code>. All eight standard Exchange remote access endpoints are exposed to the public internet.</p><p>ActiveSync accepts Basic Authentication &#8212; credentials encoded in base64 and transmitted in HTTP headers. RPC/HTTP Proxy accepts both Basic and NTLM authentication. The Exchange Control Panel &#8212; the full administrative console &#8212; responds to requests. Exchange Web Services, MAPI/HTTP, the Offline Address Book, and even the remote PowerShell management endpoint are all reachable from any IP address on the internet.</p><p>Basic Authentication on ActiveSync and RPC means that any network position between the user and the server &#8212; an ISP, a compromised Wi-Fi hotspot, a man-in-the-middle at any point along the path &#8212; can read the credentials in transit. They are not encrypted at the application layer. They are base64-encoded, which is a formatting scheme, not an encryption scheme. Anyone with Wireshark can read them.</p><p>The Exchange admin email &#8212; <code>xchgad@douane.gouv.ht</code> &#8212; was recovered from the domain&#8217;s DMARC DNS record. The adjacent web server at 190.115.189.37 runs Apache on Windows with an expired SSL certificate. The customs authority&#8217;s WordPress installation has directory listing enabled, wp-file-manager-pro installed (a plugin with a history of remote code execution), and a debug log that leaked the cPanel username and server path.</p><p>The customs authority handles Haiti&#8217;s international trade &#8212; import declarations, tariff enforcement, SYDONIA system data, customs warehousing. Access to their email infrastructure means access to trade documents, cross-border communications, and internal administrative correspondence.</p><div><hr></div><h2><strong>3,232 People With Phone Numbers</strong></h2><p>The same customs authority uploaded an Excel spreadsheet to its WordPress media library. The file &#8212; <code>Liste-des-candidats-retenus.xlsx</code> &#8212; contains <strong>3,232 rows</strong> of candidate records with last names, first names, sex, phone numbers, and department locations. Every single record has a Haitian mobile phone number. One hundred percent coverage.</p><p>Someone at the customs authority knew this was a problem. A second version of the file was also uploaded &#8212; one with the phone number column removed. The existence of the redacted version confirms the phone list was recognized as sensitive. Both versions remain publicly accessible.</p><p>In a country where mobile phones are the primary communication channel and where phone-based social engineering is a known vector for fraud and extortion, a verified government list linking 3,232 names to their phone numbers is not a minor oversight. It is a targeting database.</p><div><hr></div><h2><strong>$120,785 in Donor Records From the Prime Minister&#8217;s Office</strong></h2><p>The Office of the Prime Minister runs a WordPress site with the GiveWP donation plugin. The plugin&#8217;s REST API endpoints &#8212; <code>/givewp/v3/donors</code> and <code>/givewp/v3/donations</code> &#8212; return data without requiring authentication.</p><p>Sixty-five donor records were returned from the bulk endpoint. Sixteen more were discovered through sequential ID enumeration &#8212; donors who don&#8217;t appear in the paginated list but respond to direct ID queries. Eighty-two donation records were returned, totaling <strong>$120,785 USD</strong> across four campaigns.</p><p>The largest single donation is $100,000 from a donor identified as MOMA EL MOCTAR. The donor API truncates names to initials &#8212; but the campaign comments endpoint does not. The comments at <code>/givewp/v3/campaigns/12/comments</code> return full last names and Gravatar SHA256 hashes. MOMA EL MOCTAR. Abdalla IBRAHIM. FODOUOP JAHSWANT. Cem GOKSU. Pedro Mulluni. The full names that the donor API tried to protect are served unprotected by the comments API.</p><p>The sensitive data fields &#8212; email addresses, IP addresses, billing information &#8212; properly return 401 when the <code>includeSensitiveData</code> parameter is set. Someone configured partial access controls. But the names, the donation amounts, the campaign associations, and the Gravatar hashes &#8212; which can be reversed offline to recover email addresses &#8212; are all served without restriction.</p><div><hr></div><h2><strong>351 Tax IDs in Blog Posts</strong></h2><p>The Direction Generale des Impots &#8212; Haiti&#8217;s national tax authority &#8212; publishes organizational NIF numbers directly in blog post content. NIF &#8212; Numero d&#8217;Identification Fiscale &#8212; is Haiti&#8217;s federal tax identification number. Three hundred and fifty-one of them were extracted from post content served by the WordPress REST API.</p><p>Air France. Archives Nationales d&#8217;Haiti. Assembly Center of Haiti. Digicel. Organizations large and small, their tax identification numbers published in government blog posts that were never intended to be a database but function as one when accessed through the API.</p><p>An additional ten NIFs were found in DINEPA procurement documents that were parsed separately, bringing the total to 361 exposed tax identifiers.</p><div><hr></div><h2><strong>MySQL Credentials Served as a Web Page</strong></h2><p>The Ministry of Interior and Territorial Collectivities &#8212; MICT &#8212; has a <code>web.config</code> file on its web server that returns HTTP 200 to any request. The file contains a MySQL connection string with the database name, username, and password in plaintext.</p><p>Database: <code>immigr31_wordpress300</code>. Username: <code>immigr31_admict</code>. Password: <code>admictpassweb</code>. Provider: MySql.Data.MySqlClient. The cPanel username &#8212; <code>immigr31</code> &#8212; is derived from the database prefix and confirmed by the server path <code>/home/immigr31/public_html/</code>.</p><p>The MySQL server binds to localhost, so the credentials cannot be used for remote database access directly. But combined with the cPanel login page accessible at port 2083 and the hosting provider identified as InMotion Hosting, the credentials enable targeted attacks against the hosting account &#8212; phpMyAdmin access through cPanel, password reuse testing, and social engineering against the hosting provider&#8217;s support team.</p><p>The WordPress installation itself is broken &#8212; PHP pages return 500 errors &#8212; but static files and directory listings work. Error logs at <code>/error_log</code> (173 kilobytes) are publicly readable. The uploads directory has listing enabled, and 82 government documents &#8212; decrees, disaster response plans, environmental reports spanning 2013 to 2025 &#8212; were downloaded from it.</p><div><hr></div><h2><strong>25 Admin Accounts, 11 Emails Cracked</strong></h2><p>WordPress sites across Haiti&#8217;s government universally expose admin accounts through the REST API at <code>/wp-json/wp/v2/users</code>. No authentication is required. The API returns usernames, display names, and Gravatar avatar hashes.</p><p>Twenty-five admin accounts were enumerated across twelve government WordPress sites &#8212; the Tax Authority, the Ministry of Defense, the Prime Minister&#8217;s Office, the Water Authority, the Central Bank, the National ID Office, the Ministry of Planning, the Ministry of Justice, FAES, OAVCT, and CIAT.</p><p>Gravatar hashes are SHA256 hashes of the user&#8217;s email address, embedded in every API response. They are not encrypted &#8212; they are one-way hashes, but they can be reversed by brute-forcing common email patterns against the hash until a match is found. This was done entirely offline using a Python script. No Gravatar servers were contacted. No WordPress servers were queried during cracking.</p><p>Eleven of twenty-four hashes were cracked &#8212; a 46% success rate. The recovered emails reveal a pattern: Haitian government workers overwhelmingly use personal free email services for WordPress administration. Yahoo.fr &#8212; popular in French-speaking countries. Gmail. MSN. Hotmail. The Central Bank showed the best practice, with two of three accounts using corporate @brh.ht email. Everyone else uses personal accounts.</p><p>Two Tax Authority administrators use their personal Gmail addresses as their WordPress display names &#8212; publicly linking their government administrative role to their personal identity. One was identified as Innocent Louinord via his Gravatar profile and Twitter account. The Ministry of Defense left a developer admin account &#8212; username <code>admindev</code> &#8212; in production. OAVCT has a demo theme user whose description reads &#8220;You should delete or modify this user.&#8221; It was not deleted.</p><p>The Ministry of Planning admin (<code>mpce_admin</code>) and CIAT admin (<code>ciat_admin</code>) share an identical Gravatar hash &#8212; the same email address controls both agencies. One person, two ministries, one password.</p><div><hr></div><h2><strong>11 cPanel Panels and No Email Security</strong></h2><p>Eleven cPanel administrative panels were discovered across Haitian government domains, all accessible from the public internet on the standard cPanel ports (2083 for user panel, 2087 for WHM root panel). The Tax Authority. The Prime Minister&#8217;s Office. Professional Training. The Postal Service. Four OREPA regional water offices. Tourism. Foreign Affairs. Public Finances.</p><p>The four OREPA offices &#8212; Nord, Sud, Centre, and Ouest &#8212; all resolve to a single IP address: 192.249.121.88. Four government agencies sharing one server. Compromising any one cPanel account on that server grants access to all four. The parent organization, DINEPA, uses Cloudflare on an entirely different hosting provider &#8212; creating a disconnected security perimeter where the headquarters cannot see or protect its regional offices.</p><p>Email security across .gouv.ht domains is largely nonexistent. The Direction des Finances &#8212; DZF &#8212; has neither SPF nor DMARC records. No mechanism of any kind prevents anyone from sending emails that appear to originate from @dzf.gouv.ht. Five more domains &#8212; Foreign Affairs, Professional Training, the Postal Service, UTE, and Tourism &#8212; have SPF softfail records but no DMARC, meaning spoofed emails may generate warnings but are still delivered. The customs authority&#8217;s DMARC record claims a reject policy but sets enforcement to 5% &#8212; meaning 95% of spoofed @douane.gouv.ht emails are delivered normally.</p><p>In a country where the National Police domain has been hijacked and serves a scam, the inability to authenticate government email creates a parallel vector. An attacker who cannot take over a website can simply send emails from it instead &#8212; and no technical mechanism exists to stop them.</p><div><hr></div><h2><strong>233 Documents, 685 Officials, and a Director General&#8217;s Personal Email</strong></h2><p>Two hundred and thirty-three government documents &#8212; 188 PDFs, 20 Word documents, 6 Excel spreadsheets, and 19 legacy .doc files &#8212; were downloaded from publicly accessible WordPress media libraries and directory listings across six agencies. All were parsed locally using automated PII extraction.</p><p>The parsing returned 10,310 regex matches across all categories. Fifty-nine unique email addresses &#8212; eight from the water authority, five from CTERMPP, contacts from UNICEF, USAID, UNOPS, UNEP, and IOM. Eighty-three named government officials from procurement documents, environmental assessments, and budget reports. Seventeen Haitian phone numbers. Ten additional NIF tax IDs not found in the DGI blog content. One hundred and twenty-eight URLs. One hundred and ninety-five IP addresses.</p><p>The most significant individual finding: the Director General of DINEPA &#8212; Haiti&#8217;s national water authority &#8212; was identified with both his government email (<code>guito.edouard@dinepa.gouv.ht</code>) and his personal Gmail (<code>edouardguito2013@gmail.com</code>). This dual-email pattern &#8212; a personal Gmail alongside an official address &#8212; is endemic across Haitian government. It is the same pattern seen in the WordPress admin accounts, the same pattern that makes Gravatar hash cracking effective, and the same pattern that creates phishing and social engineering vectors against senior officials.</p><p>Separately, 1,365 images from government websites were scanned for EXIF metadata. Twenty-six contained author metadata &#8212; photographer names embedded in the image files. Zero contained GPS coordinates.</p><div><hr></div><h2><strong>What This Means</strong></h2><p>Haiti was the eleventh country scanned in this series. The findings are not the largest by volume &#8212; Mexico&#8217;s 186 million records across 177 agencies holds that distinction. But Haiti&#8217;s exposure is distinguished by its breadth relative to the size of the government, the severity of individual findings, and the complete absence of any security infrastructure.</p><p>Every branch of government contributed to the exposure. Interior leaked database credentials. Defense leaked a dev admin account and military candidate lists. The Prime Minister&#8217;s Office leaked donor finances. The Tax Authority leaked 351 tax IDs and admin emails. The Water Authority leaked 74 email addresses and a Director General&#8217;s personal account. The Central Bank leaked three admin emails. The National ID Office leaked 86,578 citizens&#8217; identity documents with chip serials. The Customs Authority leaked an Exchange server, 3,232 phone numbers, and an expired SSL certificate. The Police lost their domain entirely. The municipal tax system has confirmed remote code execution endpoints. The Telecom Regulator runs a CMS that reached end of life in January 2025 on a PHP version that reached end of life in December 2018. The Environment Ministry runs a CMS from 2018 with the admin panel open to the internet.</p><p>There is no centralized security team. There is no patch management. There is no monitoring. There is no WAF. There is no DMARC enforcement. There is no vulnerability disclosure program. There is no evidence that any of these exposures has been detected by the organizations responsible for them.</p><p>The 86,578 national ID records have been publicly downloadable since July 2024 &#8212; eight months before this investigation. The police domain is actively serving a scam. The CIVITAX Telerik handlers are responding to requests right now. The Exchange server is accepting Basic Authentication connections right now. The MySQL credentials in the MICT web.config have been readable for years.</p><p>This is not a story about a sophisticated attack. This is a story about a government that built its digital infrastructure without security and never went back to add it. The front door was never installed. The locks were never purchased. The alarm was never considered. And the findings documented here &#8212; every credential, every record, every exposed endpoint &#8212; were collected by doing nothing more than visiting publicly accessible URLs and reading what came back.</p><div><hr></div><h2><strong>Methodology</strong></h2><p>This investigation was conducted entirely through open-source intelligence (OSINT) &#8212; the practice of collecting and analyzing information from publicly available sources. The specific techniques used:</p><ul><li><p><strong>Passive domain scanning</strong> &#8212; HTTP requests to publicly accessible web servers to identify exposed configuration files, directory listings, debug logs, and misconfigured services</p></li><li><p><strong>WordPress REST API enumeration</strong> &#8212; Querying <code>/wp-json/wp/v2/users</code>, <code>/posts</code>, <code>/media</code>, and custom post type endpoints on government WordPress installations</p></li><li><p><strong>Gravatar hash reversal</strong> &#8212; Offline SHA256 brute-forcing of common email patterns (gmail.com, yahoo.fr, hotmail.com, gov domain patterns) against hashes extracted from WordPress API responses. No remote servers contacted during cracking</p></li><li><p><strong>IIS directory traversal</strong> &#8212; Navigating publicly enabled directory listings on the CIVITAX municipal tax system to map the application tree</p></li><li><p><strong>SOAP/WSDL discovery</strong> &#8212; Fetching the <code>?WSDL</code> endpoint on CIVITAX&#8217;s MapWebService to enumerate 22 unauthenticated operations</p></li><li><p><strong>Exchange fingerprinting</strong> &#8212; HTTP GET requests to standard Exchange paths (OWA, ECP, EWS, MAPI, ActiveSync, RPC, OAB, PowerShell) to identify authentication methods and build versions</p></li><li><p><strong>cPanel/DNS enumeration</strong> &#8212; HTTP GET to standard cPanel ports (2083, 2087) on government subdomains, plus DNS lookups for SPF and DMARC records</p></li><li><p><strong>Document PII parsing</strong> &#8212; Automated regex-based extraction of email addresses, phone numbers, NIF tax IDs, names, and addresses from 233 previously downloaded government documents. Performed entirely locally</p></li><li><p><strong>EXIF metadata scanning</strong> &#8212; Local extraction of author and GPS metadata from 1,365 previously downloaded government images</p></li></ul><p><strong>What was NOT done:</strong></p><ul><li><p>No passwords were guessed, cracked, or brute-forced against any live system</p></li><li><p>No authentication mechanisms were bypassed</p></li><li><p>No exploits or vulnerabilities were used to gain access</p></li><li><p>No credentials discovered during the investigation were tested against any system</p></li><li><p>No databases were accessed, queried, or connected to</p></li><li><p>No data was modified on any server</p></li><li><p>No social engineering was conducted</p></li><li><p>No private or restricted systems were accessed</p></li><li><p>The MySQL credentials found in MICT&#8217;s web.config were NOT used to connect to any database</p></li><li><p>The Exchange server endpoints were NOT authenticated against &#8212; only their existence and auth type were documented</p></li><li><p>The 86,578-record ONI CSV was NOT fully downloaded &#8212; only a 6-line sample was taken</p></li></ul><p>Every piece of information in this report was available to anyone on the public internet at the time of discovery. The data was not hidden behind a login, a firewall, or any access control. It was served openly, indexed by default, and waiting for someone to look.</p><p><em>Findings from this investigation have been compiled for disclosure to affected organizations through appropriate channels.</em></p><div><hr></div><h2><strong>A Final Word</strong></h2><p>If this had been a hack, the CIVITAX Telerik handlers would not still be responding to health checks. They would have been exploited &#8212; the RadAsyncUpload deserialization chain executed, a web shell uploaded, and the entire municipal tax system&#8217;s database dumped: property records, taxpayer information, census data, billing histories, and the decrypted database credentials whose encryption pattern was already revealed in the downloadable source code. The 22 SOAP operations would have been called with crafted parameters &#8212; not the test values that returned errors about missing stored procedures, but payloads designed to extract disaster evaluation data, HIV impact records, and property occupant information. The IIS server would have been owned within minutes of the first request.</p><p>If this had been a hack, the ONI CSV would not have been sampled at six lines. All 86,578 records would have been downloaded, the chip serial numbers would have been packaged for sale, and the LayerSlider SQL injection would have been used to access the WordPress database for whatever additional data it contains &#8212; admin credentials, user sessions, and any other records stored alongside the identity inventory that someone uploaded to a media library.</p><p>If this had been a hack, the Exchange server would not have been documented from the outside. The Basic Auth on ActiveSync would have been exploited &#8212; a password spray against <code>xchgad@douane.gouv.ht</code> and any other accounts enumerable through the OAB endpoint. Once inside, every customs email, every trade document, every cross-border communication. The adjacent Apache server with the expired SSL certificate would have been the next target &#8212; already on the same network, already confirmed as Windows, already known to have an exposed debug log and a cPanel username.</p><p>If this had been a hack, the MICT MySQL credentials would have been tested within seconds of discovery. The database <code>immigr31_wordpress300</code> would have been accessed through phpMyAdmin on the cPanel panel at port 2083. Every WordPress user, every post, every page, every stored credential &#8212; extracted. The cPanel itself would have been targeted next &#8212; same username, possibly same password, full server access.</p><p>If this had been a hack, the PNH police domain would have been leveraged &#8212; not merely documented. The scam operator&#8217;s infrastructure would have been mapped through the git repository. The Laravel installation would have been probed for vulnerabilities. The domain&#8217;s residual trust would have been weaponized for phishing campaigns targeting Haitian citizens and government officials.</p><p>None of that happened. Every credential was left untouched. Every database was left unqueried. Every vulnerability was left unexploited. Every Telerik handler was left un-chained. The data was documented, the exposure was mapped, and the findings are being disclosed.</p><p>The difference between this investigation and a breach is not capability &#8212; it is intent. Everything documented here could have been weaponized. It was not. But the infrastructure remains as it was found. The ONI CSV is still downloadable. The Telerik handlers are still responding. The Exchange server is still accepting Basic Auth. The police domain is still serving a scam. And the MySQL credentials are still being served as a web page.</p><p>This was a free security audit. The next one won&#8217;t be.</p><div><hr></div><p>=)</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://ringmast4r.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ringmast4r is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[NIST Left Its Git Directory Open. The Config Points to Germany. Federal Contracts Confirm Why.]]></title><description><![CDATA[NIST writes the rules on software supply chain security for the United States government.]]></description><link>https://ringmast4r.substack.com/p/nist-left-its-git-directory-open</link><guid isPermaLink="false">https://ringmast4r.substack.com/p/nist-left-its-git-directory-open</guid><dc:creator><![CDATA[Patrick Quirk]]></dc:creator><pubDate>Wed, 05 Aug 2026 06:57:32 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!QyNs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa06540a2-4eab-49b1-acc2-48d2435987b5_2576x1314.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!QyNs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa06540a2-4eab-49b1-acc2-48d2435987b5_2576x1314.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!QyNs!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa06540a2-4eab-49b1-acc2-48d2435987b5_2576x1314.png 424w, /__u/substackcdn.com/image/fetch/$s_!QyNs!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa06540a2-4eab-49b1-acc2-48d2435987b5_2576x1314.png 848w, /__u/substackcdn.com/image/fetch/$s_!QyNs!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa06540a2-4eab-49b1-acc2-48d2435987b5_2576x1314.png 1272w, /__u/substackcdn.com/image/fetch/$s_!QyNs!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa06540a2-4eab-49b1-acc2-48d2435987b5_2576x1314.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!QyNs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa06540a2-4eab-49b1-acc2-48d2435987b5_2576x1314.png" width="2576" height="1314" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a06540a2-4eab-49b1-acc2-48d2435987b5_2576x1314.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1314,&quot;width&quot;:2576,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:193502,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://ringmast4r.substack.com/i/209890117?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafa96d39-dbfd-41cc-b5e6-4ad90e728405_2576x1385.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!QyNs!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa06540a2-4eab-49b1-acc2-48d2435987b5_2576x1314.png 424w, /__u/substackcdn.com/image/fetch/$s_!QyNs!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa06540a2-4eab-49b1-acc2-48d2435987b5_2576x1314.png 848w, /__u/substackcdn.com/image/fetch/$s_!QyNs!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa06540a2-4eab-49b1-acc2-48d2435987b5_2576x1314.png 1272w, /__u/substackcdn.com/image/fetch/$s_!QyNs!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa06540a2-4eab-49b1-acc2-48d2435987b5_2576x1314.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>NIST writes the rules on software supply chain security for the United States government. Their Secure Software Development Framework, SP 800-218, is the document federal agencies cite when explaining why they require developers to track where their code comes from and who can touch it. Their supply chain risk management guide, SP 800-161, runs 300 pages.</p>
      <p>
          <a href="/__u/ringmast4r.substack.com/p/nist-left-its-git-directory-open">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[The Phones Ad Tech Can't Reach]]></title><description><![CDATA[Which old phones still make a call in 2026, and which escape the ad economy? Of 68 retro phones tested: 48 work in the US, 14 abroad only, 5 dead. Plus Commodore's new flip built out of refusals.]]></description><link>https://ringmast4r.substack.com/p/the-phones-ad-tech-cant-reach</link><guid isPermaLink="false">https://ringmast4r.substack.com/p/the-phones-ad-tech-cant-reach</guid><dc:creator><![CDATA[Patrick Quirk]]></dc:creator><pubDate>Thu, 23 Jul 2026 22:56:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!e7cC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cbb788f-6f4a-4b9e-ab63-557b9830e0f1_3024x4032.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!e7cC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cbb788f-6f4a-4b9e-ab63-557b9830e0f1_3024x4032.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!e7cC!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cbb788f-6f4a-4b9e-ab63-557b9830e0f1_3024x4032.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!e7cC!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cbb788f-6f4a-4b9e-ab63-557b9830e0f1_3024x4032.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!e7cC!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cbb788f-6f4a-4b9e-ab63-557b9830e0f1_3024x4032.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!e7cC!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cbb788f-6f4a-4b9e-ab63-557b9830e0f1_3024x4032.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!e7cC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cbb788f-6f4a-4b9e-ab63-557b9830e0f1_3024x4032.jpeg" width="1456" height="1941" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9cbb788f-6f4a-4b9e-ab63-557b9830e0f1_3024x4032.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1941,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2748039,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://ringmast4r.substack.com/i/208264397?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cbb788f-6f4a-4b9e-ab63-557b9830e0f1_3024x4032.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!e7cC!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cbb788f-6f4a-4b9e-ab63-557b9830e0f1_3024x4032.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!e7cC!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cbb788f-6f4a-4b9e-ab63-557b9830e0f1_3024x4032.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!e7cC!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cbb788f-6f4a-4b9e-ab63-557b9830e0f1_3024x4032.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!e7cC!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cbb788f-6f4a-4b9e-ab63-557b9830e0f1_3024x4032.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>There is a specific fantasy that surfaces every time I document another corner of the ad tech surveillance pipeline (<a href="/__u/ringmast4r.substack.com/p/the-silent-enemy-how-the-ads-on-your">The Silent Enemy</a>): dig the old Razr out of the junk drawer, drop in a SIM, and exit the entire bidstream economy in one afternoon. No apps, no SDKs, no advertising identifier, no real-time bidding auction broadcasting your coordinates to a hundred companies while you check the weather. Just a phone that is a phone.</p><p>It is a good fantasy, and it half works. Whether it works for you comes down to two questions that get conflated constantly. Will an old phone still make a call in 2026? And if it does, is it actually quiet? The first is a network engineering question with a brutal answer. The second is a telemetry question with a worse one.</p><p>So, as usual, I counted. Behind my Phreak Phone Museum project sits a 68-device dataset covering every notable retro and retro-styled handset from the 1983 DynaTAC to this year&#8217;s e-ink minimalists. In July 2026 I ran every record through a 20-agent verification pass against the live web. The census: 48 of the 68 still register with voice service on a major US carrier (a 49th gets a data signal but cannot place a call), 14 survive only overseas, and 5 are dead on every network on Earth. The survivors then split three ways: genuinely minimal stacks, smartphones wearing dumbphone costumes, and one operating system best described as an ad network with a T9 keypad. Which old hardware still runs, and which of it actually escapes ad tech, is the first half of this piece.</p><p>The second half is the newest entrant. Commodore, the brand behind the Commodore 64, is back under new ownership and pre-selling the Callback 8020, a flip phone defined by what it refuses to do. It launched June 30, 2026, and by mid-July its US pre-order counter had reached batch 19. The spec sheet, and the caveats the marketing skips, come after the map of what already survives.</p><h2><strong>The Network Graveyard Made This Market</strong></h2><p>None of this is driven by nostalgia alone. The dumbphone market of 2026 exists because US carriers spent 2017 through 2026 tearing out every network that older phones speak. Carriers retired 2G and 3G to reclaim spectrum for 4G LTE and 5G, and the FCC&#8217;s own consumer guidance is blunt about the consequence: affected phones cannot make or receive calls, including calls to 911 (<a href="https://www.fcc.gov/consumers/guides/plan-ahead-phase-out-3g-cellular-networks-and-service">FCC</a>).</p><p>The sequence, for the record:</p><ul><li><p><strong>January 1, 2017</strong>: AT&amp;T shuts down 2G GSM</p></li><li><p><strong>December 31, 2020</strong>: Verizon stops certifying CDMA devices, the beginning of the end; the network itself kept running (<a href="https://www.verizon.com/business/support/services-and-apps/cdma-network-retire/">Verizon</a>)</p></li><li><p><strong>February 22, 2022</strong>: AT&amp;T shuts down 3G UMTS (<a href="https://www.fcc.gov/consumers/guides/plan-ahead-phase-out-3g-cellular-networks-and-service">FCC</a>)</p></li><li><p><strong>March 31 and June 30, 2022</strong>: T-Mobile retires Sprint&#8217;s 3G CDMA and legacy LTE networks</p></li><li><p><strong>July 1, 2022</strong>: T-Mobile shuts down its own 3G UMTS</p></li><li><p><strong>December 31, 2022</strong>: Verizon retires CDMA entirely, 2G 1xRTT and 3G EV-DO together (<a href="https://www.fcc.gov/consumers/guides/plan-ahead-phase-out-3g-cellular-networks-and-service">FCC</a>; <a href="https://www.verizon.com/business/support/services-and-apps/cdma-network-retire/">Verizon</a>)</p></li><li><p><strong>August 3, 2026</strong>: T-Mobile&#8217;s 2G GSM, the last legacy network standing, finally dies. Announced for April 2024, delayed repeatedly, and as of this writing still carrying legacy IoT traffic for three more weeks (<a href="https://www.t-mobile.com/support/coverage/t-mobile-network-evolution">T-Mobile</a>; <a href="https://www.techtimes.com/articles/319869/20260707/t-mobile-2g-gsm-ends-august-3-iot-operators-face-two-migration-waves-not-one.htm">TechTimes</a>; <a href="https://www.tmonews.com/2023/10/t-mobile-finally-sets-a-date-for-2g-gsm-network-shutdown/">TmoNews</a>)</p></li></ul><p>When the dust settled, a phone in the United States needs three things to function as a phone:</p><ul><li><p><strong>An LTE radio on carrier-appropriate bands.</strong> For the US majors the load-bearing bands are 2, 4, 5, 12, 13, 17, 66, and 71. Imported devices frequently do LTE, just not on these bands.</p></li><li><p><strong>VoLTE support.</strong> Voice no longer rides a separate 2G or 3G fallback; calls are VoIP over LTE. A phone with LTE data but no VoLTE provisioning cannot place a call, 911 included (<a href="https://www.fcc.gov/consumers/guides/plan-ahead-phase-out-3g-cellular-networks-and-service">FCC</a>).</p></li><li><p><strong>IMEI whitelisting</strong>, in practice. Verizon refuses to activate devices not on its certified list even when the radio is technically compatible, and AT&amp;T&#8217;s allowlist quietly rejects working VoLTE hardware: my verification pass found the Nokia 225 4G and 110 4G, the Easyfone Prime-A6, the Balance Phone, and the entire Unihertz Titan line locked out of AT&amp;T despite compatible radios. T-Mobile is the most permissive of the three. The allowlist has quietly killed more dumbphones than any network shutdown.</p></li></ul><p>The practical result is a hardware floor around 2014. In my dataset the oldest devices that still register on a US carrier are the Samsung Galaxy S5 and the iPhone 6, both from that year. Everything older is either a paperweight or an export.</p><h2><strong>The Survivors: What Still Registers in 2026</strong></h2><p>The museum dataset tracks each device by year, form factor, radio, carrier compatibility, features, and how chatty the software is. The July verification pass came back with 84 field-level corrections against the live web, and several of them rewrote this section. The corrected census:</p><ul><li><p><strong>48 devices register with voice service on at least one major US carrier today.</strong> Every single one of the 48 has VoLTE. That is not a coincidence; it is the entry fee. A 49th, the Boox Palma 2 Pro, registers for data only: it has no VoLTE, so it is a phone-shaped device that cannot make a phone call.</p></li><li><p><strong>14 devices are alive overseas only.</strong> The original Razr V3, the original Nokia 3310, even the 1992 Nokia 1011 (the first mass-produced GSM phone) will still make a real call on the 2G networks that remain live abroad: Germany until around 2028, the UK until around 2029, Mexico indefinitely (Telcel and AT&amp;T Mexico have announced no date), much of Latin America, and nearly all of Africa (<a href="https://www.mobileworldlive.com/europe/vodafone-prepares-to-pull-plug-on-german-2g/">Mobile World Live</a>; <a href="https://www.theregister.com/networks/2026/06/23/o2-joins-uk-2g-switch-off-with-summer-2029-start-date/5260297">The Register</a>; <a href="https://www.bnamericas.com/en/features/how-far-is-latin-america-from-shutting-down-2g-and-3g-networks">BNamericas</a>). Southeast Asia is falling off that list in 2026 itself; Vietnam has already completed its 2G phase-out (<a href="https://southeastasiainfra.com/2g-services-to-be-phased-out-in-vietnam-by-2026/">Southeast Asia Infrastructure</a>). Same hardware, dead at home, working abroad. The verification pass grew this class from 9 to 14: it turns out the importers&#8217; graveyard holds not just 2G classics but modern 4G hardware with the wrong bands or failed US certification, including the HMD 2660 Flip, the Nokia 8000 4G, the Xiaomi Qin 2, and the Mudita Pure, whose custom antenna failed AT&amp;T and Verizon certification outright.</p></li><li><p><strong>5 devices are dead everywhere</strong>: the AMPS-era Motorola DynaTAC 8000X and IBM Simon, the iDEN Nextel i1000plus, the Sidekick (whose Danger service died long before its radio did), and the Relay Screenless Phone, killed when its companion service shut down in September 2024. Service death, not radio death, is the modern failure mode. The verification pass actually rescued one device from this list: the BlackBerry Bold 9000 turned out to be quad-band 2G GSM under its 3G radio, so it still registers abroad.</p></li></ul><p>The US survivors cluster into distinct classes, and the differences matter more than the marketing suggests:</p><ul><li><p><strong>KaiOS flips</strong> (Nokia 2780/2760, TCL Flip 4 5G, Alcatel Go Flip 4, the Tracfone flips): modern radios, WhatsApp, and a limited app store. KaiOS is not a clean room; it is an advertising platform wearing a T9 keypad, and the next section is about exactly that.</p></li><li><p><strong>Pure feature-OS phones</strong> (Nokia 225/110 4G, Sunbeam F1 line, Plum Ram Plus, Orbic Journey V): no app ecosystem at all. The Sunbeam devices, built for Plain communities, omit the browser, the store, and in most variants the camera, by design.</p></li><li><p><strong>Minimalist and e-ink devices</strong> (Light Phone II/III, Mudita Kompakt, Punkt MP02/MC02, Minimal Phone): purpose-built digital minimalism hardware, typically at a price premium. Several of these run stripped Android derivatives under the calm exterior, which matters more than their marketing admits.</p></li><li><p><strong>Rugged flips running Android underneath</strong> (Kyocera Dura line, Sonim XP line, CAT S22, Schok Classic): look like dumbphones, run Android. These carry real telemetry exposure despite having no Play Store.</p></li><li><p><strong>QWERTY revivals</strong> (Unihertz Titan family) and <strong>foldable smartphones</strong> (Motorola Razr line, Galaxy Z Flip 6), which borrow the form factor but are full smartphones and belong in a different threat model entirely.</p></li></ul><p>There is also a genuine escape hatch for the truly dead hardware: hobbyists run private GSM base stations (Osmocom OpenBSC, YateBTS) inside Faraday cages to light up vintage phones for display and museum use. Legal only if the RF is fully contained, but it means a StarTAC can still ring in 2026 without asking any carrier&#8217;s permission.</p><h2><strong>Even the Dumb Ones Snitch</strong></h2><p>The verification pass included a telemetry audit of every operating system in the dataset, and the results dismantle the assumption that a keypad means privacy.</p><p><strong>KaiOS is an ad network with a phone attached.</strong> KaiOS Technologies runs KaiAds, which its own launch materials describe as &#8220;the first advertisement SDK and supply-side platform (SSP) designed specifically for smart feature phones,&#8221; passing ad requests to buyers through OpenRTB real-time bidding with OS-level access for sub-200ms ad rendering (<a href="https://www.kaiostech.com/kaios-technologies-launches-kaiads-to-give-advertisers-access-to-new-audiences-and-offer-users-a-better-mobile-experience/">KaiOS Technologies</a>). The ad SDK is effectively mandatory: KaiOS accepts monetized store apps only if they use KaiAds, and the platform keeps 70 percent of ad revenue (<a href="https://kaios.dev/2023/02/kaios-app-monetization/">kaios.dev</a>). The privacy policy sanctions collection of IMEI, IMSI, IP address, usage data, and &#8220;precise location data, including the real-time geographic location of your device,&#8221; shared with &#8220;partners and licensees&#8221; for, among other things, advertising (<a href="https://www.kaiostech.com/privacy-policy-3/">KaiOS privacy policy</a>). Google invested $22 million in KaiOS in 2018 specifically to put Assistant, Maps, YouTube, and Search on these devices (<a href="https://techcrunch.com/2018/06/27/google-kaios/">TechCrunch</a>; <a href="https://9to5google.com/2018/06/27/google-kaios-assistant-investment/">9to5Google</a>). Ten devices in my census run it.</p><p><strong>HMD&#8217;s 4G feature phones phone home daily.</strong> HMD&#8217;s own privacy documentation for data-enabled feature phones lists activation beacons carrying UUID, IMEI, IMSI, and serial number fired at 0, 6, and 24 hours after setup and on every SIM change, plus firmware pings after each boot and daily version telemetry, with no opt-out described (<a href="https://www.hmd.com/en_int/privacy/for-data-enabled-feature-phones">HMD</a>). The data lands on servers in Finland, which is better than most alternatives, but a &#8220;dumb&#8221; Nokia candybar still announces its identity to its manufacturer every day.</p><p><strong>De-Googled Android still pings Google.</strong> The AOSP base under the rugged flips connects to Google infrastructure out of the box: connectivity checks, network time, and most sharply A-GPS SUPL requests that can carry the subscriber&#8217;s IMSI and serving cell to supl.google.com whenever GPS assistance fires (<a href="https://grapheneos.org/faq">GrapheneOS</a>; <a href="https://blog.wirelessmoves.com/2014/08/supl-reveals-my-identity-and-location-to-google.html">WirelessMoves</a>). A phone with no Google account and no Play Store still tells Google who it is and roughly where it is.</p><p><strong>The cheap ones can be actively hostile.</strong> A researcher who intercepted the traffic of five sub-$20 white-label button phones with a private 2G base station found four of them malicious out of the box: a premium-SMS trojan, an SMS-interception backdoor used to register fraudulent messaging accounts on victims&#8217; numbers, and vendor firmware posting IMEI, IMSI, and cell tower location to remote servers (<a href="https://habr.com/en/articles/575626/">Habr, ValdikSS</a>; <a href="https://therecord.media/malware-found-preinstalled-in-classic-push-button-phones-sold-in-russia">The Record</a>). The lesson for the AliExpress dumbphone shopper: the OS has no ad stack, but the firmware supply chain is the threat.</p><p><strong>The quietest stacks are the purpose-built ones.</strong> Sunbeam&#8217;s Plain-community flips and the true feature-OS Nokias have essentially nothing to leak with, and Sailfish OS, the base of both the Jolla phones and the Commodore Callback, carries the best documented posture of any platform I reviewed: no ad identifier, no default telemetry, &#8220;we do not collect any data without your consent&#8221; (<a href="https://blog.jolla.com/important-information-regarding-privacy-handling-personal-data/">Jolla</a>). The honest footnote is that Jolla&#8217;s claims are vendor-asserted; nobody has published an independent packet-capture audit, which is exactly the test the Callback should face when it ships.</p><p><strong>The verification scoreboard says be skeptical by default.</strong> Across the whole privacy-phone market, exactly one de-Googled OS has passed an independent packet-capture audit: /e/OS, the fork sold on Murena phones, which a Trinity College Dublin and University of Edinburgh study found sends no data to Google or third parties, the only OS of six Android variants tested with that result; the same study measured Google Play Services uploading at least 10 times more data than the handset maker&#8217;s own OS on every other phone (<a href="https://www.scss.tcd.ie/doug.leith/Android_privacy_report.pdf">Leith, Android Mobile OS Snooping</a>). The cautionary tales run the other way: the Freedom Phone, sold as an anti-surveillance device, turned out to be a rebadged $119 Umidigi A9 Pro from AliExpress (<a href="https://dailydot.com/freedom-phone-security-issues">Daily Dot</a>; <a href="https://www.xda-developers.com/freedom-phone-overpriced-smartphone/">XDA Developers</a>), and GrapheneOS publicly called Erik Prince&#8217;s UP Phone a &#8220;clear-cut scam,&#8221; citing roughly a year of missing security patches (<a href="https://grapheneos.social/@GrapheneOS/112717896776489472">GrapheneOS</a>; <a href="https://www.howtogeek.com/dont-buy-this-privacy-first-phone-unplugged-up/">How-To Geek</a>). Loud privacy marketing correlates poorly with clean traffic. The only proof that generalizes is a packet capture.</p><h2><strong>The Comeback, Quantified</strong></h2><p>The demand side is real and measurable. Feature phones were roughly 15 percent of global handset sales last year, near 210 million devices, though only about 1.7 million of those sold in North America (<a href="https://www.cnn.com/world/dumphones-feature-phones-spc">CNN</a>). The Light Phone III sells for $699, and its co-founder says half of the company&#8217;s customers now use it as their primary device, up from a product originally pitched as a weekend secondary phone (<a href="https://www.cnn.com/world/dumphones-feature-phones-spc">CNN</a>). Gen Z is the demographic engine, with flip-phone revival content pulling tens of millions of views on TikTok (<a href="https://theconversation.com/gen-z-goes-retro-why-the-younger-generation-is-ditching-smartphones-for-dumb-phones-204992">The Conversation</a>; <a href="https://www.trendhunter.com/protrends/flip-phone-resurgence">Trend Hunter</a>).</p><p>The shape of the demand matters more than the headline number. The mass-market button phone is actually shrinking: US feature phone sales fell 38 percent between 2023 and 2024, and Western Europe dropped 11 percent (<a href="https://counterpointresearch.com/en/insights/us-feature-phone-market">Counterpoint via press</a>). What grows is the deliberate niche: Counterpoint attributes the US resurgence squarely to Gen Z and millennial digital-detox demand, roughly 28 percent of US Gen Z respondents told Morning Consult they were interested in buying a dumbphone (the highest of any generation), Light has shipped over 100,000 devices, and the research literature now treats &#8220;designer dumbphones&#8221; as a distinct engineered product category (<a href="https://counterpointresearch.com/en/insights/us-feature-phone-market">Counterpoint</a>; <a href="https://www.cnn.com/world/dumphones-feature-phones-spc">CNN</a>). Even the incumbents are hedging: HMD shipped a Detox Mode on its Android Skyline that blocks 14 app categories on a timer, though The Register&#8217;s hands-on found the blocked social networks remained reachable through the browser, which makes it a distraction limiter rather than anything ad tech needs to worry about (<a href="https://www.theregister.com/2024/10/17/hmd_skyline_digital_detox/">The Register</a>).</p><p>Regulation is the tailwind nobody prices in. Australia&#8217;s under-16 social media ban took force December 10, 2025, and enforcement is tightening: regulators found roughly 70 percent of under-16s with accounts still active three months in, and Australia moved to double maximum fines to AU$99 million (<a href="https://www.aljazeera.com/news/2026/6/27/australia-to-double-fines-on-big-tech-as-children-bypass-social-media-ban">Al Jazeera</a>). The UK followed on June 15, 2026, announcing that TikTok, Instagram, Snapchat, YouTube, Facebook, and X will be barred from serving under-16s, with the ban in force by Spring 2027 (<a href="https://www.gov.uk/government/news/social-media-to-be-banned-for-under-16s-in-landmark-government-move-to-givekids-their-childhood-back">GOV.UK</a>). Keep those two regimes in mind for the Callback section below: the app list Commodore blocks at the operating system level mirrors them exactly. It is compliant-by-construction hardware for a market that legislation is about to create.</p><p>The health research gives the trend a spine. A randomized controlled trial published in PNAS Nexus in February 2025 blocked mobile internet on participants&#8217; smartphones for two weeks and measured improved sustained attention, mental health, and subjective well-being, with 91 percent of participants improving on at least one outcome (<a href="https://academic.oup.com/pnasnexus/article/4/2/pgaf017/8016017">PNAS Nexus</a>; <a href="https://medicalxpress.com/news/2025-02-smartphones-benefits.html">Medical Xpress</a>; <a href="https://www.news-medical.net/news/20250219/Blocking-mobile-internet-for-two-weeks-improves-mental-health-and-well-being.aspx">News-Medical</a>). Commodore cites that exact study in its own FAQ (<a href="https://commodore.net/store/callback-8020/">Commodore store</a>).</p><h2><strong>Callback 8020, Read as a Spec Sheet</strong></h2><p>Commodore opened pre-orders on June 30, 2026 for a phone defined by what it refuses to do: no web browser, no social media apps, no Google services, no advertising identifier, no RCS, no NFC, and no 5G (<a href="https://www.prnewswire.com/news-releases/commodore-announces-callback-8020-the-mobile-phone-that-helps-you-disconnect-302802444.html">PR Newswire</a>; <a href="https://www.tomshardware.com/phones/commodore-announces-linux-based-flip-phone-with-no-social-media-no-browser-the-callback-8020-will-be-available-in-five-retro-colorways-starting-at-usd499-runs-99-percent-of-android-apps">Tom&#8217;s Hardware</a>; <a href="https://www.gsmarena.com/commodore_announces_callback_8020_the_mobile_phone_between_dumb_and_smart-news-73304.php">GSMArena</a>).</p><p>Two weeks later, on July 14, the US order counter on Commodore&#8217;s store sat at Batch 19, with 409 of 500 units remaining and the first batch estimated to ship September to October (<a href="https://commodore.net/store/callback-8020/">Commodore store</a>). Commodore does not publish the size of earlier batches, so treat this as an estimate, but if they held anywhere near the current 500, that is on the order of 9,000 phones pre-sold in 14 days, at $399 and up, for a flip phone whose headline feature is subtraction. That counter is the sharpest data point yet for the market the previous section quantified: phones the mobile advertising economy structurally cannot monetize are selling out in batches.</p><p>Strip the nostalgia branding and the Callback 8020 is a technically interesting object. It is not an Android phone. It runs Sailfish OS, a de-Googled Linux-based operating system, with Android apps executing inside a sandboxed AppSupport environment that Commodore claims covers over 99 percent of apps (<a href="https://www.gsmarena.com/commodore_announces_callback_8020_the_mobile_phone_between_dumb_and_smart-news-73304.php">GSMArena</a>; <a href="https://www.androidcentral.com/phones/commodore-is-back-with-a-de-googled-feature-phone-for-the-anti-doomscrolling-crowd">Android Central</a>; <a href="https://commodore.net/store/callback-8020/">Commodore store</a>).</p><p>The blocking is the product. All web browsers and a fixed list of social apps are blocked at the system level using what Commodore describes as patent-pending tech, and the blocks cannot be turned off (<a href="https://commodore.net/store/callback-8020/">Commodore store</a>). The blocked list tracks the apps named in Australia&#8217;s under-16 restrictions: Facebook, Instagram, Snapchat, Threads, TikTok, X, YouTube, Reddit, Kick, and Twitch, with Discord, Roblox, and Tumblr added &#8220;by popular demand&#8221; (<a href="https://commodore.net/store/callback-8020/">Commodore store</a>). Everything else can be sideloaded from APK files.</p><p>From the ad tech side, the interesting engineering decisions are the refusals, each of which closes a specific tracking surface:</p><ul><li><p><strong>No Google Play Services</strong> means no Google Advertising ID, the primary join key of the mobile ad economy (<a href="https://www.androidcentral.com/phones/commodore-is-back-with-a-de-googled-feature-phone-for-the-anti-doomscrolling-crowd">Android Central</a>).</p></li><li><p><strong>No browsers at all</strong> means no cookies, no fingerprinting surface, no real-time ad auctions. Commodore&#8217;s FAQ is explicit that the browser is blocked because it is &#8220;the back door&#8221; to everything else (<a href="https://commodore.net/store/callback-8020/">Commodore store</a>).</p></li><li><p><strong>No RCS</strong>, because RCS routes messages through Google&#8217;s servers; SMS, MMS, and WhatsApp are the supported paths (<a href="https://commodore.net/store/callback-8020/">Commodore store</a>).</p></li><li><p><strong>No NFC and no big-tech payment apps</strong>, which severs the purchase graph. Their FAQ names the reason: financial apps &#8220;that insist on running your banking information and personal data through big tech company servers, who know what you bought at midnight last Tuesday&#8221; (<a href="https://commodore.net/store/callback-8020/">Commodore store</a>).</p></li><li><p><strong>No AI by default</strong>, on both the OS and the preload list (<a href="https://commodore.net/store/callback-8020/">Commodore store</a>).</p></li></ul><p>The hardware itself is a competent mid-range feature phone: MediaTek Helio G81, 4GB RAM, 64GB storage plus microSD, a 48MP Sony camera, a 1550mAh quick-swap removable battery, dual physical SIM slots with no eSIM, FM radio, IP44 splash resistance, and a touchscreen that ships disabled by default in favor of the keypad (<a href="https://www.gsmarena.com/commodore_announces_callback_8020_the_mobile_phone_between_dumb_and_smart-news-73304.php">GSMArena</a>; <a href="https://commodore.net/store/callback-8020/">Commodore store</a>). It is 4G VoLTE only, no 5G, which Commodore frames as a battery and attention decision (<a href="https://commodore.net/store/callback-8020/">Commodore store</a>). Press coverage at announcement quoted $499; the store page now lists it from $399 before tax, in five retro colorways (<a href="https://www.tomshardware.com/phones/commodore-announces-linux-based-flip-phone-with-no-social-media-no-browser-the-callback-8020-will-be-available-in-five-retro-colorways-starting-at-usd499-runs-99-percent-of-android-apps">Tom&#8217;s Hardware</a>; <a href="https://commodore.net/store/callback-8020/">Commodore store</a>).</p><h2><strong>What the Blocking Can&#8217;t Fix</strong></h2><p>A technical reading requires the counterweights, because &#8220;dumbphone&#8221; and &#8220;private&#8221; are not synonyms:</p><ul><li><p><strong>The baseband still talks to towers.</strong> Carrier-side location (which tower, when, moving where) is a property of cellular service itself. No handset design removes it.</p></li><li><p><strong>WhatsApp ships preinstalled.</strong> Content is end-to-end encrypted, but WhatsApp is Meta, and metadata is metadata.</p></li><li><p><strong>KaiOS is not a quiet OS.</strong> Ten devices in my census run an operating system with a built-in real-time-bidding ad platform and a privacy policy that sanctions IMEI, IMSI, and precise-location collection, detailed above.</p></li><li><p><strong>Twenty-nine of the 68 devices run a full smartphone OS under the hood.</strong> The verification pass tore up my original labels: beyond the rugged Kyocera, Sonim, Schok, and CAT flips, it caught Android inside the Punkt MP02 and MC02, the Mudita Kompakt, the Minimal Phone, the Balance Phone, the Wisephone II, the Duoqin and Qin pocket phones, and every kid-monitoring phone in the set. One distinction matters: some of these are privacy-engineered Android derivatives (Punkt&#8217;s Apostrophy OS is GrapheneOS-derived), where the label flags lineage rather than observed leakage. The Orbic Journey V went the other way: it turned out to run a proprietary feature-phone OS, not Android, and got downgraded to minimal.</p></li><li><p><strong>A whitelist store is still a gatekeeper.</strong> Commostore approval, however benevolent, is a single company deciding what runs, enforced by closed patent-pending code.</p></li><li><p><strong>It is not the Commodore you remember, corporately.</strong> The original Commodore International died in the 1994 bankruptcy. The trademarks passed through a chain of owners until July 31, 2025, when a new Delaware company led by retro-computing YouTuber Christian &#8220;Peri Fractic&#8221; Simpson completed the purchase of Commodore Corporation B.V. and its 47 surviving trademarks for a low seven-figure sum (<a href="https://www.escapistmagazine.com/news-commodore-brand-acquired-christian-simpson/">The Escapist</a>; <a href="https://www.timeextension.com/news/2025/08/as-ceo-my-mission-is-clear-ensure-commodore-never-falls-again">Time Extension</a>). An Italian firm, Commodore Industries, still contests parts of the branding (<a href="https://www.escapistmagazine.com/news-commodore-industries-vs-perifractic-legal-spat/">The Escapist</a>; <a href="https://www.timeextension.com/news/2025/07/despite-its-recent-rebirth-all-is-not-well-in-the-world-of-commodore">Time Extension</a>). The privacy promises are only as durable as a one-year-old company&#8217;s ownership of them.</p></li><li><p><strong>It does not exist yet.</strong> As of June 2026 Commodore has booting pre-production samples, with compliance testing as the self-declared long pole, and Q4 2026 as the shipping target (<a href="https://commodore.net/store/callback-8020/">Commodore store</a>; <a href="https://www.gsmarena.com/commodore_announces_callback_8020_the_mobile_phone_between_dumb_and_smart-news-73304.php">GSMArena</a>). Every claim above is a design commitment, not a shipped fact.</p></li></ul><p>The dumbphone comeback is real, it is measurable, and for the first time since the smartphone consolidated the market, hardware vendors are competing on how little data leaves the device. The section below contains the raw data: the full 68-device census with status, radios, carriers, and tracking labels, the Callback 8020&#8217;s complete band list and spec sheet, and the pre-order telemetry as observed.</p>
      <p>
          <a href="/__u/ringmast4r.substack.com/p/the-phones-ad-tech-cant-reach">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[The Ghost Filter: You Were Scored 0 to 5, and Nobody Told You]]></title><description><![CDATA[A 2026 class action says Eightfold AI builds secret "consumer reports" on job applicants behind Microsoft, PayPal, Starbucks, and Chevron. I pulled the docket.]]></description><link>https://ringmast4r.substack.com/p/the-ghost-filter-you-were-scored</link><guid isPermaLink="false">https://ringmast4r.substack.com/p/the-ghost-filter-you-were-scored</guid><dc:creator><![CDATA[Patrick Quirk]]></dc:creator><pubDate>Tue, 21 Jul 2026 02:47:02 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jbZc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c6bcc44-e5f7-45d6-bb2b-ab075fbc525b_1456x816.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!jbZc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c6bcc44-e5f7-45d6-bb2b-ab075fbc525b_1456x816.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!jbZc!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c6bcc44-e5f7-45d6-bb2b-ab075fbc525b_1456x816.png 424w, /__u/substackcdn.com/image/fetch/$s_!jbZc!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c6bcc44-e5f7-45d6-bb2b-ab075fbc525b_1456x816.png 848w, /__u/substackcdn.com/image/fetch/$s_!jbZc!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c6bcc44-e5f7-45d6-bb2b-ab075fbc525b_1456x816.png 1272w, /__u/substackcdn.com/image/fetch/$s_!jbZc!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c6bcc44-e5f7-45d6-bb2b-ab075fbc525b_1456x816.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!jbZc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c6bcc44-e5f7-45d6-bb2b-ab075fbc525b_1456x816.png" width="1456" height="816" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7c6bcc44-e5f7-45d6-bb2b-ab075fbc525b_1456x816.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:816,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:105202,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://ringmast4r.substack.com/i/207863701?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c6bcc44-e5f7-45d6-bb2b-ab075fbc525b_1456x816.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!jbZc!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c6bcc44-e5f7-45d6-bb2b-ab075fbc525b_1456x816.png 424w, /__u/substackcdn.com/image/fetch/$s_!jbZc!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c6bcc44-e5f7-45d6-bb2b-ab075fbc525b_1456x816.png 848w, /__u/substackcdn.com/image/fetch/$s_!jbZc!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c6bcc44-e5f7-45d6-bb2b-ab075fbc525b_1456x816.png 1272w, /__u/substackcdn.com/image/fetch/$s_!jbZc!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c6bcc44-e5f7-45d6-bb2b-ab075fbc525b_1456x816.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You send the application. Two days later the rejection lands, or nothing lands at all, and you assume a recruiter skimmed your resume and passed. A lawsuit working its way through federal court in California says something else happened: an artificial intelligence system you never heard of scored you from 0 to 5 on your &#8220;likelihood of success,&#8221; and if the number was low, your application was filtered out before a human ever saw your name (<a href="https://www.outtengolden.com/wp-content/uploads/2026/01/2026-01-20-Eightfold-Complaint.pdf">Kistler v. Eightfold AI, Complaint</a>; <a href="https://fortune.com/2026/01/26/job-seekers-suing-ai-hiring-tool-eightfold-allegedly-compiling-secretive-reports/">Fortune</a>).</p><p>The company is Eightfold AI, a SoftBank-backed hiring platform that sits behind the online applications of more than 100 employers, including Microsoft, Morgan Stanley, Starbucks, BNY, PayPal, Chevron, and Bayer (<a href="https://www.outtengolden.com/wp-content/uploads/2026/01/2026-01-20-Eightfold-Complaint.pdf">Complaint</a>; <a href="https://www.outtengolden.com/newsroom/landmark-class-action-accuses-eightfold-ai-of-illegally-producing-hidden-credit-reports-on-job-applicants">Outten &amp; Golden</a>). The lawsuit&#8217;s legal theory is the interesting part. It does not argue the AI is biased. It argues the AI score is a hidden credit report, and that building one on you in secret is illegal (<a href="https://www.insidetechlaw.com/blog/2026/03/class-action-questions-whether-using-ai-to-score-job-applicants-violates-the-fcra">Norton Rose Fulbright</a>; <a href="https://natlawreview.com/article/ai-hiring-tools-and-consumer-reports-understanding-eightfold-litigation">Epstein Becker Green</a>).</p><p>I spent this week reading the actual case file rather than the viral posts about it. The 36-page complaint, the federal docket, both sides&#8217; briefs, and Eightfold&#8217;s own public disclosures tell a more precise and in some ways more damning story than the LinkedIn version. Some of it is proven from Eightfold&#8217;s own paperwork. Some of it is a serious allegation the company flatly denies. And the whole thing turns on a single question a judge will hear argued on August 4, 2026 (<a href="https://aihiringlitigationtracker.com/kistler-v-eightfold/">AI Hiring Litigation Tracker</a>; <a href="https://www.courtlistener.com/docket/72351430/kistler-v-eightfold-ai-inc/">CourtListener docket</a>).</p><h2><strong>The case</strong></h2><p>The suit is Kistler et al. v. Eightfold AI Inc. Two California job applicants with STEM backgrounds, Erin Kistler and Sruti Bhaumik, filed it on January 20, 2026 in Contra Costa County Superior Court (<a href="https://www.outtengolden.com/wp-content/uploads/2026/01/2026-01-20-Eightfold-Complaint.pdf">Complaint</a>; <a href="https://www.outtengolden.com/cases/kistler-v-eightfold-ai">Outten &amp; Golden</a>). Eightfold removed it to the U.S. District Court for the Northern District of California on March 2, where it is docketed as 3:26-cv-01768 before Judge Yvonne Gonzalez Rogers (<a href="https://www.courtlistener.com/docket/72351430/kistler-v-eightfold-ai-inc/">CourtListener docket</a>; <a href="https://www.pacermonitor.com/public/case/63365614/Kistler_et_al_v_Eightfold_AI_Inc">PacerMonitor</a>).</p><p>There is a small forensic tell in how the plaintiffs found out they were even part of this. Both women applied through employer portals whose web addresses contained the string &#8220;Eightfold.AI,&#8221; were auto-rejected, and never advanced (<a href="https://www.outtengolden.com/wp-content/uploads/2026/01/2026-01-20-Eightfold-Complaint.pdf">Complaint</a>; <a href="https://fortune.com/2026/01/26/job-seekers-suing-ai-hiring-tool-eightfold-allegedly-compiling-secretive-reports/">Fortune</a>). Bhaumik&#8217;s case has a particular irony: she was applying for a Senior Technical Program Manager role in Responsible AI at Microsoft when Eightfold&#8217;s tools allegedly screened her out (<a href="https://www.outtengolden.com/wp-content/uploads/2026/01/2026-01-20-Eightfold-Complaint.pdf">Complaint</a>).</p><p>The complaint pleads three counts and, notably, no discrimination count: the federal Fair Credit Reporting Act for a nationwide class, California&#8217;s Investigative Consumer Reporting Agencies Act for a California class, and California&#8217;s Unfair Competition Law (<a href="https://www.outtengolden.com/wp-content/uploads/2026/01/2026-01-20-Eightfold-Complaint.pdf">Complaint</a>; <a href="https://www.insidetechlaw.com/blog/2026/03/class-action-questions-whether-using-ai-to-score-job-applicants-violates-the-fcra">Norton Rose Fulbright</a>).</p><h2><strong>The score is real, and Eightfold documents it</strong></h2><p>Here is the part that is not in dispute. Eightfold&#8217;s matching model produces a &#8220;Match Score&#8221; that runs from 0 through 5 in increments of 0.5, predicting the degree of fit between a candidate and a job. We do not have to take the plaintiffs&#8217; word for it, because Eightfold says so itself in the bias-audit disclosure it publishes for New York City&#8217;s hiring-AI law (<a href="https://eightfold.ai/nyc-eightfold-matching-model/">Eightfold Matching Model disclosure</a>). That same page shows Eightfold commissioned an independent bias audit of the model from BABL AI dated March 21, 2025, roughly ten months before the lawsuit, so the company plainly understood it was operating a regulated automated hiring tool (<a href="https://eightfold.ai/nyc-eightfold-matching-model/">Eightfold Matching Model disclosure</a>).</p><p>According to the complaint, the score is generated by a three-step pipeline described in Eightfold&#8217;s own engineering materials: a language model extracts semantic similarity between the job and the candidate, the system adds interpretable features such as skill overlap, title progression, seniority fit, and comparison to hiring managers and high performers, and then it blends those into a calibrated prediction trained on tens of millions of historical candidate-position pairs with known outcomes (<a href="https://www.outtengolden.com/wp-content/uploads/2026/01/2026-01-20-Eightfold-Complaint.pdf">Complaint</a>; <a href="https://dataprivacy.foxrothschild.com/2026/04/articles/general-privacy-data-security-news-developments/when-ai-meets-the-fcra-what-the-eightfold-class-action-means-for-employers-and-hr-technology-providers/">Fox Rothschild</a>). Eightfold markets the platform as learning from &#8220;more than 1.5 billion global data points&#8221; and the profiles of more than a billion working people (<a href="https://www.outtengolden.com/wp-content/uploads/2026/01/2026-01-20-Eightfold-Complaint.pdf">Complaint</a>; <a href="https://eightfold.ai/nyc-eightfold-matching-model/">Eightfold</a>).</p><p>One clarification the viral version gets wrong: that 1.5 billion figure is the size of the model&#8217;s training corpus, built up over years, not a dossier of 1.5 billion facts about you. The real fight is narrower and sharper. It is about what Eightfold pulls in on each individual applicant, and whether it tells anyone.</p><h2><strong>The dispute at the center of everything</strong></h2><p>The complaint alleges Eightfold reaches well past your resume. It says the platform quietly collects social media profiles, location data, internet and device activity, cookies, and other tracking to build a profile of a candidate&#8217;s &#8220;behavior, attitudes, intelligence, aptitudes and other characteristics&#8221; that the applicant never put in the application (<a href="https://www.outtengolden.com/wp-content/uploads/2026/01/2026-01-20-Eightfold-Complaint.pdf">Complaint</a>; <a href="https://www.hr-brew.com/stories/2026/01/29/ai-powered-hiring-platform-eightfold-ai-faces-lawsuit-over-hiring-data-used-to-rate-candidates">HR Brew</a>). That &#8220;behavior, attitudes, intelligence&#8221; language is not the plaintiffs&#8217; invention. The complaint pulls it from Eightfold&#8217;s own privacy policy (<a href="https://www.outtengolden.com/wp-content/uploads/2026/01/2026-01-20-Eightfold-Complaint.pdf">Complaint</a>).</p><p>Eightfold denies the ugly version. A company spokesperson said the platform operates only on data candidates intentionally share or that customers provide, that it does &#8220;not scrape social media and the like,&#8221; and that the allegations are meritless (<a href="https://fortune.com/2026/01/26/job-seekers-suing-ai-hiring-tool-eightfold-allegedly-compiling-secretive-reports/">Fortune</a>; <a href="https://www.hr-brew.com/stories/2026/01/29/ai-powered-hiring-platform-eightfold-ai-faces-lawsuit-over-hiring-data-used-to-rate-candidates">HR Brew</a>).</p><p>And yet. Eightfold&#8217;s own privacy notice states that, when instructed by its employer customers, it obtains information about candidates from third-party sources, and it names them: LinkedIn, Stack Overflow, and GitHub (<a href="https://eightfold.ai/privacy-notice/">Eightfold privacy notice</a>). So the denial and the disclosure sit in visible tension. The company can truthfully say it does not &#8220;scrape social media&#8221; in the covert sense the plaintiffs describe, while its own document confirms it enriches candidate profiles from outside professional sources. Which of those two pictures the operative period actually looked like is exactly what discovery exists to settle.</p><h2><strong>Why &#8220;hidden credit report&#8221; is the whole game</strong></h2><p>The clever move by the plaintiffs is to skip discrimination entirely and reach for a 1970 consumer-protection statute instead. The theory: when Eightfold assembles data about you and evaluates it into a score that employers use to decide your candidacy, it is acting as a consumer reporting agency, and its score is a consumer report, the same legal category as a credit report or a background check (<a href="https://www.outtengolden.com/newsroom/landmark-class-action-accuses-eightfold-ai-of-illegally-producing-hidden-credit-reports-on-job-applicants">Outten &amp; Golden</a>; <a href="https://www.warden-ai.com/resources/kistler-v-eightfold-ai-how-the-latest-class-action-tests-the-definition-of-consumer-reporting-in-the-age-of-algorithmic-scoring">Warden AI</a>). If that is right, the Fair Credit Reporting Act attaches a long list of duties Eightfold allegedly ignored: tell you a report exists, get authorization, give you a copy, and let you dispute errors (<a href="https://www.outtengolden.com/wp-content/uploads/2026/01/2026-01-20-Eightfold-Complaint.pdf">Complaint</a>; <a href="https://www.fisherphillips.com/en/insights/insights/job-applicants-sue-ai-screening-company-for-fcra-violations">Fisher Phillips</a>).</p><p>This theory has a specific regulatory anchor. In October 2024 the Consumer Financial Protection Bureau issued Circular 2024-06, titled &#8220;Background Dossiers and Algorithmic Scores for Hiring, Promotion, and Other Employment Decisions,&#8221; which said an entity can be a consumer reporting agency if it collects data to train an algorithm that produces worker scores for employers (<a href="https://www.consumerfinance.gov/compliance/circulars/consumer-financial-protection-circular-2024-06-background-dossiers-and-algorithmic-scores-for-hiring-promotion-and-other-employment-decisions/">CFPB Circular 2024-06</a>). There is a twist the plaintiffs have to fight through: the CFPB withdrew that circular on May 12, 2025 (<a href="https://www.federalregister.gov/documents/2024/11/12/2024-26099/consumer-financial-protection-circular-2024-06-background-dossiers-and-algorithmic-scores-for-hiring">Federal Register</a>). Their answer is that rescinding a piece of guidance does not change the underlying statute, which Congress wrote and the CFPB cannot repeal by memo (<a href="https://dataprivacy.foxrothschild.com/2026/04/articles/general-privacy-data-security-news-developments/when-ai-meets-the-fcra-what-the-eightfold-class-action-means-for-employers-and-hr-technology-providers/">Fox Rothschild</a>).</p><p>Choosing consumer-reporting law over discrimination law is a strategy, not an accident. The other major AI hiring case in the same courthouse, Mobley v. Workday, is a discrimination case, and it has spent years fighting over disparate impact and statistics (<a href="https://www.hklaw.com/en/insights/publications/2025/05/federal-court-allows-collective-action-lawsuit-over-alleged">Holland &amp; Knight</a>). The FCRA theory needs none of that. The plaintiffs do not have to prove the score was unfair. They only have to prove Eightfold built consumer reports and skipped the legally required paperwork (<a href="https://natlawreview.com/article/ai-hiring-tools-and-consumer-reports-understanding-eightfold-litigation">Epstein Becker Green</a>; <a href="https://ogletree.com/insights-resources/blog-posts/groundbreaking-lawsuit-tests-whether-ai-hiring-tools-trigger-fcra-compliance/">Ogletree Deakins</a>).</p><h2><strong>Who is bringing this</strong></h2><p>The roster tells you how seriously to take it. The applicants are represented by Outten &amp; Golden LLP, whose team includes Jenny R. Yang, a former Chair of the U.S. Equal Employment Opportunity Commission whose current practice centers on AI and automated decision systems (<a href="https://www.outtengolden.com/people/attorneys/jenny-r-yang">Jenny R. Yang, Outten &amp; Golden</a>; <a href="https://www.courtlistener.com/docket/72351430/kistler-v-eightfold-ai-inc/">CourtListener docket</a>). Co-counsel is the nonprofit Towards Justice, and its team includes Seth Frotman, the former General Counsel of the CFPB, which matters because the case leans on a CFPB circular he would have overseen (<a href="https://www.outtengolden.com/newsroom/landmark-class-action-accuses-eightfold-ai-of-illegally-producing-hidden-credit-reports-on-job-applicants">Outten &amp; Golden</a>; <a href="https://www.courtlistener.com/docket/72351430/kistler-v-eightfold-ai-inc/">CourtListener docket</a>). Kistler is the first case filed under Towards Justice&#8217;s new &#8220;AI in the Workplace Accountability Project,&#8221; so this is meant to be a template, not a one-off (<a href="https://www.outtengolden.com/newsroom/landmark-class-action-accuses-eightfold-ai-of-illegally-producing-hidden-credit-reports-on-job-applicants">Outten &amp; Golden</a>). Eightfold is defended by McGuireWoods LLP (<a href="https://www.law360.com/cases/69b8c1bc249d2cf523c4deba">Law360</a>; <a href="https://www.pacermonitor.com/public/case/63365614/Kistler_et_al_v_Eightfold_AI_Inc">PacerMonitor</a>).</p><h2><strong>What happens on August 4</strong></h2><p>Everything currently rides on Eightfold&#8217;s motion to dismiss. The company filed a 35-page motion on April 20, 2026 arguing the simplest possible defense: it is not a consumer reporting agency and its Match Score is not a consumer report, because it is a service provider processing data on employers&#8217; behalf, and the score is decision-support that recruiters can override, not an eligibility determination (<a href="https://aihiringlitigationtracker.com/kistler-v-eightfold/">AI Hiring Litigation Tracker</a>; <a href="https://eightfold.ai/nyc-eightfold-matching-model/">Eightfold Matching Model disclosure</a>). The plaintiffs filed their opposition on June 18, Eightfold replied on July 9, and the motion is now fully briefed with a hearing set for August 4, 2026 before Judge Gonzalez Rogers in Oakland (<a href="https://www.courtlistener.com/docket/72351430/kistler-v-eightfold-ai-inc/">CourtListener docket</a>; <a href="https://aihiringlitigationtracker.com/kistler-v-eightfold/">AI Hiring Litigation Tracker</a>).</p><p>That hearing is the hinge for the entire field. If the consumer-report theory survives, every AI screening vendor that scores applicants using outside data suddenly faces the full weight of consumer-reporting law: disclosures, authorizations, adverse-action notices, and dispute rights (<a href="https://www.fisherphillips.com/en/insights/insights/job-applicants-sue-ai-screening-company-for-fcra-violations">Fisher Phillips</a>; <a href="https://ogletree.com/insights-resources/blog-posts/groundbreaking-lawsuit-tests-whether-ai-hiring-tools-trigger-fcra-compliance/">Ogletree Deakins</a>). If it fails on the definition of a consumer reporting agency, the theory stalls, and this particular action likely stalls with it. The management-side law firms watching the case are not predicting which way it goes, and several note the motion could dispose of the case outright (<a href="https://www.joneswalker.com/en/insights/blogs/ai-law-blog/ai-hiring-under-fire-what-the-eightfold-lawsuit-means-for-every-employer-using-a.html">Jones Walker</a>; <a href="https://ogletree.com/insights-resources/blog-posts/groundbreaking-lawsuit-tests-whether-ai-hiring-tools-trigger-fcra-compliance/">Ogletree Deakins</a>).</p><p>So: is it true the AI was harvesting data? Partly, and on Eightfold&#8217;s own admission it pulls third-party professional data and scores you 0 to 5. The covert version, scraping your social media and location to judge your personality, is a serious allegation that is plausible, partly corroborated by Eightfold&#8217;s own privacy notice, and not yet proven. A court has not decided who is right. It starts to on August 4.</p>
      <p>
          <a href="/__u/ringmast4r.substack.com/p/the-ghost-filter-you-were-scored">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[The Boogeyman Audit: What Happens When You Actually Count Ad Tech Surveillance]]></title><description><![CDATA[Is the ad tech surveillance apparatus the monster under the bed, or is it real? I built a database to find out. 424 named companies. 354 dated articles. 302 dated incidents. Here is what is known.]]></description><link>https://ringmast4r.substack.com/p/the-boogeyman-audit-what-happens</link><guid isPermaLink="false">https://ringmast4r.substack.com/p/the-boogeyman-audit-what-happens</guid><dc:creator><![CDATA[Patrick Quirk]]></dc:creator><pubDate>Wed, 15 Jul 2026 21:09:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!nBJg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1beadeb9-a62c-47aa-b476-74776f9d8651_1456x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!nBJg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1beadeb9-a62c-47aa-b476-74776f9d8651_1456x1048.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!nBJg!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1beadeb9-a62c-47aa-b476-74776f9d8651_1456x1048.png 424w, /__u/substackcdn.com/image/fetch/$s_!nBJg!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1beadeb9-a62c-47aa-b476-74776f9d8651_1456x1048.png 848w, /__u/substackcdn.com/image/fetch/$s_!nBJg!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1beadeb9-a62c-47aa-b476-74776f9d8651_1456x1048.png 1272w, /__u/substackcdn.com/image/fetch/$s_!nBJg!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1beadeb9-a62c-47aa-b476-74776f9d8651_1456x1048.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!nBJg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1beadeb9-a62c-47aa-b476-74776f9d8651_1456x1048.png" width="1456" height="1048" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1beadeb9-a62c-47aa-b476-74776f9d8651_1456x1048.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1048,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:553228,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://ringmast4r.substack.com/i/207190996?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1beadeb9-a62c-47aa-b476-74776f9d8651_1456x1048.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!nBJg!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1beadeb9-a62c-47aa-b476-74776f9d8651_1456x1048.png 424w, /__u/substackcdn.com/image/fetch/$s_!nBJg!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1beadeb9-a62c-47aa-b476-74776f9d8651_1456x1048.png 848w, /__u/substackcdn.com/image/fetch/$s_!nBJg!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1beadeb9-a62c-47aa-b476-74776f9d8651_1456x1048.png 1272w, /__u/substackcdn.com/image/fetch/$s_!nBJg!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1beadeb9-a62c-47aa-b476-74776f9d8651_1456x1048.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>A reasonable person hears &#8220;your phone&#8217;s ads are secretly a surveillance network&#8221; and reacts one of two ways. Either it sounds like paranoid tech mythology, the boogeyman under the bed, a thing that feels true but that nobody can actually point to. Or it sounds so obviously true that it becomes background noise, a thing everyone already &#8220;knows&#8221; and therefore nobody bothers to verify.</p><p>Both reactions skip the step that actually matters: counting.</p><p>So I counted. Over the last several days I built a structured database cataloging every company, every dated incident, every regulatory action, and every documented harm case I could find in published reporting on the ad tech surveillance pipeline, the system by which the advertising data your phone broadcasts every day gets resold into government and private intelligence products. Not vibes. Not a single viral thread. A database: 424 named entities, 354 sourced articles, 302 dated events, 146 monitorable news sources, and a glossary of 195 technical and legal concepts, cross-referenced against each other. This piece is the census report.</p><p>The short answer to &#8220;is it real&#8221;: yes, and it is bigger, older, and more legally protected than most people who have heard of it understand. The long answer is the rest of this article.</p><h2><strong>The Org Chart Nobody Draws</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!KOPs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b47f6a-bf7a-4493-83a1-a28e19f753ab_1456x832.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!KOPs!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b47f6a-bf7a-4493-83a1-a28e19f753ab_1456x832.png 424w, /__u/substackcdn.com/image/fetch/$s_!KOPs!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b47f6a-bf7a-4493-83a1-a28e19f753ab_1456x832.png 848w, /__u/substackcdn.com/image/fetch/$s_!KOPs!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b47f6a-bf7a-4493-83a1-a28e19f753ab_1456x832.png 1272w, /__u/substackcdn.com/image/fetch/$s_!KOPs!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b47f6a-bf7a-4493-83a1-a28e19f753ab_1456x832.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!KOPs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b47f6a-bf7a-4493-83a1-a28e19f753ab_1456x832.png" width="1456" height="832" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/79b47f6a-bf7a-4493-83a1-a28e19f753ab_1456x832.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:832,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:63689,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ringmast4r.substack.com/i/207190996?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b47f6a-bf7a-4493-83a1-a28e19f753ab_1456x832.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!KOPs!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b47f6a-bf7a-4493-83a1-a28e19f753ab_1456x832.png 424w, /__u/substackcdn.com/image/fetch/$s_!KOPs!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b47f6a-bf7a-4493-83a1-a28e19f753ab_1456x832.png 848w, /__u/substackcdn.com/image/fetch/$s_!KOPs!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b47f6a-bf7a-4493-83a1-a28e19f753ab_1456x832.png 1272w, /__u/substackcdn.com/image/fetch/$s_!KOPs!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b47f6a-bf7a-4493-83a1-a28e19f753ab_1456x832.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Break the 424 entities down by what they actually are, and the shape of the industry becomes visible in a way that individual news stories never quite convey:</p><ul><li><p><strong>106 data brokers</strong>: the aggregators and resellers who acquire raw location, device, and behavioral data and package it for sale: Gravy Analytics, X-Mode/Outlogic, Kochava, SafeGraph, Near Intelligence/Azira, Mobilewalla, Cuebiq, and a long tail of smaller wholesalers.</p></li><li><p><strong>98 surveillance vendors</strong>: companies whose product is turning ad-derived data into a queryable tracking tool for government or private intelligence buyers. Babel Street (Locate X), Fog Data Science (Fog Reveal), Anomaly Six, PenLink/Cobwebs (Webloc), Venntel, ISA (Patternz), Rayzone Group, and dozens more.</p></li><li><p><strong>83 adtech firms</strong>: the mainstream advertising exchanges and platforms whose ordinary operation generates the data supply: Google, Meta, Microsoft/Xandr, PubMatic, Magnite, OpenX, The Trade Desk, Criteo, LiveRamp.</p></li><li><p><strong>42 researcher organizations</strong>: the academics, NGOs, and watchdogs (Citizen Lab, EFF, ICCL, Cracked Labs, AppCensus) who did the work of documenting all of the above.</p></li><li><p><strong>40 government agencies</strong>: the buyers: ICE, CBP, the FBI, the IRS, DHS, the NSA, Special Operations Command, and their state and local equivalents.</p></li><li><p><strong>37 regulators</strong>: the FTC, state attorneys general, the Irish DPC, the UK ICO, and peers, whose enforcement actions form most of the &#8220;what has actually been tried&#8221; record.</p></li><li><p><strong>18 news outlets</strong>: the specific publications (404 Media, EFF Deeplinks, netzpolitik, The Markup) that have made this beat their own.</p></li></ul><p>That is not a conspiracy theory&#8217;s shape. That is an industry&#8217;s shape. Nearly a hundred companies whose entire business model is repurposing advertising exhaust into tracking products is not a fringe phenomenon. It is a sector with an org chart, a supply chain, competitors, private equity owners, and government procurement contracts, exactly like any other sector, except this one&#8217;s product is a map of where you have been.</p><h2><strong>What Changed This Year: The Chatrie Ruling, and the Memo That Answered It</strong></h2><p>On June 29, 2026, the Supreme Court ruled 6-3 in the case of Okello Chatrie, a Virginia bank robbery suspect identified through a geofence warrant, that constitutional privacy protections extend to cellphone location history even when a person has voluntarily opted into a service like Google&#8217;s location history (<a href="https://www.supremecourt.gov/opinions/25pdf/25-112_0am4.pdf">Supreme Court of the United States, Chatrie v. United States, No. 25-112, slip opinion</a>; <a href="https://www.scotusblog.com/2026/06/court-rules-that-law-enforcements-use-of-geofence-warrant-was-a-search/">SCOTUSblog, &#8220;Court rules that law enforcement&#8217;s use of &#8216;geofence warrant&#8217; was a &#8216;search&#8217;&#8221;</a>; <a href="https://thehill.com/regulation/court-battles/5945441-supreme-court-geofence-warrant-fourth-amendment/">The Hill, &#8220;Supreme Court sends geofence warrant case back to lower court&#8221;</a>; <a href="https://www.police1.com/legal/geofence-warrants-scotus-rules-constitutional-privacy-protections-apply-to-cellphone-location-history">Police1, AP, &#8220;Geofence warrants: SCOTUS rules constitutional privacy protections apply to cellphone location history&#8221;</a>). Justice Elena Kagan, writing for the majority, held that people should not be treated as forfeiting privacy simply for &#8220;doing the ordinary things cellphone users do.&#8221; Justice Samuel Alito dissented, arguing Chatrie had no privacy expectation in data he voluntarily shared with Google. The Court did not decide whether this specific search violated the Fourth Amendment; it remanded the case for the lower courts to reconsider.</p><p>It is, on its face, a real win. It is also, on close reading, a ruling that touches only one of the two channels feeding the surveillance pipeline. Chatrie governs <em>compelled</em> process, a warrant served on a provider like Google. It says nothing about data a government agency or private intelligence firm simply <em>buys</em> on the open market from a broker who acquired it through an SDK or the real-time bidding auction. That is the loophole the rest of this article is about, and within two weeks of the ruling, I obtained direct evidence that the industry already knows it.</p><p>A source close to the ownership of a U.S. location-intelligence firm, a company that sells ad-derived geolocation intelligence to defense and intelligence customers and that I am not naming in order to protect the source, shared an internal memo the company sent to its government and enterprise customers immediately after the Chatrie decision. The memo is worth quoting because it is the clearest documented example I have found of a vendor explaining, in its own words, exactly why a Supreme Court privacy ruling does not apply to it:</p><p><em>&#8220;[The company] does not obtain its core intelligence data through compelled process from operating system providers, mobile carriers, internet service providers, or similar entities. [Its] platform relies on commercially available datasets, including user-consented SDK data, AdTech telemetry, Real-Time Bidding (RTB) signals, application-shared data, and verified third-party data sources.&#8221;</em></p><p>Read that sentence again. The company is not disputing that its data is functionally similar to what Chatrie now protects. It is asserting that the <em>acquisition method</em> is different, purchase instead of compulsion, and that the difference is the entire legal firewall. That single distinction, purchased versus compelled, is the hinge the whole industry pivots on, and the vendor just confirmed it in writing to its own customers rather than to a reporter.</p><p>The memo goes further, and this is the part that should worry anyone tracking where this industry is heading rather than where it has been. It acknowledges that &#8220;more states are passing or considering laws that limit the sale, transfer, or use of precise geolocation data,&#8221; citing Oregon&#8217;s roughly 1,750-foot precision threshold as an example of a jurisdiction where location data precise enough to identify a device within that radius may be restricted. Then it says this: <em>&#8220;This is one reason some vendors are increasingly relying on RTB-heavy datasets as legal restrictions on more precise data become stricter.&#8221;</em> In other words, as states start regulating the clean, precise location data (the kind SDKs collect directly), the industry&#8217;s own account of itself says vendors are shifting toward the messier, harder-to-regulate bidstream data instead. Regulating the good data pushes the market toward the bad data. The memo even concedes what the bad data actually looks like: RTB signals are &#8220;often no more reliable than ZIP-code level accuracy,&#8221; &#8220;plagued with fraudulent locations,&#8221; and the company claims to discard &#8220;80 percent or more&#8221; of what it receives as unusable. It should not be read as continuous real-time tracking, the memo says, correctly. What it should be read as is a permanent structural incentive, created by well-intentioned state privacy laws, to keep the noisiest and least accountable data channel in the pipeline the most commercially important one.</p><p>A note on the memo itself. It was provided to me directly by a source close to the company&#8217;s ownership. I know the source&#8217;s identity and how they came to have the document, and the quoted passages are reproduced as received and in context, altered only where marked in brackets to withhold the company&#8217;s name. I am not naming the company because doing so could help identify the source. The full memo remains in my possession. If the company disputes the authenticity of these excerpts or believes they misrepresent it, I will publish its response in full.</p><h2><strong>The Three-Layer Legal Bypass</strong></h2><p>The reason a memo like that can exist without anyone at the company blinking is that the entire industry sits inside a legal vacuum built from three separate, unrelated exemptions that happen to stack.</p><p><strong>Layer one: the Fourth Amendment, avoided by purchase instead of compulsion.</strong> The third-party doctrine, from <em>Smith v. Maryland</em> (1979), holds that information voluntarily shared with a third party carries no reasonable expectation of privacy, so no warrant is needed to obtain it from that party. <em>Carpenter v. United States</em> (2018) carved out a narrow exception for historic cell-site records because that collection was pervasive and unavoidable for anyone who owned a phone. The government&#8217;s response to Carpenter, and now to Chatrie, has been consistent: stop compelling the data from carriers and providers, and buy the same data from brokers instead, where neither ruling applies. The 2023 declassified ODNI report on Commercially Available Information confirmed that this is not an accident of interpretation but a known, deliberate acquisition strategy across the intelligence community (<a href="https://www.dni.gov/index.php/newsroom/reports-publications/reports-publications-2023/3700-odni-senior-advisory-group-panel-declassified-report-on-commercially-available-information">ODNI, &#8220;Senior Advisory Group Panel on Commercially Available Information&#8221;</a>; <a href="https://www.lawfaremedia.org/article/odni-report-reveals-significant-privacy-concerns-for-u.s.-citizens">Lawfare, &#8220;ODNI Report Reveals &#8216;Significant&#8217; Privacy Concerns for U.S. Citizens&#8221;</a>).</p><p><strong>Layer two: the Privacy Act of 1974, which only ever applied to the government&#8217;s own files.</strong> The Privacy Act binds federal agencies&#8217; handling of records <em>they</em> maintain: collection limits, notice requirements, an individual&#8217;s right to inspect and correct. It has never regulated the commercial sector, data brokers, or advertising technology, and it does not stop an agency from purchasing on the open market a dataset it would be barred from building itself. When ICE buys a subscription to a location-intelligence product, ICE is not &#8220;collecting&#8221; in the sense the Act contemplates. ICE is procuring a software license. The statute simply does not reach the transaction, because the transaction was never imagined by the people who wrote a law in 1974 to govern government record-keeping, not the resale market for smartphone telemetry that would not exist for another three decades.</p><p><strong>Layer three: international human rights law, ratified and then defanged.</strong> Article 17 of the International Covenant on Civil and Political Rights declares that &#8220;no one shall be subjected to arbitrary or unlawful interference with his privacy.&#8221; The United States ratified the ICCPR in 1992, but attached a formal declaration that its substantive articles, Article 17 included, are non-self-executing: they create no cause of action in any U.S. court. Congress never passed implementing legislation. The U.S. never joined the protocol that would let an individual bring a complaint, and it rejects the UN Human Rights Committee&#8217;s position that the treaty covers U.S. conduct beyond its borders. The right exists. It has existed, on paper, since 1992. It has never once stopped a single American data broker from selling a single location point. The only version of international privacy pressure that has ever actually cost the industry money is not human rights law at all, it is EU trade law: the Schrems rulings that repeatedly struck down U.S.-EU data transfer frameworks for failing to meet European standards, forcing the successive renegotiations from Safe Harbor to Privacy Shield to the current Data Privacy Framework. Economic leverage moved the industry. Rights language did not.</p><p>Stack the three layers and the picture is not a gap in the law. It is a vacuum engineered from the outside edges of three different legal regimes, none of which was designed with the others in mind, that happen to leave the exact same transaction, a private company selling your location history to a government agency, untouched by all three simultaneously.</p><h2><strong>The Receipts: When the Abstraction Becomes a Person</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!L34i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2dec47b-0689-44f0-b900-66f19c347d5b_1456x832.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!L34i!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2dec47b-0689-44f0-b900-66f19c347d5b_1456x832.png 424w, /__u/substackcdn.com/image/fetch/$s_!L34i!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2dec47b-0689-44f0-b900-66f19c347d5b_1456x832.png 848w, /__u/substackcdn.com/image/fetch/$s_!L34i!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2dec47b-0689-44f0-b900-66f19c347d5b_1456x832.png 1272w, /__u/substackcdn.com/image/fetch/$s_!L34i!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2dec47b-0689-44f0-b900-66f19c347d5b_1456x832.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!L34i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2dec47b-0689-44f0-b900-66f19c347d5b_1456x832.png" width="1456" height="832" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a2dec47b-0689-44f0-b900-66f19c347d5b_1456x832.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:832,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:54352,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ringmast4r.substack.com/i/207190996?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2dec47b-0689-44f0-b900-66f19c347d5b_1456x832.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!L34i!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2dec47b-0689-44f0-b900-66f19c347d5b_1456x832.png 424w, /__u/substackcdn.com/image/fetch/$s_!L34i!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2dec47b-0689-44f0-b900-66f19c347d5b_1456x832.png 848w, /__u/substackcdn.com/image/fetch/$s_!L34i!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2dec47b-0689-44f0-b900-66f19c347d5b_1456x832.png 1272w, /__u/substackcdn.com/image/fetch/$s_!L34i!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2dec47b-0689-44f0-b900-66f19c347d5b_1456x832.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>None of this stays abstract for long once you look at the incident record. A sample from the 302 dated events in the database:</p><p>In July 2021, a Catholic priest was identified and forced to resign after a Catholic newsletter purchased mobile advertising ID data tied to the Grindr app, correlated it against his home and work addresses, and de-anonymized him without a single hack, breach, or court order involved (<a href="https://www.pillarcatholic.com/p/pillar-investigates-usccb-gen-sec">The Pillar, &#8220;Pillar Investigates: USCCB gen sec Burrill resigns after sexual misconduct allegations&#8221;</a>; <a href="https://time.com/6083323/bishop-pillar-grindr-data/">Time, &#8220;A Catholic Priest&#8217;s Alleged Grindr Outing and Data Privacy&#8221;</a>).</p><p>In 2019, a Motherboard reporter paid a bounty hunter $300 and had him locate a specific T-Mobile phone within minutes, no warrant, no subpoena, just a phone number and a payment, demonstrating that real-time carrier location data was for sale to essentially anyone willing to pay a middleman (<a href="https://motherboard.vice.com/en_us/article/nepxbz/i-gave-a-bounty-hunter-300-dollars-located-phone-microbilt-zumigo-tmobile">Vice/Motherboard, &#8220;I Gave a Bounty Hunter $300. Then He Located Our Phone&#8221;</a>).</p><p>In 2020, Motherboard revealed that the Muslim Pro prayer app&#8217;s embedded SDK was selling location data that flowed, through the broker chain, to U.S. military contractors, prompting Google to eventually remove the underlying broker, Predicio, from its platform (<a href="https://www.vice.com/en/article/us-military-location-data-xmode-locate-x/">Vice/Motherboard, &#8220;How the U.S. Military Buys Location Data from Ordinary Apps&#8221;</a>; <a href="https://www.vice.com/en/article/muslim-pro-location-data-military-xmode/">Vice/Motherboard, &#8220;Muslim Pro Stops Sharing Location Data After Motherboard Investigation&#8221;</a>).</p><p>In 2022, the defense contractor Anomaly Six gave a sales demonstration in which it showed prospective government clients that it could track the real-time movements of employees at Fort Meade and Langley, the physical homes of the NSA and CIA, using nothing but commercially purchased ad-tech location data (<a href="https://theintercept.com/2022/04/22/anomaly-six-phone-tracking-zignal-surveillance-cia-nsa/">The Intercept, &#8220;American Phone-Tracking Firm Demo&#8217;d Surveillance Powers by Spying on CIA and NSA Employees&#8221;</a>).</p><p>In 2023 and 2024, EPIC and Rolling Stone documented that the Veritas Society, an anti-abortion advocacy group, obtained data identifying visitors to more than 600 Planned Parenthood locations for targeted advertising, a revelation that surfaced through a Senator Wyden investigation (<a href="https://epic.org/data-broker-helped-anti-abortion-group-target-planned-parenthood-visitors-wyden-letter-reveals/">EPIC, &#8220;Data Broker Helped Anti-Abortion Group Target Planned Parenthood Visitors, Wyden Letter Reveals&#8221;</a>; <a href="https://www.rollingstone.com/politics/politics-news/planned-parenthood-locations-tracked-anti-abortion-ads-1234967755/">Rolling Stone, &#8220;600 Planned Parenthood Locations Tracked for Anti-Abortion Ads, Senator Reveals&#8221;</a>).</p><p>In January 2025, Gravy Analytics, one of the largest location data brokers in the industry, was breached, and roughly 30 million location data points, tied to device identifiers for people who had visited medical clinics, military installations, and religious sites, were dumped publicly (<a href="https://techcrunch.com/2025/01/13/gravy-analytics-data-broker-breach-trove-of-location-data-threatens-privacy-millions/">TechCrunch, &#8220;A breach of Gravy Analytics&#8217; huge trove of location data threatens the privacy of millions&#8221;</a>; <a href="https://therecord.media/location-data-broker-gravy-breach">The Record, &#8220;Major location data broker reports hack to Norwegian authorities&#8221;</a>). The breach happened weeks after the FTC had ordered the company to stop selling sensitive location data in the first place, illustrating a risk regulation alone cannot fix: even a banned dataset, once collected, remains a permanent, leakable liability.</p><p>In April 2026, Citizen Lab published a full technical analysis of PenLink&#8217;s Webloc product, built on the July 2023 acquisition of the Israeli firm Cobwebs Technologies for roughly $200 million (the buyer of record was Spire Capital, the private equity firm that owns PenLink, which then merged Cobwebs in), showing a system covering roughly 500 million mobile devices globally, refreshed every four to twenty-four hours, with three years of historical depth, sold to ICE, the U.S. Navy&#8217;s Office of Naval Intelligence, the U.S. Army&#8217;s Space and Missile Defense Command, Hungarian domestic intelligence, and dozens of American municipal police departments (<a href="https://citizenlab.ca/2026/04/uncovering-webloc-penlink-ad-based-geolocation-surveillance/">Citizen Lab, &#8220;Uncovering Webloc: An Analysis of Penlink&#8217;s Ad-based Geolocation Surveillance Tech&#8221;</a>; <a href="https://www.404media.co/inside-ices-tool-to-monitor-phones-in-entire-neighborhoods/">404 Media, &#8220;Inside ICE&#8217;s Tool to Monitor Phones in Entire Neighborhoods&#8221;</a>; <a href="https://techcrunch.com/2023/06/29/penlink-acquires-israeli-web-intelligence-firm-cobwebs-for-200m/">TechCrunch, &#8220;Penlink acquires Israeli web intelligence firm Cobwebs for $200M&#8221;</a>).</p><p>And in May 2026, Haaretz and PPC Land reported that Israeli firms had built techniques to de-anonymize and track Starlink satellite internet users through the same ad-derived data channel, extending the pipeline&#8217;s reach to a connectivity technology many people specifically chose to route around traditional, trackable infrastructure (<a href="https://ppc.land/starlink-users-can-be-tracked-and-identified-using-ad-data-israeli-firms-show/">PPC Land, &#8220;Starlink users can be tracked and identified using ad data, Israeli firms show&#8221;</a>; <a href="https://cyprus-mail.com/2026/05/14/cyprus-based-company-builds-tech-to-reveal-identities-of-starlink-users">Cyprus Mail, &#8220;Cyprus-based company builds tech to reveal identities of Starlink users&#8221;</a>).</p><p>These are not edge cases pulled to make a point. They are a representative sample from a dataset of 302 dated incidents involving priests, abortion clinic visitors, NSA and CIA employees, Muslim prayer app users, and satellite internet subscribers who thought they had opted out of exactly this. The bulk of the record runs from 2018 through 2026, but the earliest entry predates the smartphone entirely: in the summer of 1999, a stalker named Liam Youens bought Amy Boyer&#8217;s Social Security number and workplace address from the people-search broker Docusearch for a combined $154 (the SSN delivered August 2, the workplace address September 8), then on October 15, 1999 drove to that workplace and murdered her (<a href="https://archive.epic.org/privacy/boyer/brief.html">EPIC, Remsburg v. Docusearch amicus brief</a>; <a href="https://www.upi.com/Archives/2000/04/28/Internet-firm-sued-for-girls-murder/8625956894400/">UPI, &#8220;Internet firm sued for girl&#8217;s murder&#8221;</a>). The industry that sold the data that killed her was never meaningfully dismantled. It was scaled.</p><h2><strong>It Is Not Just an American Problem</strong></h2><p>The German investigative outlet netzpolitik.org, in a multi-year project called the Databroker Files, produced the most detailed non-U.S. documentation of this pipeline, showing that purchased bidstream and SDK data could be used to identify and track German soldiers, intelligence personnel, and EU officials, a national-security exposure created not by a hostile intelligence service but by the ordinary functioning of the advertising industry (<a href="https://netzpolitik.org/2024/data-broker-files-how-data-brokers-sell-our-location-data-and-jeopardise-national-security/">netzpolitik.org, &#8220;Data Broker Files: How data brokers sell our location data and jeopardise national security&#8221;</a>; <a href="https://netzpolitik.org/2025/databroker-files-targeting-the-eu/">netzpolitik.org, &#8220;Databroker Files: Targeting the EU&#8221;</a>). A follow-up dataset identified roughly 40,000 apps feeding this specific tracking supply chain (<a href="https://netzpolitik.org/2025/databroker-files-new-data-set-reveals-40000-apps-behind-location-tracking/">netzpolitik.org, &#8220;Databroker Files: New data set reveals 40,000 apps behind location tracking&#8221;</a>). Techdirt separately reported on a Lithuanian adtech firm and a Florida-based data broker found trafficking in sensitive U.S. military and intelligence worker location data specifically (<a href="https://www.techdirt.com/2025/02/19/lithuanian-adtech-firm-and-florida-data-broker-trafficked-in-sensitive-u-s-military-and-intelligence-worker-location-data/">Techdirt, &#8220;Lithuanian Adtech Firm And Florida Data Broker Trafficked In Sensitive U.S. Military And Intelligence Worker Location Data&#8221;</a>).</p><p>Haaretz has separately reported extensively on the Israeli commercial intelligence ecosystem, ISA&#8217;s Patternz platform, Rayzone Group, and the &#8220;Insanet&#8221; ad-delivered spyware tool marketed as capable of infecting a target device via a single ad impression with no click required (<a href="https://www.haaretz.com/israel-news/2023-09-14/ty-article-magazine/.highlight/revealed-israeli-cyber-firms-developed-an-insane-new-spyware-tool-no-defense-exists/0000018a-93cb-de77-a98f-ffdf2fb60000">Haaretz, &#8220;Revealed: Israeli Cyber Firms Have Developed an &#8216;Insane&#8217; New Spyware Tool: No Defense Exists&#8221;</a>). This is a global industry with a global supply chain, American demand, Israeli and European tooling, and app users on every continent unknowingly contributing the raw material.</p><h2><strong>The Money Behind the Monster</strong></h2><p>Follow the ownership and the picture sharpens further. PenLink&#8217;s $200 million acquisition of Cobwebs in 2023 was not a startup buying a startup, it was a U.S. law-enforcement-technology company consolidating an Israeli intelligence firm&#8217;s product directly into its own catalog for American police departments (<a href="https://www.penlink.com/press-release/cobwebs-technologies-joins-penlink-to-expand-its-digital-investigative-platform/">Penlink press release, &#8220;Cobwebs Technologies Joins PenLink to Expand its Digital Investigative Platform&#8221;</a>). Babel Street operates with private equity backing; Veritas Capital is the documented institutional sponsor, per public reporting, though some secondary claims about additional co-investors have not been independently corroborated and should be treated with appropriate caution. Near Intelligence, which had gone public via a SPAC merger and marketed itself as having the &#8220;world&#8217;s largest dataset of people and places,&#8221; collapsed into Chapter 11 bankruptcy in December 2023 after regulatory scrutiny, and its customer relationships and technology were absorbed by a successor entity, Azira (<a href="https://www.businesswire.com/news/home/20231208597268/en/Near-Intelligence-Files-for-Chapter-11-Protection-and-Enters-into-Agreement-to-Sell-its-Business">Business Wire, &#8220;Near Intelligence Files for Chapter 11 Protection and Enters into Agreement to Sell its Business&#8221;</a>; <a href="https://www.bloomberg.com/news/articles/2023-12-08/ex-spac-near-intelligence-files-for-bankruptcy-months-after-going-public">Bloomberg, &#8220;Data Firm Near Intelligence Files for Bankruptcy Months After Going Public&#8221;</a>). In August 2025, the Department of Justice&#8217;s Southern District of New York went further and criminally charged executives of data intelligence and mobile advertising companies in connection with the underlying conduct (<a href="https://www.justice.gov/usao-sdny/pr/executives-data-intelligence-and-mobile-advertising-companies-charged-connection">U.S. Department of Justice, SDNY, &#8220;Executives Of Data Intelligence And Mobile Advertising Companies Charged&#8221;</a>), the first indication that this specific corner of the industry&#8217;s collapse produced individual criminal exposure rather than just a bankruptcy filing and a rebrand.</p><p>That is a company failing and being reconstituted twice, once through bankruptcy and once through a felony indictment, while its underlying data relationships appear to survive each collapse under a new name. The product outlives the company. That pattern, more than any single vendor&#8217;s press release, is why cataloging entities rather than headlines is the only way to actually track this industry: the names change faster than the conduct does.</p><h2><strong>Why This Article Exists</strong></h2><p>The point of building the database wasn&#8217;t to produce one more &#8220;surveillance is bad&#8221; piece. Plenty of those exist, and most of them are correct but forgettable, because a single anecdote is easy to dismiss as exceptional. I wrote one of them myself: <a href="/__u/ringmast4r.substack.com/p/the-silent-enemy-how-the-ads-on-your">The Silent Enemy</a>, the May essay this database grew out of, which traced the system&#8217;s shape in narrative form. This piece is the audit that essay demanded. What is much harder to dismiss is 424 named companies with competitors, 302 dated incidents with named victims and named agencies, and a Supreme Court ruling from two weeks before this article&#8217;s publication that a vendor&#8217;s own internal memo, obtained directly and quoted here for the first time, explicitly argues does not apply to it.</p><p>The boogeyman question has an answer. It is not a metaphor. It has a customer list, a revenue model, a legal strategy, and, as of this year, a Supreme Court ruling it is already writing internal memos about how to route around.</p><h2><strong>What a Normal Person Can Actually Do</strong></h2><p>Nothing on this list stops the pipeline. The pipeline is an industry, and industries get stopped by law or not at all. What these steps do is shrink your personal contribution to the data supply, which is worth doing anyway:</p><ul><li><p><strong>Deny app tracking when asked, and kill the identifier.</strong> On iOS: Settings, Privacy &amp; Security, Tracking, turn off &#8220;Allow Apps to Request to Track.&#8221; On Android: Settings, Privacy, Ads, delete your advertising ID. That identifier is the key the entire resale chain uses to link your records together.</p></li><li><p><strong>Audit which apps hold precise location.</strong> Weather, shopping, and free game apps with &#8220;always&#8221; location access are the classic SDK collection points in this article&#8217;s incident record. Downgrade to &#8220;while using&#8221; or &#8220;never,&#8221; and choose approximate over precise wherever the OS offers the option.</p></li><li><p><strong>Treat free ad-supported apps as what they are.</strong> Every ad impression is a bid request broadcasting your identifiers to hundreds of companies. A paid app, or the browser version of the same service, generally is not.</p></li><li><p><strong>If you live in California, use the DROP.</strong> The enforcement window opens August 1, 2026. One request directs every registered data broker in the state, plus their service providers and contractors, to delete your data unless a statutory exception applies (<a href="https://cppa.ca.gov/announcements/2025/20251113.html">California Privacy Protection Agency</a>).</p></li><li><p><strong>Expect to repeat all of this.</strong> The industry answered Apple&#8217;s tracking prompt with probabilistic fingerprinting, covered in the paid section below. Hygiene shrinks your surface. It does not create a right.</p></li></ul><p>The paid section below goes further: the specific people who built this industry and where they came from, the technical mechanics of how a location point gets from your phone to a federal contractor&#8217;s dashboard, and the forward-looking signals worth watching over the rest of 2026, including the regulatory deadline that opens August 1.</p>
      <p>
          <a href="/__u/ringmast4r.substack.com/p/the-boogeyman-audit-what-happens">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[California Left 148 U.S. Military Installations on an Unauthenticated, End-of-Life Map Server. California's Own Vulnerability Program Called It "Not Applicable."]]></title><description><![CDATA[The short version]]></description><link>https://ringmast4r.substack.com/p/california-left-148-us-military-installations</link><guid isPermaLink="false">https://ringmast4r.substack.com/p/california-left-148-us-military-installations</guid><dc:creator><![CDATA[Patrick Quirk]]></dc:creator><pubDate>Mon, 06 Jul 2026 21:34:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!UgWP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feec771b4-9d77-4328-90ea-ee6813810547_2560x1237.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!UgWP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feec771b4-9d77-4328-90ea-ee6813810547_2560x1237.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!UgWP!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feec771b4-9d77-4328-90ea-ee6813810547_2560x1237.png 424w, /__u/substackcdn.com/image/fetch/$s_!UgWP!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feec771b4-9d77-4328-90ea-ee6813810547_2560x1237.png 848w, /__u/substackcdn.com/image/fetch/$s_!UgWP!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feec771b4-9d77-4328-90ea-ee6813810547_2560x1237.png 1272w, /__u/substackcdn.com/image/fetch/$s_!UgWP!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feec771b4-9d77-4328-90ea-ee6813810547_2560x1237.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!UgWP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feec771b4-9d77-4328-90ea-ee6813810547_2560x1237.png" width="1456" height="704" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eec771b4-9d77-4328-90ea-ee6813810547_2560x1237.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:704,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1653390,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://ringmast4r.substack.com/i/205672900?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feec771b4-9d77-4328-90ea-ee6813810547_2560x1237.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!UgWP!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feec771b4-9d77-4328-90ea-ee6813810547_2560x1237.png 424w, /__u/substackcdn.com/image/fetch/$s_!UgWP!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feec771b4-9d77-4328-90ea-ee6813810547_2560x1237.png 848w, /__u/substackcdn.com/image/fetch/$s_!UgWP!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feec771b4-9d77-4328-90ea-ee6813810547_2560x1237.png 1272w, /__u/substackcdn.com/image/fetch/$s_!UgWP!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feec771b4-9d77-4328-90ea-ee6813810547_2560x1237.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>The short version</strong></h2><p>The State of California operates a public ArcGIS server at <strong><a href="https://services.gis.ca.gov/arcgis/rest/services">https://services.gis.ca.gov/arcgis/rest/services</a></strong>. It runs ArcGIS Server version <strong>10.71</strong>, a release that reached end of life and no longer receives security patches. That server hands out, to anyone on the internet with no login and no token, a folder literally named <strong>IntelligenceMilitary</strong>. Inside it is a single feature layer: <strong>Military Installations</strong>.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://ringmast4r.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ringmast4r is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>The exact endpoint anyone can open right now:</p><p><strong><a href="https://services.gis.ca.gov/arcgis/rest/services/IntelligenceMilitary/MilitaryInstallations/MapServer/0">https://services.gis.ca.gov/arcgis/rest/services/IntelligenceMilitary/MilitaryInstallations/MapServer/0</a></strong></p><p>That layer returns <strong>148 polygons</strong>, each one a U.S. military installation in California, complete with the installation name, the operating service branch, and center coordinates. Beale Air Force Base. Travis Air Force Base. Sierra Army Depot. Mare Island Naval Complex. Mather. McClellan. San Francisco Naval Communications. The full set of 148.</p><p>I reported it to the state and to the relevant vulnerability disclosure program. The state never replied. Two separate triage processes closed it as &#8220;not applicable.&#8221; As of this writing the server is still up, still unpatched, and still serving the data.</p><h2><strong>What is actually exposed</strong></h2><p>The <code>IntelligenceMilitary/MilitaryInstallations</code> layer is a polygon feature service. Every feature carries a full attribute record. The fields include the installation name (<code>instname</code>, <code>feat_name</code>), the branch of service (<code>service_d</code>, values like <code>USA</code>, <code>USAF</code>, <code>USN</code>), a facility description (<code>inst_desc</code>, values like &#8220;Naval Installation&#8221;, &#8220;Military Airport&#8221;, &#8220;Army Installation&#8221;), and precise geographic coordinates (<code>coord_x</code>, <code>coord_y</code>).</p><p>A sample of what comes back with a single unauthenticated request:</p><ul><li><p>Sierra Army Depot (US Army)</p></li><li><p>Beale Air Force Base (US Air Force)</p></li><li><p>McClellan Air Force Base (US Air Force)</p></li><li><p>Mather Air Force Base (US Air Force)</p></li><li><p>Sacramento Army Depot (US Army)</p></li><li><p>Travis Air Force Base (US Air Force)</p></li><li><p>Mare Island Naval Complex (US Navy)</p></li><li><p>San Francisco Naval Communications (US Navy)</p></li></ul><p>That is 8 of 148. The layer returns the complete set, with full boundary geometry, in standard GeoJSON or Esri JSON.</p><h2><strong>&#8220;But base locations are public&#8221;</strong></h2><p>Yes, the fact that Beale Air Force Base exists and is near Marysville is not a secret. That is the wrong frame. The problem here is threefold, and none of the three is about whether a base can be found on a paper map.</p><p>First, this is <strong>precise boundary and perimeter geometry</strong> in a machine-readable format, aggregated into one clean file. There is a difference between &#8220;the public knows a base is over there&#8221; and &#8220;here is every installation in the state as GIS polygons you can load straight into a targeting or planning workflow in ten seconds.&#8221; Aggregation is the vulnerability. Convenience for an adversary is the harm.</p><p>Second, the layer does not sit alone. It sits on a server that also serves, unauthenticated, a large collection of other California infrastructure and hazard layers: fault lines, liquefaction zones, 100 and 200 and 500 year floodplains, fire responsibility areas, water district offices, public and private school locations, and political district boundaries. An analyst building a picture of the state can pull all of it from one host in one pass. Military installations plus floodplains plus fault zones plus school locations is not &#8220;public map data.&#8221; It is a pre assembled situational awareness package.</p><p>Third, and most important, <strong>the server is end of life</strong>. Version 10.71 is out of support. It receives no security updates. The exposure of the data is one problem. An unpatched, internet facing application server sitting in front of a state government network is a second, larger problem, and it is the kind of foothold that does not stay a map problem for long.</p><h2><strong>How it was found and verified</strong></h2><p>This was found during routine, non intrusive scanning of publicly reachable government GIS infrastructure. Verification was read only. The ArcGIS REST API exposes a service directory at a well known path. Requesting the directory in JSON returns the folder list. The <code>IntelligenceMilitary</code> folder returns its one service. The service metadata returns the layer, and a standard feature query returns the records.</p><p>No authentication was presented at any step because none was required. No data was altered. No write operations were attempted. The full evidence set, the raw REST directory pages, the per layer metadata, and the returned records, was captured and retained.</p><h2><strong>The disclosure timeline</strong></h2><ul><li><p><strong>2026-06-20</strong> Finding documented, evidence captured, disclosure PDF prepared.</p></li><li><p><strong>2026-06-23</strong> Responsible disclosure emailed to the California State Threat Assessment channel (Cal CSIC, Cal OES), with CISA copied given the presence of federal military installation data on a state operated server. The email requested acknowledgement within 48 hours.</p></li><li><p><strong>2026-06-23</strong> The only response received was an automated intake reply from CISA directing submitters to their coordinated disclosure portal. No human from the state responded.</p></li><li><p><strong>2026-07-03</strong> The same finding, submitted through the <strong>California Department of Technology&#8217;s own vulnerability disclosure program</strong>, was triaged and marked &#8220;not applicable.&#8221; California&#8217;s own security program was told about California&#8217;s own exposed military installation data, and closed the report as not applicable.</p></li><li><p><strong>2026-07-06</strong> Re verified. The server still reports version 10.71. The <code>IntelligenceMilitary/MilitaryInstallations</code> layer is still served without authentication. Nothing has changed.</p></li></ul><h2><strong>Why &#8220;not applicable&#8221; is the wrong answer</strong></h2><p>I want to be fair to triage teams. They see volume, and a lot of what crosses their desk is noise. ArcGIS servers are supposed to serve public map data, so an open service directory can look like working as intended.</p><p>It is not working as intended when the open service is a folder named IntelligenceMilitary containing 148 military installations, running on an unsupported server version, at a state government that did not choose to publish it that way and did not answer when told. &#8220;Public data on a public map server&#8221; is a reasonable default assumption. It stops being reasonable the moment you open the folder and read the name on it. And it is harder to defend when the program marking the report &#8220;not applicable&#8221; belongs to the same state that owns the exposed server. California&#8217;s own vulnerability disclosure program was in the best possible position to route this to the asset owner, and instead it closed the ticket.</p><p>The correct answer to a report like this is not to reward it. It is to route it to the asset owner and get the box either patched or pulled. A bounty is not the point. Remediation is the point.</p><h2><strong>A question for the people who keep saying &#8220;it is public anyway&#8221;</strong></h2><p>I want to put this directly to the culture that has grown up around open data, because that culture is the reflex being used to wave this away.</p><p>Every time one of these comes out, someone shrugs and says &#8220;so what.&#8221; So let me answer the &#8220;so what&#8221; plainly, because in this case the answer is not abstract and it is not small. So what? It is military bases. It is 148 United States military installations, Army, Navy, and Air Force, mapped out as neat polygons and handed to the entire internet with no login. That is the &#8220;so what.&#8221; If your reaction to an unpatched state server broadcasting the boundaries of every military installation in California is &#8220;so what,&#8221; then you are exactly the mindset this article is about.</p><p>Stop and read the sentence out loud. &#8220;We are broadcasting the mapped boundaries of 148 United States military installations to the entire planet, with no login, on an unpatched server, and that is fine because it is open data.&#8221; Does that actually sound fine to you? Does it sound like a decision anyone made on purpose, weighed the tradeoffs on, and signed off on? Or does it sound like a default nobody ever stopped to question?</p><p>There is a difference between information that is public and information that should be assembled, packaged, and served to anyone on Earth in a format built for machines to consume. Transparency is a good and important thing. Open data on schools, districts, water offices, and hazard zones serves the public. But somewhere in the rush to make everything open, &#8220;the public has a right to know where the fire zones are&#8221; quietly turned into &#8220;here are our military installations as ready to use polygons, help yourself.&#8221; Those are not the same value. One is civic. The other is a gift to anyone who does not wish us well.</p><p>The question is not technical. It is cultural. Who decided that a folder named IntelligenceMilitary belongs on the open internet, and when did we all agree to stop asking? If the honest answer is that nobody decided, that it was just a default and an oversight dressed up after the fact as &#8220;open info,&#8221; then the honest response is to close it, not to defend it. &#8220;It is public anyway&#8221; is not a policy. It is what we say when we do not want to admit we were not paying attention.</p><h2><strong>&#8220;But I use ArcGIS to look up parcels&#8221;</strong></h2><p>A friend pushed back on me over exactly this. He looks up open parcels through ArcGIS all the time, he said, so what is the problem. It is a fair thing to ask, and the answer is the whole point.</p><p>I am not looking at open parcels. Nobody is objecting to a resident pulling up a lot line, a zoning layer, or a county boundary. That is the system working as designed, and it is good. Public parcel data is public on purpose. Somebody decided it, published it, and stands behind it.</p><p>That is not what this work is about. This work is about two things that are nothing like a parcel lookup. The first is unauthenticated write access to government ArcGIS databases, where a random person on the internet can not just read a layer but create, update, and delete records in it, with no login. That is not open data. That is an open door into the system of record. The second is sensitive data that was never meant to be laid out this way at all, aggregated and packaged and served to the whole world, of which a folder named IntelligenceMilitary holding 148 military installations is about as clear an example as exists.</p><p>Parcels are someone choosing to show you the property lines. This is a federal and state map server laying out military base installations, perfectly formatted, for anyone to take. And not just anyone. Bots. Automated scanners crawl this exact class of endpoint continuously, with no human in the loop, hoovering up whatever is reachable and never forgetting it once they have it. The parcel lookup is a person making a choice. This is a machine finding a door that was left open. Those are not the same thing, and pretending they are is how the door stays open.</p><h2><strong>What remediation looks like</strong></h2><p>The fixes are ordinary and well understood:</p><ol><li><p><strong>Take the end of life server off the public internet, or upgrade it.</strong> Version 10.71 should not be internet facing under any circumstances. This is the priority item regardless of the data.</p></li><li><p><strong>Remove or restrict the IntelligenceMilitary service.</strong> If there is a legitimate need for this layer, put it behind authentication and serve it only to the parties that need it.</p></li><li><p><strong>Review the rest of the exposed catalog.</strong> Decide deliberately, layer by layer, what should be public, and gate the rest.</p></li><li><p><strong>Audit access logs</strong> on the military installations layer for prior unauthenticated pulls.</p></li></ol><h2><strong>The point</strong></h2><p>I keep finding the same shape of problem. A government stands up a GIS server, forgets it, lets it age past end of life, and it quietly serves things nobody signed off on serving. When someone reports it in good faith, the report gets closed as noise because the reporting channels are tuned for bug bounties and not for &#8220;your unpatched server is handing out military installation boundaries to the entire internet.&#8221;</p><p>I tried to help. I did the work, I found it, I documented it, and I reported it quietly and in good faith to the people who own it and to the people paid to catch exactly this. Instead of a reply, or a fix, I was met with silence and a &#8220;not applicable.&#8221; So here it is.</p><p>I would rather not write these publicly. The quiet email is the right first move, and it should be enough. But the pattern is hard to ignore. The private reports get closed as noise, and the exposures stay open for weeks. The moment it becomes public, it gets fixed. If daylight is what finally moves a patch that should have shipped on day one, then daylight is what these will get, every time, until the quiet channel starts working.</p><p>Our adversaries would not hesitate to use an exposure like this against us. It costs them nothing and it is sitting in the open right now. God Bless.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://ringmast4r.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ringmast4r is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Town of Jupiter, FL Water Infrastructure: GIS Write Access Exposed]]></title><description><![CDATA[I found an unauthenticated GIS write access vulnerability in the Town of Jupiter, Florida's water and utilities management system.]]></description><link>https://ringmast4r.substack.com/p/town-of-jupiter-fl-water-infrastructure</link><guid isPermaLink="false">https://ringmast4r.substack.com/p/town-of-jupiter-fl-water-infrastructure</guid><dc:creator><![CDATA[Patrick Quirk]]></dc:creator><pubDate>Mon, 06 Jul 2026 20:24:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_wFo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd656a710-bb55-4641-a727-c76357bbc164_1400x971.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!_wFo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd656a710-bb55-4641-a727-c76357bbc164_1400x971.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!_wFo!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd656a710-bb55-4641-a727-c76357bbc164_1400x971.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!_wFo!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd656a710-bb55-4641-a727-c76357bbc164_1400x971.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!_wFo!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd656a710-bb55-4641-a727-c76357bbc164_1400x971.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!_wFo!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd656a710-bb55-4641-a727-c76357bbc164_1400x971.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!_wFo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd656a710-bb55-4641-a727-c76357bbc164_1400x971.jpeg" width="1400" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d656a710-bb55-4641-a727-c76357bbc164_1400x971.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:426952,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://ringmast4r.substack.com/i/205663535?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd656a710-bb55-4641-a727-c76357bbc164_1400x971.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!_wFo!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd656a710-bb55-4641-a727-c76357bbc164_1400x971.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!_wFo!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd656a710-bb55-4641-a727-c76357bbc164_1400x971.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!_wFo!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd656a710-bb55-4641-a727-c76357bbc164_1400x971.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!_wFo!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd656a710-bb55-4641-a727-c76357bbc164_1400x971.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>The Vulnerability</strong></h2><p>The Town of Jupiter operates an ArcGIS-based geographic information system (GIS) for managing water, wastewater, energy, and public works infrastructure. Their REST API endpoints at <a href="https://maps.jupiter.fl.us/arcgis/rest/services">https://maps.jupiter.fl.us/arcgis/rest/services</a> were returning HTTP 200 responses to unauthenticated requests asking for Feature Server write access.</p><p>Specifically, the Lucity and EnerGov Feature Servers were accepting POST requests without token validation, allowing an unauthenticated attacker to:</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://ringmast4r.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ringmast4r is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><ul><li><p>Modify water service layer data</p></li><li><p>Update utility infrastructure records</p></li><li><p>Alter public works asset information</p></li><li><p>Corrupt critical GIS databases</p></li></ul><p>This wasn&#8217;t a &#8220;read-only&#8221; exposure. This was write access to systems that directly manage water and utility services for the municipality.</p><h2><strong>What Could Have Happened</strong></h2><p>An attacker with access to these Feature Servers could have:</p><ul><li><p><strong>Corrupted service layer data</strong> &#8212; Redraw utility lines, pipe routes, and infrastructure nodes in the GIS database, causing work crews to operate on false information</p></li><li><p><strong>Contaminated water treatment records</strong> &#8212; Modify treatment plant asset data, chlorination schedules, or pressure monitoring systems, potentially affecting public health</p></li><li><p><strong>Disabled critical alerts</strong> &#8212; Alter monitoring thresholds or sensor configurations in the GIS system that trigger operational alerts</p></li><li><p><strong>Disrupted emergency response</strong> &#8212; Modify asset locations so that emergency repair crews couldn&#8217;t locate broken water mains or gas lines during an outage</p></li><li><p><strong>Caused equipment damage</strong> &#8212; Trigger work orders on wrong infrastructure, causing crews to dig in the wrong locations and damage live utilities</p></li><li><p><strong>Sabotaged system reliability</strong> &#8212; Create a cascade of corrupted records that would require months of manual verification and repair</p></li></ul><p>This wasn&#8217;t a data leak. This was the ability to write false information into systems that people depend on when their water doesn&#8217;t work. The damage would have been operational, public-facing, and difficult to detect until someone tried to use the system during an actual emergency.</p><h2><strong>The Discovery and Response</strong></h2><p>I identified the vulnerability on June 22, 2026, and contacted the Town of Jupiter directly. Initial emails to karl.c@jupiter.fl.us and tg@jupiter.fl.us bounced (invalid addresses), so I escalated to Florida CSOC (Cybersecurity Operations Center).</p><p>Florida CSOC (csoc@digital.fl.gov) acknowledged receipt on July 3, 2026, and immediately engaged the Town of Jupiter IT team. The Town&#8217;s IT leadership expressed gratitude and commitment to immediate remediation.</p><h2><strong>Verification and Remediation</strong></h2><p>On July 5, 2026, I re-verified the vulnerability status:</p><ul><li><p>Lucity Feature Server now requires authentication tokens (previously returned write access)</p></li><li><p>EnerGov Feature Server now requires authentication tokens</p></li><li><p>The Utilities folder no longer lists Feature Servers publicly</p></li><li><p>Unauthenticated write exposure has been closed</p></li></ul><p>The Town of Jupiter acted decisively and thoroughly. This is infrastructure security done right.</p><h2><strong>Impact and Lessons</strong></h2><p>Critical infrastructure GIS systems should never accept unauthenticated write requests. The fact that this was exposed for any period of time highlights the importance of:</p><ol><li><p><strong>Continuous API auditing</strong> &#8212; REST endpoints need regular authentication verification</p></li><li><p><strong>State-level coordination</strong> &#8212; CSOC involvement ensured rapid escalation and accountability</p></li><li><p><strong>Rapid response</strong> &#8212; When municipalities take critical infrastructure seriously, they fix it fast</p></li></ol><p>The Town of Jupiter&#8217;s IT team did exactly what should happen in a responsible disclosure scenario. They fixed it. They fixed it completely. They fixed it fast.</p><div><hr></div><p>~Ringmast4r strikes again.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://ringmast4r.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ringmast4r is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Infraestructura de Rastreo de Votos: Análisis Técnico Completo]]></title><description><![CDATA[El C&#243;digo Fuente, Esquema de Base de Datos, Endpoints de API e Infraestructura Detr&#225;s del Sistema de Vigilancia Electoral de Venezuela]]></description><link>https://ringmast4r.substack.com/p/infraestructura-de-rastreo-de-votos</link><guid isPermaLink="false">https://ringmast4r.substack.com/p/infraestructura-de-rastreo-de-votos</guid><dc:creator><![CDATA[Patrick Quirk]]></dc:creator><pubDate>Sun, 05 Jul 2026 10:00:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!tSlf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24ca2248-b0f0-42cc-bcc3-98c758799763_2560x1237.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!tSlf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24ca2248-b0f0-42cc-bcc3-98c758799763_2560x1237.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!tSlf!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24ca2248-b0f0-42cc-bcc3-98c758799763_2560x1237.png 424w, /__u/substackcdn.com/image/fetch/$s_!tSlf!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24ca2248-b0f0-42cc-bcc3-98c758799763_2560x1237.png 848w, /__u/substackcdn.com/image/fetch/$s_!tSlf!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24ca2248-b0f0-42cc-bcc3-98c758799763_2560x1237.png 1272w, /__u/substackcdn.com/image/fetch/$s_!tSlf!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24ca2248-b0f0-42cc-bcc3-98c758799763_2560x1237.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!tSlf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24ca2248-b0f0-42cc-bcc3-98c758799763_2560x1237.png" width="1456" height="704" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/24ca2248-b0f0-42cc-bcc3-98c758799763_2560x1237.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:704,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:422100,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://ringmast4r.substack.com/i/205180314?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24ca2248-b0f0-42cc-bcc3-98c758799763_2560x1237.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!tSlf!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24ca2248-b0f0-42cc-bcc3-98c758799763_2560x1237.png 424w, /__u/substackcdn.com/image/fetch/$s_!tSlf!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24ca2248-b0f0-42cc-bcc3-98c758799763_2560x1237.png 848w, /__u/substackcdn.com/image/fetch/$s_!tSlf!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24ca2248-b0f0-42cc-bcc3-98c758799763_2560x1237.png 1272w, /__u/substackcdn.com/image/fetch/$s_!tSlf!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24ca2248-b0f0-42cc-bcc3-98c758799763_2560x1237.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>El Descubrimiento del C&#243;digo Fuente</strong></h2><p>En un repositorio Git expuesto en <code>gitlab.mtt.gob.ve/cmorales/SIGESP-MPPT.git</code>, accedido sobre HTTP plano sin autenticaci&#243;n, estaba el c&#243;digo fuente completo de Chamba Juvenil. 23.228 archivos. Stack de aplicaci&#243;n completo. Cada m&#243;dulo documentado.</p><p>El sistema de rastreo de votos ocupaba una carpeta discreta con su propio controlador, modelo, capa de vista y frontend JavaScript. No era c&#243;digo legado. No estaba deprecado. Era un componente completamente mantenido y activamente usado del sistema de registro.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://ringmast4r.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ringmast4r is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h2><strong>La Arquitectura del M&#243;dulo de Registro de Votos</strong></h2><h3><strong>Controlador: Registro_voto.php (430 l&#237;neas)</strong></h3><p>El controlador principal maneja la presentaci&#243;n de datos de votos:</p><pre><code><code>POST /post_registro_votos
</code></code></pre><p>Este endpoint acepta:</p><ul><li><p>Nombre y c&#233;dula</p></li><li><p>Asignaci&#243;n de estructura organizacional (c&#243;digos 2, 3, 17, 18, 19, 20)</p></li><li><p>Estado, municipio, parroquia, centro de votaci&#243;n</p></li><li><p>Respuesta de voto binaria (s&#237;/no)</p></li><li><p>Coordenadas de latitud y longitud</p></li><li><p>N&#250;mero telef&#243;nico</p></li></ul><p>El controlador direcciona presentaciones a diferentes tablas de base de datos seg&#250;n el c&#243;digo de estructura:</p><pre><code><code>if (structure_code in [gov_employee_codes]) {
  INSERT INTO tbl_servidores_publico
} elseif (structure_code in [organization_member_codes]) {
  INSERT INTO tbl_estructura_preorizado
} else {
  INSERT INTO tbl_registro_del_voto
}
</code></code></pre><h3><strong>La Funci&#243;n de Estad&#237;sticas</strong></h3><p>El m&#233;todo estadistica_votos() es donde sucede la manipulaci&#243;n:</p><pre><code><code>$raw_count = count_all_votes();
$reported_count = $raw_count + 273 + 800;
return ["resultado" =&gt; $reported_count];
</code></code></pre><p>1.073 votos fantasma se a&#241;aden a cada reporte de estad&#237;sticas. Esto est&#225; hardcodeado. Esto es por dise&#241;o. El panel de reportes muestra n&#250;meros inflados de participaci&#243;n.</p><h3><strong>Esquema de Base de Datos</strong></h3><p>Tres tablas dedicadas para rastreo de votos:</p><p><strong>tbl_registro_del_voto</strong> &#8212; Registros generales de votos de poblaci&#243;n</p><ul><li><p>id (clave principal)</p></li><li><p>cedula (c&#233;dula de identidad nacional de ciudadano)</p></li><li><p>nombre (nombre completo)</p></li><li><p>telefono (tel&#233;fono)</p></li><li><p>estado (c&#243;digo de estado)</p></li><li><p>municipio (c&#243;digo de municipio)</p></li><li><p>parroquia (c&#243;digo de parroquia)</p></li><li><p>centro_votacion (ID del centro de votaci&#243;n)</p></li><li><p>voto_si_no (binario: vot&#243; o no)</p></li><li><p>latitud (latitud GPS)</p></li><li><p>longitud (longitud GPS)</p></li><li><p>estructura_asignacion (c&#243;digo organizacional)</p></li><li><p>fecha_creacion (marca de tiempo)</p></li></ul><p><strong>tbl_servidores_publico</strong> &#8212; Rastreo de votos de empleados del gobierno (estructura id&#233;ntica)</p><p><strong>tbl_estructura_preorizado</strong> &#8212; Rastreo de miembros de estructura de partido/organizacional (estructura id&#233;ntica)</p><h3><strong>Interfaz de Administraci&#243;n</strong></h3><p>El formulario de registro de votos existe en <code>/admin/registro_voto.php</code>. No est&#225; escondido. Tiene un mapa interactivo impulsado por Leaflet.js para captura de coordenadas GPS. Un administrador puede:</p><ol><li><p>Buscar un ciudadano por nombre o c&#233;dula</p></li><li><p>Seleccionar su centro de votaci&#243;n de un dropdown</p></li><li><p>Hacer clic en un mapa para capturar coordenadas GPS</p></li><li><p>Marcar una casilla para &#8220;&#191;Votaron? S&#237;/No&#8221;</p></li><li><p>Presentar</p></li></ol><p>Los datos se escriben directamente en la base de datos sin validaci&#243;n m&#225;s all&#225; de verificaci&#243;n de tipo b&#225;sica.</p><div><hr></div><h2><strong>El Despliegue de Tres Dominios</strong></h2><h3><strong>Dominio 1: Chamba Juvenil</strong></h3><p><code>registro.chambajuvenil.gob.ve</code> &#8212; Sistema de aplicaci&#243;n de empleos de programas de empleo juvenil. 23.228 archivos en volcado .git. M&#243;dulo de rastreo de votos completamente funcional. Credenciales de base de datos expuestas en archivo .env.</p><h3><strong>Dominio 2: Juventud Socialista</strong></h3><p><code>registro.juventudsocialista.org.ve</code> &#8212; Portal de organizaci&#243;n de Juventud Socialista PSUV. C&#243;digo id&#233;ntico. Estructura de base de datos id&#233;ntica. Formulario de rastreo de votos id&#233;ntico.</p><h3><strong>Dominio 3: Comunas Juveniles</strong></h3><p><code>comunajoven.com.ve</code> &#8212; Portal de organizaci&#243;n de gobernanza comunal. Misma infraestructura de rastreo de votos. Mismos formularios. Mismo API.</p><p>Los archivos de configuraci&#243;n de Git muestran los mismos scripts de despliegue usados en los tres dominios. El mismo desarrollador (Carlos Morales, cmorales@mtt.gob.ve) comprometi&#243; a repositorios alojando los tres.</p><div><hr></div><h2><strong>La Conexi&#243;n del API de Distribuci&#243;n de Gas</strong></h2><p>El endpoint GraphQL del API de Distribuci&#243;n de Gas del Estado Gu&#225;rico expone introspecci&#243;n de esquema completa en:</p><pre><code><code>api-distribucion-gas.guarico.gob.ve/graphql
</code></code></pre><p>El esquema incluye dos consultas cr&#237;ticas:</p><pre><code><code>voterByCedulaRif(cedulaRif: String!): Voter
customerByCedulaRif(cedulaRif: String!): Customer
</code></code></pre><p>El objeto Voter retorna:</p><ul><li><p>cedulaRif (c&#233;dula de identidad nacional)</p></li><li><p>firstName, lastName</p></li><li><p>municipalityId, parishId</p></li><li><p>createdAt (marca de tiempo de registro)</p></li></ul><p>El objeto Customer retorna:</p><ul><li><p>cedulaRif (c&#233;dula de identidad nacional)</p></li><li><p>gasSubsidyStatus</p></li><li><p>paymentHistory</p></li><li><p>distributionCenter</p></li></ul><p>Mismo n&#250;mero de c&#233;dula. Una consulta retorna estado de votaci&#243;n. Una consulta retorna estado de subsidio. El API est&#225; dise&#241;ado arquitect&#243;nicamente para cruzar referencias.</p><div><hr></div><h2><strong>Credenciales Expuestas y Configuraci&#243;n</strong></h2><h3><strong>Archivos .env</strong></h3><p>Chamba Juvenil almacen&#243; credenciales de base de datos en archivos .env en texto plano:</p><pre><code><code>DB_CONNECTION=pgsql
DB_HOST=localhost
DB_PORT=5432
DB_DATABASE=db_chamba_produccion
DB_USERNAME=postgres
DB_PASSWORD=OUUO5bHoG4Q255Js8gevu87fM/CoBf8JhAc/Wa6raI0=
</code></code></pre><p>Bases de datos secundarias documentadas:</p><pre><code><code>db_pcj_2017_17052019
</code></code></pre><h3><strong>Configuraci&#243;n SFTP</strong></h3><p>Configuraci&#243;n SFTP de Visual Studio Code expuesta:</p><pre><code><code>Server: 190.202.144.60
Port: 1022
Username: chamba
Password: 1s0p0rt3++
Remote Path: /var/www/html/registrochamba/chambajuvenilc/
</code></code></pre><p>Credenciales de acceso directo al servidor para el directorio de aplicaci&#243;n web de producci&#243;n.</p><h3><strong>Tokens de Bot de Telegram</strong></h3><p>Dos tokens activos de bot de Telegram encontrados en c&#243;digo fuente:</p><pre><code><code>Bot ID: 8534453577
Token: AAHrCe_QOQRLK_nToS0pb4f5Y4ba5zBSJBQ
Chat ID: 6021886971

Bot ID: 7265564977
Token: AAHJcYuxTQX7coz-qatLEd9j5Ai1RLDv_fY
Chat IDs: 830259515, 6021886971
</code></code></pre><p>Ambos hardcodeados en controladores PHP y JavaScript. Conectados al mismo grupo de chat. Usados para notificaciones del sistema.</p><h3><strong>Clave Privada RSA</strong></h3><p>Una clave privada RSA PKCS#8 2048-bit completa almacenada en el repositorio. Esta clave puede descifrar tr&#225;fico, forjar certificados e impersonar servicios.</p><div><hr></div><h2><strong>El Mapa de Infraestructura</strong></h2><p>De archivos de configuraci&#243;n de Git y archivos .env, la topolog&#237;a de red interna emerge:</p><p><strong>Servidores de Base de Datos de N&#243;mina</strong> (IPs internas):</p><ul><li><p>172.31.8.44 &#8212; PostgreSQL principal (3 bases de datos: 2017, 2016, n&#243;mina de inducci&#243;n)</p></li><li><p>172.31.8.93 &#8212; PostgreSQL de presupuesto/adquisiciones</p></li></ul><p><strong>Autenticaci&#243;n</strong>:</p><ul><li><p>172.31.8.51 &#8212; Servidor LDAP (dc=mtt,dc=gob,dc=ve)</p></li></ul><p><strong>Servicios</strong>:</p><ul><li><p>proxy.mtt.gob.ve &#8212; Proxy de correo Zimbra</p></li><li><p>gitlab.mtt.gob.ve &#8212; GitLab interno (donde se aloj&#243; el c&#243;digo)</p></li><li><p>poi-r.vps.co.ve (puertos 3000/3001) &#8212; Servidor API para Ministerio de Agricultura Urbana</p></li></ul><p>Este es un mapa parcial de la red interna del gobierno venezolano, extra&#237;do de un &#250;nico repositorio Git expuesto.</p><div><hr></div><h2><strong>La Evaluaci&#243;n de Calidad del C&#243;digo</strong></h2><h3><strong>Inyecci&#243;n SQL: Universal</strong></h3><p>Cada interacci&#243;n de base de datos usa concatenaci&#243;n de cadena directa:</p><pre><code><code>$query = "SELECT * FROM tbl_registro_del_voto WHERE cedula = '" . $cedula . "'";
$result = $db-&gt;query($query);
</code></code></pre><p>La &#250;nica protecci&#243;n es <code>addslashes()</code>, una funci&#243;n conocida por ser evitable desde mediados de los 2000s. Cada caja de b&#250;squeda, cada filtro, cada campo de entrada en el sistema Chamba Juvenil es un punto potencial de inyecci&#243;n SQL.</p><h3><strong>Modo de Debug Habilitado en Producci&#243;n</strong></h3><p>Cada archivo .env contiene:</p><pre><code><code>APP_DEBUG=true
</code></code></pre><p>Esto significa que cualquier error muestra un rastreo de pila completo al navegador: rutas de archivo, llamadas de funci&#243;n, contenidos de variables, detalles de consultas de base de datos.</p><h3><strong>Credenciales Predeterminadas Nunca Cambiadas</strong></h3><p>M&#250;ltiples archivos .env exponen contrase&#241;as que son predeterminados de framework, nunca modificados:</p><pre><code><code>Ra&#237;z MySQL: password
Usuario Yii2: secret
</code></code></pre><h3><strong>Sin Endurecimiento de Servidor Web</strong></h3><p>Ni un &#250;nico servidor gubernamental fue configurado para bloquear acceso a archivos sensibles. Ninguna regla .htaccess. Ninguna configuraci&#243;n nginx para negar <code>.env</code>, <code>.git/config</code> o <code>docker-compose.yml</code>.</p><p>Tres l&#237;neas de configuraci&#243;n de servidor web hubieran prevenido cada hallazgo en este reporte.</p><div><hr></div><h2><strong>Cronolog&#237;a y Despliegue</strong></h2><p>Los metadatos de confirmaci&#243;n de Git muestran:</p><ul><li><p>Confirmaci&#243;n inicial: 2016</p></li><li><p>&#218;ltima actualizaci&#243;n: 2019</p></li><li><p>Desarrollador: Carlos Morales (cmorales@mtt.gob.ve)</p></li><li><p>Organizaci&#243;n: Ministerio de Transportes y Comunicaciones</p></li><li><p>Repositorio: Alojado en GitLab interno en gitlab.mtt.gob.ve</p></li></ul><p>El c&#243;digo fue mantenido en m&#250;ltiples administraciones y ciclos electorales venezolanos. No fue abandonado. Fue operacional.</p><div><hr></div><h2><strong>Patr&#243;n de Replicaci&#243;n</strong></h2><p>El c&#243;digo de rastreo de votos es id&#233;ntico en todos tres dominios:</p><ul><li><p>Mismo nombre de archivo de controlador y estructura</p></li><li><p>Mismo esquema de tabla de base de datos</p></li><li><p>Misma interfaz de formulario</p></li><li><p>Mismos dise&#241;os de panel de administraci&#243;n</p></li><li><p>Misma l&#243;gica de inflaci&#243;n de estad&#237;sticas</p></li></ul><p>Esto no es desarrollo independiente. Esta es replicaci&#243;n deliberada de la misma infraestructura de vigilancia en m&#250;ltiples sistemas gubernamentales.</p><div><hr></div><h2><strong>Lo Que la Evidencia Muestra</strong></h2><p>Esto no es hip&#243;tesis. Esto no es inferencia. Esto es:</p><ul><li><p>C&#243;digo fuente que puedes leer</p></li><li><p>Esquemas de base de datos que puedes analizar</p></li><li><p>Endpoints de API que puedes consultar</p></li><li><p>Archivos de configuraci&#243;n que puedes descifrar</p></li><li><p>Historial de Git que puedes examinar</p></li><li><p>Direcciones de red que puedes mapear</p></li></ul><p>El sistema de rastreo de votos existe. Fue construido. Fue desplegado. Fue conectado a sistemas de distribuci&#243;n de beneficios. Autom&#225;ticamente inflaba estad&#237;sticas. Fue replicado en m&#250;ltiples servicios gubernamentales.</p><p>La &#250;nica pregunta que permanece sin respuesta es: &#191;cu&#225;ntos votos fueron influenciados por ciudadanos sabiendo que su comportamiento electoral estaba siendo rastreado y vinculado a su acceso a servicios gubernamentales?</p><div><hr></div><p>Investigo y expongo la infraestructura de la tiran&#237;a. Cada art&#237;culo es otra pieza de evidencia que la gente que ama la libertad puede usar para entender, resistir y finalmente derrotar el control autoritario.</p><div><hr></div><p><em>Investigaci&#243;n Crystal Vault &#8212; Parte X-B &#8212; 2026</em></p><p><em>Todos los datos obtenidos de archivos p&#250;blicamente accesibles sin derivaci&#243;n de autenticaci&#243;n o compromiso del sistema. C&#243;digo fuente, configuraciones de Git, esquemas de base de datos y respuestas de API documentadas tal como se descubrieron. Todas las URLs y credenciales verificadas para ser p&#250;blicamente accesibles en el momento de la investigaci&#243;n.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://ringmast4r.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ringmast4r is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Tu Solicitud de Empleo Se Convirtió en Vigilancia Gubernamental: Cómo Venezuela Armó el Empleo]]></title><description><![CDATA[El Gobierno Venezolano Incrust&#243; un Sistema Oculto de Rastreo de Votos Dentro de un Programa de Empleos Juveniles. Si Te Registraste para Trabajar, Registraron Si Votaste, y Lo Vincularon a Tus Benefic]]></description><link>https://ringmast4r.substack.com/p/tu-solicitud-de-empleo-se-convirtio</link><guid isPermaLink="false">https://ringmast4r.substack.com/p/tu-solicitud-de-empleo-se-convirtio</guid><dc:creator><![CDATA[Patrick Quirk]]></dc:creator><pubDate>Sun, 05 Jul 2026 09:59:25 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Di11!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45127296-c937-4f2e-8e16-7ba19b91e6dc_2560x1237.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!Di11!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45127296-c937-4f2e-8e16-7ba19b91e6dc_2560x1237.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!Di11!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45127296-c937-4f2e-8e16-7ba19b91e6dc_2560x1237.png 424w, /__u/substackcdn.com/image/fetch/$s_!Di11!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45127296-c937-4f2e-8e16-7ba19b91e6dc_2560x1237.png 848w, /__u/substackcdn.com/image/fetch/$s_!Di11!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45127296-c937-4f2e-8e16-7ba19b91e6dc_2560x1237.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Di11!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45127296-c937-4f2e-8e16-7ba19b91e6dc_2560x1237.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!Di11!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45127296-c937-4f2e-8e16-7ba19b91e6dc_2560x1237.png" width="1456" height="704" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/45127296-c937-4f2e-8e16-7ba19b91e6dc_2560x1237.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:704,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:422100,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://ringmast4r.substack.com/i/205180116?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45127296-c937-4f2e-8e16-7ba19b91e6dc_2560x1237.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!Di11!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45127296-c937-4f2e-8e16-7ba19b91e6dc_2560x1237.png 424w, /__u/substackcdn.com/image/fetch/$s_!Di11!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45127296-c937-4f2e-8e16-7ba19b91e6dc_2560x1237.png 848w, /__u/substackcdn.com/image/fetch/$s_!Di11!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45127296-c937-4f2e-8e16-7ba19b91e6dc_2560x1237.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Di11!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45127296-c937-4f2e-8e16-7ba19b91e6dc_2560x1237.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>El Prop&#243;sito Real de Chamba Juvenil</strong></h2><p>Millones de j&#243;venes venezolanos hicieron lo que los gobiernos en todas partes dicen que hagan: solicitaron empleo. Entre 2017 y ahora, enviaron sus nombres, c&#233;dulas de identidad, n&#250;meros telef&#243;nicos, historiales educativos y cuentas de redes sociales a Chamba Juvenil, el programa nacional de empleos juveniles de Venezuela.</p><p>Se supon&#237;a que los ayudar&#237;a a encontrar trabajo. Capacitaci&#243;n de habilidades. Oportunidad econ&#243;mica.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://ringmast4r.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ringmast4r is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Pero escondido en el c&#243;digo de ese sistema hab&#237;a algo m&#225;s: un m&#243;dulo completo de rastreo de votos que registraba si cada solicitante vot&#243;, capturaba su ubicaci&#243;n GPS cuando lo hizo, y almacenaba todo en una base de datos etiquetada como &#8220;ESTRUCTURA DE REGISTRO DEL VOTO&#8221;.</p><p>No fue un error. No fue negligencia. Fue infraestructura. Construida a prop&#243;sito. Desplegada. Activa.</p><div><hr></div><h2><strong>C&#243;mo el Gobierno Convirti&#243; Solicitudes de Empleo en Vigilancia Electoral</strong></h2><p>Esto es lo que pas&#243; cuando solicitaste:</p><ol><li><p>Completaste una solicitud de empleo en <code>registro.chambajuvenil.gob.ve</code></p></li><li><p>Enviaste tu informaci&#243;n personal: nombre, c&#233;dula, tel&#233;fono, educaci&#243;n, historial laboral</p></li><li><p>Detr&#225;s de escenas, el sistema te asign&#243; un &#8220;c&#243;digo de estructura organizacional&#8221;</p></li><li><p>Empleados del gobierno pod&#237;an luego iniciar sesi&#243;n en un panel de administraci&#243;n y registrar si votaste</p></li><li><p>Tu estado de voto se almacenaba junto con tus coordenadas GPS, tu estado, tu municipio</p></li><li><p>Los datos se alimentaban a paneles de estad&#237;sticas que autom&#225;ticamente inflaban los conteos de votos por m&#225;s de 1.000 votos fantasma</p></li></ol><p>Solicitaste un trabajo. El gobierno construy&#243; una base de datos de votantes alrededor de ti.</p><div><hr></div><h2><strong>Esto No Fue Un Programa</strong></h2><p>El c&#243;digo id&#233;ntico de rastreo de votos se ejecuta en tres dominios gubernamentales separados:</p><ul><li><p>Chamba Juvenil (empleos juveniles)</p></li><li><p>Juventud Socialista (ala juvenil del PSUV)</p></li><li><p>Comunas Juveniles (gobernanza comunal)</p></li></ul><p>Tres sistemas diferentes. Misma infraestructura de vigilancia electoral. Misma estructura de base de datos. Mismos formularios. Mismo API.</p><p>Esto te dice algo cr&#237;tico: no fue un error que sucedi&#243; una vez. Fue una opci&#243;n deliberada de replicar la misma vigilancia en m&#250;ltiples servicios gubernamentales.</p><div><hr></div><h2><strong>Lo Vincularon a Tus Subsidios</strong></h2><p>Pero empeora.</p><p>El API de Distribuci&#243;n de Gas para el Estado Gu&#225;rico, el sistema que decide qui&#233;n recibe subsidios gubernamentales de gas, contiene una funci&#243;n dedicada de b&#250;squeda de votantes. Puedes consultarlo por c&#233;dula nacional y obtener el estado de registro de votante de alguien.</p><p>Mismo n&#250;mero de c&#233;dula. Misma persona.</p><p>El gobierno ahora puede preguntar: &#8220;&#191;Qui&#233;n recibe subsidios de gas?&#8221; y &#8220;&#191;C&#243;mo votaron?&#8221; en el mismo sistema. La arquitectura est&#225; construida para cruzar referencias.</p><p>Este es el mecanismo de coerci&#243;n. El acceso a la supervivencia, empleos, gas, vivienda, comida, se convierte en condicional al comportamiento pol&#237;tico.</p><div><hr></div><h2><strong>Lo Que Los N&#250;meros Muestran</strong></h2><ul><li><p><strong>3 dominios gubernamentales</strong> ejecutando c&#243;digo id&#233;ntico de vigilancia electoral</p></li><li><p><strong>23.228 archivos</strong> en el repositorio expuesto, incluyendo c&#243;digo fuente completo</p></li><li><p><strong>Coordenadas GPS registradas</strong> para cada voto</p></li><li><p><strong>1.073 votos fantasma</strong> a&#241;adidos autom&#225;ticamente a las estad&#237;sticas</p></li><li><p><strong>Cero controles de seguridad</strong> en el formulario de rastreo de votos</p></li><li><p><strong>HTTP plano</strong> para acceso de servidor, sin encriptaci&#243;n</p></li></ul><p>El gobierno venezolano no solo vigil&#243; la votaci&#243;n. La automatiz&#243;. La replic&#243;. La integr&#243; con la distribuci&#243;n de beneficios.</p><div><hr></div><h2><strong>Por Qu&#233; Importa Esto</strong></h2><p>En democracias, la votaci&#243;n se supone que es secreta. Emites tu voto. Nadie sabe c&#243;mo votaste. Ese es el punto completo, protecci&#243;n contra coerci&#243;n.</p><p>Venezuela desmantel&#243; esa protecci&#243;n por dise&#241;o. Un ciudadano no pod&#237;a solicitar un trabajo gubernamental sin potencialmente tener su comportamiento electoral rastreado. No pod&#237;a recibir raciones de gas sin que su estado de votante fuera consultable por el estado. No pod&#237;a acceder a educaci&#243;n o subsidios de atenci&#243;n m&#233;dica sin que la infraestructura de vigilancia supiera c&#243;mo votaron.</p><p>Este no es un estado de vigilancia que esp&#237;a a disidentes. Este es un estado de vigilancia que condiciona el acceso a la supervivencia en la lealtad pol&#237;tica.</p><p>El sistema Carnet de la Patria fue ampliamente documentado como una herramienta para esto. Lo que este c&#243;digo fuente revela es el mecanismo actual debajo. No alegaciones de pol&#237;ticos de oposici&#243;n. No teor&#237;as. El c&#243;digo PHP actual. Las tablas de base de datos actuales. Los endpoints de API actuales.</p><div><hr></div><h2><strong>Lo Dejaron Todo Atr&#225;s</strong></h2><p>Cuando los servidores que alojaban este c&#243;digo fueron expuestos, lo dejaron todo: el c&#243;digo fuente completo, las credenciales de base de datos, los archivos de configuraci&#243;n, el historial de Git mostrando qui&#233;n lo construy&#243; y cu&#225;ndo.</p><p>El desarrollador fue nombrado. Las marcas de tiempo estaban ah&#237;. La infraestructura fue mapeada.</p><p>No hubo intento de ocultarlo profesionalmente. Sin medidas de seguridad. Sin encriptaci&#243;n. Sin controles de acceso en el formulario de rastreo de votos. Solo un servidor web con archivos .env legibles para cualquiera con un navegador.</p><p>Esto sugiere una de dos cosas: O la infraestructura del gobierno venezolano es tan incompetente que expusieron su propio aparato de vigilancia por accidente. O no les importaba si era expuesto, porque el sistema ya hab&#237;a cumplido lo que se supon&#237;a que deber&#237;a hacer.</p><div><hr></div><h2><strong>La Verdad Simple</strong></h2><p>Solicitaste un trabajo. El gobierno construy&#243; infraestructura para rastrear si votaste, d&#243;nde estabas cuando votaste, y vincul&#243; esa informaci&#243;n a tu acceso a servicios gubernamentales.</p><p>Esa infraestructura fue replicada en m&#250;ltiples sistemas gubernamentales.</p><p>Eso es lo que el c&#243;digo muestra. Eso es lo que las bases de datos revelan. Eso es lo que los endpoints de API prueban.</p><p>Esto es lo que sucede cuando un gobierno trata a sus ciudadanos como amenazas a monitorear en lugar de personas a servir.</p><div><hr></div><p>Investigo y expongo la infraestructura de la tiran&#237;a. Cada art&#237;culo es otra pieza de evidencia que la gente que ama la libertad puede usar para entender, resistir y finalmente derrotar el control autoritario.</p><div><hr></div><p><em>Investigaci&#243;n Crystal Vault &#8212; Parte X-A &#8212; 2026</em></p><p><em>Todos los hallazgos se basan en archivos p&#250;blicamente accesibles descubiertos sin derivaci&#243;n de autenticaci&#243;n o compromiso del sistema. Ninguna base de datos fue accedida. No se usaron exploits. El descubrimiento fue limitado a analizar lo que el gobierno venezolano dej&#243; p&#250;blicamente legible en internet.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://ringmast4r.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ringmast4r is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Vote Tracking Infrastructure: Complete Technical Analysis]]></title><description><![CDATA[The Source Code, Database Schema, API Endpoints, and Infrastructure Behind Venezuela's Voter Surveillance System]]></description><link>https://ringmast4r.substack.com/p/vote-tracking-infrastructure-complete</link><guid isPermaLink="false">https://ringmast4r.substack.com/p/vote-tracking-infrastructure-complete</guid><dc:creator><![CDATA[Patrick Quirk]]></dc:creator><pubDate>Sun, 05 Jul 2026 09:54:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!H_dM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F989f7ec9-8401-4da2-aa19-02020a0c1012_2560x1237.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!H_dM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F989f7ec9-8401-4da2-aa19-02020a0c1012_2560x1237.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!H_dM!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F989f7ec9-8401-4da2-aa19-02020a0c1012_2560x1237.png 424w, /__u/substackcdn.com/image/fetch/$s_!H_dM!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F989f7ec9-8401-4da2-aa19-02020a0c1012_2560x1237.png 848w, /__u/substackcdn.com/image/fetch/$s_!H_dM!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F989f7ec9-8401-4da2-aa19-02020a0c1012_2560x1237.png 1272w, /__u/substackcdn.com/image/fetch/$s_!H_dM!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F989f7ec9-8401-4da2-aa19-02020a0c1012_2560x1237.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!H_dM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F989f7ec9-8401-4da2-aa19-02020a0c1012_2560x1237.png" width="1456" height="704" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/989f7ec9-8401-4da2-aa19-02020a0c1012_2560x1237.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:704,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:422100,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://ringmast4r.substack.com/i/205179635?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F989f7ec9-8401-4da2-aa19-02020a0c1012_2560x1237.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!H_dM!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F989f7ec9-8401-4da2-aa19-02020a0c1012_2560x1237.png 424w, /__u/substackcdn.com/image/fetch/$s_!H_dM!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F989f7ec9-8401-4da2-aa19-02020a0c1012_2560x1237.png 848w, /__u/substackcdn.com/image/fetch/$s_!H_dM!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F989f7ec9-8401-4da2-aa19-02020a0c1012_2560x1237.png 1272w, /__u/substackcdn.com/image/fetch/$s_!H_dM!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F989f7ec9-8401-4da2-aa19-02020a0c1012_2560x1237.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>The Source Code Discovery</strong></h2><p>On an exposed Git repository at <code>gitlab.mtt.gob.ve/cmorales/SIGESP-MPPT.git</code>, accessed over plain HTTP without authentication, was the complete Chamba Juvenil source code. 23,228 files. Complete application stack. Every module documented.</p><p>The vote tracking system occupied a discrete folder with its own controller, model, view layer, and JavaScript frontend. It was not legacy code. It was not deprecated. It was a fully maintained, actively used component of the registration system.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://ringmast4r.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ringmast4r is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h2><strong>The Vote Registration Module Architecture</strong></h2><h3><strong>Controller: Registro_voto.php (430 lines)</strong></h3><p>The main controller handles vote data submission:</p><pre><code><code>POST /post_registro_votos
</code></code></pre><p>This endpoint accepts:</p><ul><li><p>Name and cedula</p></li><li><p>Organizational structure assignment (codes 2, 3, 17, 18, 19, 20)</p></li><li><p>State, municipality, parish, voting center</p></li><li><p>Binary vote response (yes/no)</p></li><li><p>Latitude and longitude coordinates</p></li><li><p>Phone number</p></li></ul><p>The controller routes submissions to different database tables based on structure code:</p><pre><code><code>if (structure_code in [gov_employee_codes]) {
  INSERT INTO tbl_servidores_publico
} elseif (structure_code in [organization_member_codes]) {
  INSERT INTO tbl_estructura_preorizado
} else {
  INSERT INTO tbl_registro_del_voto
}
</code></code></pre><h3><strong>The Statistics Function</strong></h3><p>The estadistica_votos() method is where the manipulation happens:</p><pre><code><code>$raw_count = count_all_votes();
$reported_count = $raw_count + 273 + 800;
return ["resultado" =&gt; $reported_count];
</code></code></pre><p>1,073 phantom votes are added to every statistics report. This is hardcoded. This is by design. The reporting dashboard displays inflated participation numbers.</p><h3><strong>Database Schema</strong></h3><p>Three dedicated tables for vote tracking:</p><p><strong>tbl_registro_del_voto</strong> &#8212; General population vote records</p><ul><li><p>id (primary key)</p></li><li><p>cedula (citizen national ID)</p></li><li><p>nombre (full name)</p></li><li><p>telefono (phone)</p></li><li><p>estado (state code)</p></li><li><p>municipio (municipality code)</p></li><li><p>parroquia (parish code)</p></li><li><p>centro_votacion (voting center ID)</p></li><li><p>voto_si_no (binary: voted or not)</p></li><li><p>latitud (GPS latitude)</p></li><li><p>longitud (GPS longitude)</p></li><li><p>estructura_asignacion (organizational code)</p></li><li><p>fecha_creacion (timestamp)</p></li></ul><p><strong>tbl_servidores_publico</strong> &#8212; Government employee vote tracking (identical structure)</p><p><strong>tbl_estructura_preorizado</strong> &#8212; Party/organizational structure member tracking (identical structure)</p><h3><strong>Admin Interface</strong></h3><p>The voting registration form exists at <code>/admin/registro_voto.php</code>. It is not hidden. It has an interactive map powered by Leaflet.js for GPS coordinate capture. An admin can:</p><ol><li><p>Search for a citizen by name or cedula</p></li><li><p>Select their voting center from a dropdown</p></li><li><p>Click on a map to capture GPS coordinates</p></li><li><p>Check a box for &#8220;Did they vote? Yes/No&#8221;</p></li><li><p>Submit</p></li></ol><p>The data writes directly to the database with no validation beyond basic type checking.</p><div><hr></div><h2><strong>The Three-Domain Deployment</strong></h2><h3><strong>Domain 1: Chamba Juvenil</strong></h3><p><code>registro.chambajuvenil.gob.ve</code> &#8212; Youth employment job application system. 23,228 files in .git dump. Vote tracking module fully functional. Database credentials exposed in .env file.</p><h3><strong>Domain 2: Juventud Socialista</strong></h3><p><code>registro.juventudsocialista.org.ve</code> &#8212; PSUV Socialist Youth organization portal. Identical code. Identical database structure. Identical vote tracking form.</p><h3><strong>Domain 3: Comunas Juveniles</strong></h3><p><code>comunajoven.com.ve</code> &#8212; Communal governance organization portal. Same vote tracking infrastructure. Same forms. Same API.</p><p>Git config files show the same deployment scripts used across all three domains. The same developer (Carlos Morales, cmorales@mtt.gob.ve) committed to repositories hosting all three.</p><div><hr></div><h2><strong>The Gas Distribution API Connection</strong></h2><p>Guarico State&#8217;s Gas Distribution API exposes a GraphQL endpoint with full schema introspection at:</p><pre><code><code>api-distribucion-gas.guarico.gob.ve/graphql
</code></code></pre><p>The schema includes two critical queries:</p><pre><code><code>voterByCedulaRif(cedulaRif: String!): Voter
customerByCedulaRif(cedulaRif: String!): Customer
</code></code></pre><p>The Voter object returns:</p><ul><li><p>cedulaRif (national ID)</p></li><li><p>firstName, lastName</p></li><li><p>municipalityId, parishId</p></li><li><p>createdAt (registration timestamp)</p></li></ul><p>The Customer object returns:</p><ul><li><p>cedulaRif (national ID)</p></li><li><p>gasSubsidyStatus</p></li><li><p>paymentHistory</p></li><li><p>distributionCenter</p></li></ul><p>Same cedula number. One query returns voting status. One query returns subsidy status. The API is architecturally designed to cross-reference them.</p><div><hr></div><h2><strong>Exposed Credentials and Configuration</strong></h2><h3><strong>.env Files</strong></h3><p>Chamba Juvenil stored database credentials in plaintext .env files:</p><pre><code><code>DB_CONNECTION=pgsql
DB_HOST=localhost
DB_PORT=5432
DB_DATABASE=db_chamba_produccion
DB_USERNAME=postgres
DB_PASSWORD=OUUO5bHoG4Q255Js8gevu87fM/CoBf8JhAc/Wa6raI0=
</code></code></pre><p>Secondary databases documented:</p><pre><code><code>db_pcj_2017_17052019
</code></code></pre><h3><strong>SFTP Configuration</strong></h3><p>Visual Studio Code SFTP config exposed:</p><pre><code><code>Server: 190.202.144.60
Port: 1022
Username: chamba
Password: 1s0p0rt3++
Remote Path: /var/www/html/registrochamba/chambajuvenilc/
</code></code></pre><p>Direct server access credentials for the production web application directory.</p><h3><strong>Telegram Bot Tokens</strong></h3><p>Two active Telegram bot tokens found in source code:</p><pre><code><code>Bot ID: 8534453577
Token: AAHrCe_QOQRLK_nToS0pb4f5Y4ba5zBSJBQ
Chat ID: 6021886971

Bot ID: 7265564977
Token: AAHJcYuxTQX7coz-qatLEd9j5Ai1RLDv_fY
Chat IDs: 830259515, 6021886971
</code></code></pre><p>Both hardcoded in PHP controllers and JavaScript. Connected to the same chat group. Used for system notifications.</p><h3><strong>RSA Private Key</strong></h3><p>A full PKCS#8 RSA 2048-bit private key stored in the repository. This key can decrypt traffic, forge certificates, and impersonate services.</p><div><hr></div><h2><strong>The Infrastructure Map</strong></h2><p>From Git configs and .env files, the internal network topology emerges:</p><p><strong>Payroll Database Servers</strong> (internal IPs):</p><ul><li><p>172.31.8.44 &#8212; Primary PostgreSQL (3 databases: 2017, 2016, induction payroll)</p></li><li><p>172.31.8.93 &#8212; Budget/procurement PostgreSQL</p></li></ul><p><strong>Authentication</strong>:</p><ul><li><p>172.31.8.51 &#8212; LDAP authentication server (dc=mtt,dc=gob,dc=ve)</p></li></ul><p><strong>Services</strong>:</p><ul><li><p>proxy.mtt.gob.ve &#8212; Zimbra email proxy</p></li><li><p>gitlab.mtt.gob.ve &#8212; Internal GitLab (where code was hosted)</p></li><li><p>poi-r.vps.co.ve (ports 3000/3001) &#8212; API server for Ministry of Urban Agriculture</p></li></ul><p>This is a partial map of the Venezuelan government&#8217;s internal network, extracted from a single exposed Git repository.</p><div><hr></div><h2><strong>The Code Quality Assessment</strong></h2><h3><strong>SQL Injection: Universal</strong></h3><p>Every database interaction uses direct string concatenation:</p><pre><code><code>$query = "SELECT * FROM tbl_registro_del_voto WHERE cedula = '" . $cedula . "'";
$result = $db-&gt;query($query);
</code></code></pre><p>The only protection is <code>addslashes()</code>, a function known to be bypassable since the mid-2000s. Every search box, every filter, every input field in the Chamba Juvenil system is a potential SQL injection point.</p><h3><strong>Debug Mode Enabled in Production</strong></h3><p>Every .env file contains:</p><pre><code><code>APP_DEBUG=true
</code></code></pre><p>This means any error displays a full stack trace to the browser: file paths, function calls, variable contents, database query details.</p><h3><strong>Default Credentials Never Changed</strong></h3><p>Multiple .env files expose passwords that are framework defaults, never modified:</p><pre><code><code>MySQL root: password
Yii2 user: secret
</code></code></pre><h3><strong>No Web Server Hardening</strong></h3><p>Not a single government server was configured to block access to sensitive files. No <code>.htaccess</code> rules. No nginx configuration to deny <code>.env</code>, <code>.git/config</code>, or <code>docker-compose.yml</code>.</p><p>Three lines of web server configuration would have prevented every finding in this report.</p><div><hr></div><h2><strong>Timeline and Deployment</strong></h2><p>Git commit metadata shows:</p><ul><li><p>Initial commit: 2016</p></li><li><p>Last update: 2019</p></li><li><p>Developer: Carlos Morales (cmorales@mtt.gob.ve)</p></li><li><p>Organization: Ministry of Transportation and Communications</p></li><li><p>Repository: Hosted on internal GitLab at gitlab.mtt.gob.ve</p></li></ul><p>The code was maintained across multiple Venezuelan administrations and election cycles. It was not abandoned. It was operational.</p><div><hr></div><h2><strong>Replication Pattern</strong></h2><p>The vote tracking code is identical across all three domains:</p><ul><li><p>Same controller file name and structure</p></li><li><p>Same database table schema</p></li><li><p>Same form interface</p></li><li><p>Same admin panel layouts</p></li><li><p>Same statistics inflation logic</p></li></ul><p>This is not independent development. This is deliberate replication of the same surveillance infrastructure across multiple government systems.</p><div><hr></div><h2><strong>What the Evidence Shows</strong></h2><p>This is not hypothesis. This is not inference. This is:</p><ul><li><p>Source code you can read</p></li><li><p>Database schemas you can analyze</p></li><li><p>API endpoints you can query</p></li><li><p>Configuration files you can decrypt</p></li><li><p>Git history you can examine</p></li><li><p>Network addresses you can map</p></li></ul><p>The vote tracking system exists. It was built. It was deployed. It was connected to benefit distribution systems. It automatically inflated statistics. It was replicated across multiple government services.</p><p>The only question that remains unanswered is: how many votes were influenced by citizens knowing their voting behavior was being tracked and linked to their access to government services?</p><div><hr></div><p>I investigate and expose the infrastructure of tyranny. Every article is another piece of evidence that freedom-loving people can use to understand, resist, and ultimately defeat authoritarian control.</p><div><hr></div><p><em>Crystal Vault Investigation &#8212; Part X-B &#8212; 2026</em></p><p><em>All data sourced from publicly accessible files without authentication bypass or system compromise. Source code, Git configurations, database schemas, and API responses documented as discovered. All URLs and credentials verified to be publicly accessible at time of investigation.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://ringmast4r.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ringmast4r is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Your Job Application Became Government Surveillance: How Venezuela Weaponized Employment]]></title><description><![CDATA[The Venezuelan Government Embedded a Hidden Vote-Tracking System Inside a Youth Jobs Program. If You Registered for Work, They Recorded Whether You Voted&#8212;and Linked It to Your Benefits.]]></description><link>https://ringmast4r.substack.com/p/your-job-application-became-government</link><guid isPermaLink="false">https://ringmast4r.substack.com/p/your-job-application-became-government</guid><dc:creator><![CDATA[Patrick Quirk]]></dc:creator><pubDate>Sun, 05 Jul 2026 09:49:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jXQw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b76514-fc03-48a4-9bc8-75cd6ec33150_2560x1237.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!jXQw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b76514-fc03-48a4-9bc8-75cd6ec33150_2560x1237.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!jXQw!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b76514-fc03-48a4-9bc8-75cd6ec33150_2560x1237.png 424w, /__u/substackcdn.com/image/fetch/$s_!jXQw!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b76514-fc03-48a4-9bc8-75cd6ec33150_2560x1237.png 848w, /__u/substackcdn.com/image/fetch/$s_!jXQw!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b76514-fc03-48a4-9bc8-75cd6ec33150_2560x1237.png 1272w, /__u/substackcdn.com/image/fetch/$s_!jXQw!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b76514-fc03-48a4-9bc8-75cd6ec33150_2560x1237.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!jXQw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b76514-fc03-48a4-9bc8-75cd6ec33150_2560x1237.png" width="1456" height="704" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c2b76514-fc03-48a4-9bc8-75cd6ec33150_2560x1237.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:704,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:422100,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://ringmast4r.substack.com/i/205148322?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b76514-fc03-48a4-9bc8-75cd6ec33150_2560x1237.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!jXQw!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b76514-fc03-48a4-9bc8-75cd6ec33150_2560x1237.png 424w, /__u/substackcdn.com/image/fetch/$s_!jXQw!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b76514-fc03-48a4-9bc8-75cd6ec33150_2560x1237.png 848w, /__u/substackcdn.com/image/fetch/$s_!jXQw!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b76514-fc03-48a4-9bc8-75cd6ec33150_2560x1237.png 1272w, /__u/substackcdn.com/image/fetch/$s_!jXQw!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2b76514-fc03-48a4-9bc8-75cd6ec33150_2560x1237.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>The Real Purpose of Chamba Juvenil</strong></h2><p>Millions of young Venezuelans did what governments everywhere tell people to do: they applied for work. Between 2017 and now, they submitted their names, national IDs, phone numbers, education histories, and social media accounts to Chamba Juvenil, Venezuela&#8217;s national youth employment program.</p><p>It was supposed to help them find jobs. Skills training. Economic opportunity.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://ringmast4r.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ringmast4r is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>But hidden in the code of that system was something else entirely: a complete vote-tracking module that recorded whether each applicant voted, captured their GPS location when they did, and stored everything in a database labeled &#8220;ESTRUCTURA DE REGISTRO DEL VOTO&#8221;&#8212;Structure of Vote Registration.</p><p>This wasn&#8217;t a glitch. It wasn&#8217;t oversight. It was infrastructure. Purpose-built. Deployed. Active.</p><div><hr></div><h2><strong>How Government Turned Job Applications into Voter Surveillance</strong></h2><p>Here&#8217;s what happened when you applied:</p><ol><li><p>You filled out a job application at <code>registro.chambajuvenil.gob.ve</code></p></li><li><p>You submitted your personal data: name, cedula (national ID), phone, education, employment history</p></li><li><p>Behind the scenes, the system assigned you an &#8220;organizational structure code&#8221;</p></li><li><p>Government employees could then log in to an admin panel and record whether you voted</p></li><li><p>Your vote status was stored alongside your GPS coordinates, your state, your municipality</p></li><li><p>The data was fed into statistics dashboards that automatically inflated the vote counts by over 1,000 phantom votes</p></li></ol><p>You applied for a job. The government built a voting database around you.</p><div><hr></div><h2><strong>This Wasn&#8217;t One Program</strong></h2><p>The identical vote-tracking code runs on three separate government domains:</p><ul><li><p>Chamba Juvenil (youth jobs)</p></li><li><p>Juventud Socialista (PSUV party youth wing)</p></li><li><p>Comunas Juveniles (communal governance)</p></li></ul><p>Three different systems. Same vote surveillance infrastructure. Same database structure. Same forms. Same API.</p><p>This tells you something critical: it wasn&#8217;t a mistake that happened once. It was a deliberate choice to replicate the same surveillance across multiple government services.</p><div><hr></div><h2><strong>They Linked It to Your Subsidies</strong></h2><p>But it gets worse.</p><p>The Gas Distribution API for Guarico State&#8212;the system that decides who receives government gas subsidies&#8212;contains a dedicated voter lookup function. You can query it by national ID and get back someone&#8217;s voter registration status.</p><p>Same cedula number. Same person.</p><p>Government can now ask: &#8220;Who receives gas subsidies?&#8221; and &#8220;How did they vote?&#8221; in the same system. The architecture is built to cross-reference them.</p><p>This is the mechanism of coercion. Access to survival (jobs, gas, housing, food) becomes conditional on political behavior.</p><div><hr></div><h2><strong>What the Numbers Show</strong></h2><ul><li><p><strong>3 government domains</strong> running identical vote surveillance code</p></li><li><p><strong>23,228 files</strong> in the exposed repository, including complete source code</p></li><li><p><strong>GPS coordinates recorded</strong> for every vote</p></li><li><p><strong>1,073 phantom votes</strong> added automatically to statistics</p></li><li><p><strong>Zero security checks</strong> on the vote tracking form</p></li><li><p><strong>Plain HTTP</strong> for server access (no encryption)</p></li></ul><p>The Venezuelan government didn&#8217;t just surveil voting. It automated it. Replicated it. Integrated it with benefit distribution.</p><div><hr></div><h2><strong>Why This Matters</strong></h2><p>In democracies, voting is supposed to be secret. You cast your vote. No one knows how you voted. That&#8217;s the entire point&#8212;protection from coercion.</p><p>Venezuela dismantled that protection by design. A citizen couldn&#8217;t apply for a government job without potentially having their voting behavior tracked. Couldn&#8217;t receive gas rations without their voter status being queryable by the state. Couldn&#8217;t access education or healthcare subsidies without the infrastructure of surveillance knowing how they voted.</p><p>This is not a surveillance state that spies on dissidents. This is a surveillance state that conditions access to survival on political loyalty.</p><p>The Carnet de la Patria system was widely documented as a tool for this. What this source code reveals is the actual mechanism underneath. Not allegations from opposition politicians. Not theories. The actual PHP code. The actual database tables. The actual API endpoints.</p><div><hr></div><h2><strong>They Left It All Behind</strong></h2><p>When the servers that hosted this code were exposed, they left everything: the complete source code, the database credentials, the configuration files, the Git history showing who built it and when.</p><p>The developer was named. The timestamps were there. The infrastructure was mapped out.</p><p>There was no attempt to hide it professionally. No security measures. No encryption. No access controls on the vote tracking form. Just a web server with .env files readable to anyone with a browser.</p><p>This suggests one of two things: Either the Venezuelan government&#8217;s infrastructure is so incompetent that they exposed their own surveillance apparatus by accident. Or they didn&#8217;t care if it was exposed, because the system had already accomplished what it was meant to do.</p><div><hr></div><h2><strong>The Simple Truth</strong></h2><p>You applied for a job. The government built infrastructure to track whether you voted, where you were when you voted, and linked that information to your access to government services.</p><p>That infrastructure was replicated across multiple government systems.</p><p>That&#8217;s what the code shows. That&#8217;s what the databases reveal. That&#8217;s what the API endpoints prove.</p><p>This is what happens when a government treats its citizens as threats to monitor rather than people to serve.</p><div><hr></div><p>I investigate and expose the infrastructure of tyranny. Every article is another piece of evidence that freedom-loving people can use to understand, resist, and ultimately defeat authoritarian control.</p><div><hr></div><p><em>All findings are based on publicly accessible files discovered without authentication bypass or system compromise. No databases were accessed. No exploits were used. Discovery was limited to analyzing what the Venezuelan government left publicly readable on the internet.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://ringmast4r.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ringmast4r is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[250 Years, and the Men in My Family Who Carried It]]></title><description><![CDATA[From Washington&#8217;s bodyguard to the Cold War: the blood I carry, and why the Quirks endure.]]></description><link>https://ringmast4r.substack.com/p/250-years-and-the-men-in-my-family</link><guid isPermaLink="false">https://ringmast4r.substack.com/p/250-years-and-the-men-in-my-family</guid><dc:creator><![CDATA[Patrick Quirk]]></dc:creator><pubDate>Sun, 05 Jul 2026 01:16:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!RPqu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F041428f4-7c39-4f8c-a82c-42306de070e4_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!RPqu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F041428f4-7c39-4f8c-a82c-42306de070e4_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!RPqu!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F041428f4-7c39-4f8c-a82c-42306de070e4_1536x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!RPqu!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F041428f4-7c39-4f8c-a82c-42306de070e4_1536x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!RPqu!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F041428f4-7c39-4f8c-a82c-42306de070e4_1536x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!RPqu!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F041428f4-7c39-4f8c-a82c-42306de070e4_1536x1024.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!RPqu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F041428f4-7c39-4f8c-a82c-42306de070e4_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/041428f4-7c39-4f8c-a82c-42306de070e4_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1888469,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://ringmast4r.substack.com/i/205120216?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F041428f4-7c39-4f8c-a82c-42306de070e4_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!RPqu!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F041428f4-7c39-4f8c-a82c-42306de070e4_1536x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!RPqu!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F041428f4-7c39-4f8c-a82c-42306de070e4_1536x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!RPqu!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F041428f4-7c39-4f8c-a82c-42306de070e4_1536x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!RPqu!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F041428f4-7c39-4f8c-a82c-42306de070e4_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Today the country turns 250. A quarter of a millennium since a few men in Philadelphia signed their names to a document that could have gotten them hanged. Two and a half centuries of an experiment that, on paper, still shouldn&#8217;t work: a country held together not by blood or borders or a king, but by an idea.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://ringmast4r.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ringmast4r is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>I don&#8217;t think about the idea in the abstract. I think about it through the men in my family who were asked, again and again across all 250 of those years, to stand between this country and the people who wanted it dead.</p><p>Because my family didn&#8217;t wander into this story somewhere in the middle. We were there at the start of it.</p><div><hr></div><h2><strong>Washington&#8217;s Guard</strong></h2><p>At the very beginning, when there was barely a country at all, just a ragged army and a single indispensable man holding it together, there was a Quirk standing at his side.</p><p>Captain Thomas Quirk served in General Washington&#8217;s personal bodyguard. Think about what that meant. The entire American experiment lived or died with one man; lose Washington, and the Revolution likely dies with him and there is no United States to celebrate 250 years later. The men trusted to keep him alive were handpicked, close, and expendable in his place. My blood was part of that wall.</p><p>This isn&#8217;t a story I go looking to inflate. It runs in the bloodline through the Society of the Cincinnati, the hereditary order founded in 1783 by the officers who actually won the Revolution, with Washington himself as its first President General, its membership passed down through the descendants of the men who were there. That is our line. Some of you will know exactly what that means.</p><p>So sit with it on a day like today. The country turns 250, and my family has been standing watch for every one of those years, from the man guarding Washington&#8217;s tent to the man watching the KGB two centuries later. I don&#8217;t think it&#8217;s chance that the Quirks were there to protect the father of the country, and have never once stopped serving her since.</p><p>The Quirks endure. That&#8217;s not a hope. It&#8217;s a record.</p><div><hr></div><h2><strong>A Draft Notice</strong></h2><p>My great-grandfather, John Patrick Quirk I, didn&#8217;t volunteer. He was drafted into the First World War, pulled out of an ordinary life and shipped toward a war that the men fighting it barely understood. Trenches. Mud. Gas. A scale of mechanized killing the world had never seen.</p><p>He didn&#8217;t choose it. That&#8217;s the part I keep coming back to. The country called his number, and he went. No speeches, no parades in his own head, just a young man doing what was asked because that&#8217;s what the moment demanded. Whatever &#8220;America&#8221; meant in a philosophy seminar, to him it meant a notice, a train, and an ocean.</p><p>He came home. Most of the story I&#8217;ll never know. But the line continued because he made it back, and that&#8217;s the only reason I&#8217;m here to write any of this.</p><div><hr></div><h2><strong>Monte Cassino</strong></h2><p>A generation later, his son, my grandfather, John Patrick Quirk II, got his own war.</p><p>He fought at Monte Cassino, one of the ugliest, most grinding battles of the Second World War. Four months of it, early in 1944, in the mountains of Italy. A Benedictine abbey on a hilltop, German positions dug into the rock, a river valley below turned into a killing ground. The Allies threw assault after assault at that mountain and were thrown back, again and again, at a cost of tens of thousands of men. Soldiers from half the world bled on those slopes before the line finally broke.</p><p>My grandfather was wounded there.</p><p>I&#8217;ve tried to picture it, the cold, the artillery, the sheer stubborn horror of being told to take a mountain that would not be taken. He survived it. He carried whatever that did to a young man for the rest of his life, the way that generation did: quietly, mostly without saying much.</p><p>He came home too. And he never spoke of the war. Not to his family, not to anyone, not once. That&#8217;s why they are called the Silent Generation.</p><div><hr></div><h2><strong>My Father</strong></h2><p>Then came my father, John Patrick Quirk III.</p><p>His war didn&#8217;t look like the two before it. There were no trenches, no mountain, no front line you could find on a map. He fought the KGB, a valiant patriot in the long, silent war of the Cold War, a spy standing against the Soviet machine that meant to bury everything this country stood for. The Iron Curtain was a battlefield too, and the men who fought on it did so in the dark, without parades, often without anyone ever knowing what they&#8217;d done or what it cost them.</p><p>Same bloodline, same choice, made again. My great-grandfather answered with a draft notice. My grandfather answered on the slopes of Cassino. My father answered in the shadows, against an enemy that wore no uniform and fought to win without a shot ever being fired. Three generations, three wars, three men who said yes when the country needed them.</p><p>My father is the reason it isn&#8217;t ancient history to me. The trenches and the mountain are photographs and secondhand memory, but him, I watched. I grew up inside the discipline and the vigilance of a man who had stared down the KGB, and I absorbed what he knew: that freedom has enemies who are patient, and that some of the most important battles for a country are the ones nobody sees.</p><div><hr></div><h2><strong>What It Actually Means</strong></h2><p>Here&#8217;s what 250 years means to me, standing at the end of that line.</p><p>It doesn&#8217;t mean the country is perfect. My family didn&#8217;t fight for a perfect place, and no generation of them pretended it was one. The America of 1917 and the America of 1944 both had their sins in plain view. The point was never that the country had arrived. The point was that it was worth defending anyway, worth the mud and the gas and the mountain, because the alternative was worse, and because the idea underneath it was still, on balance, the best bet humanity had made about how to govern itself.</p><p>That&#8217;s the inheritance. Not a flag-waving certainty that we&#8217;re the greatest at everything. Something quieter and harder: a debt. Three men in my own bloodline, three men who carried the very same name, John Patrick Quirk, the First and the Second and the Third, were asked to give everything for a promise most of us now enjoy without a second thought. The promise that ordinary people get to run their own lives, choose their own leaders, and be more than subjects. The same name went to the trenches, up the mountain, and into the shadows against the KGB. One name, three wars, one country worth all of it.</p><p>They paid on that promise so I wouldn&#8217;t have to. And everything I absorbed from my father, what service means, what a country is worth, what it costs to keep it, is now mine to carry. The torch doesn&#8217;t stop at the last man who wore a uniform. It gets handed to whoever is willing to pick it up.</p><p>I intend to pick it up.</p><div><hr></div><h2><strong>A New American Age</strong></h2><p>Here&#8217;s the harder truth, though. I&#8217;m not being handed the same country my grandfather bled for.</p><p>We are not the America of the 1940s and 1950s. That country, for all its flaws, knew what it believed. It had a shared spine of ethics, values, and culture that a man could point his life at. Much of that has been eroded, worn down a little at a time until you can see the country underneath straining to remember what held it together.</p><p>So the torch I&#8217;m carrying isn&#8217;t the same weight my fathers carried. Theirs was a rifle against a foreign enemy on a mountain or in a trench. Mine is something less visible and, in its own way, just as hard: to hold onto what we&#8217;re supposed to hold dear when so much of it is slipping. The enemy of a new American age isn&#8217;t always across an ocean. Sometimes it&#8217;s the quiet forgetting of who we said we&#8217;d be.</p><p>We are entering a new paradigm, and it will stand or fall on exactly this, on whether people like me are willing to guard the values, the ethics, the culture, the plain idea of freedom, with the same stubbornness my family guarded the ground at Cassino. Not with a rifle. With how I live, what I refuse to let go of, and what I pass down in turn.</p><div><hr></div><h2><strong>The Light Outshines the Dark</strong></h2><p>I was raised on heroes. Real ones. The great Americans I was taught to admire and love, the soldiers, the founders, the builders, the ordinary people who did extraordinary things because they believed this country was worth it. That admiration wasn&#8217;t naive. It was the truth as my family lived it, generations deep.</p><p>So I&#8217;ll say plainly what&#8217;s become unfashionable to say. I know the modern degradation of this country. I&#8217;ve watched a whole industry of media, activists, and people who seem to genuinely hate America make a career of tearing it down, cataloguing only its sins, never its glories, treating contempt for the country as a mark of intelligence.</p><p>I disavow their opinions. Completely.</p><p>America is greater than the bad in it. It always has been. Yes, we have failures, real ones, ugly ones, and we should be honest about them. But a country is judged by its whole ledger, and ours is overwhelmingly one of liberty extended, tyranny fought, and lives made freer. The people sneering at that from the comfort and safety this country gave them have it exactly backwards.</p><p>The light outshines the dark. That isn&#8217;t a slogan to me. It&#8217;s the conclusion of a man who looked honestly at his own bloodline, a draft notice, a wound on an Italian mountain, a father who stood against the KGB, and understood that all of it was spent on something good. Something worth loving. Something still worth defending against everyone, foreign or domestic, who would rather see it fail.</p><div><hr></div><h2><strong>Do Not Turn on Her</strong></h2><p>There&#8217;s a sickness loose in this country, and it isn&#8217;t the one you&#8217;d expect. People are ashamed to be American. Ashamed. And that shame has spread like a pandemic, a virus of the spirit, until whole swaths of the country flinch at their own flag.</p><p>I don&#8217;t believe that happened by accident. Shame at that scale is manufactured. You can make the argument, and I&#8217;ll make it, that this is a psy-op: a slow, patient information war waged by our adversaries and pumped through social media straight into the minds of our own people. You don&#8217;t have to invade a country you can convince to hate itself. The KGB my father fought understood that better than anyone, the cheapest way to defeat a nation is to get it to defeat itself, to rot its confidence from the inside until it no longer believes it deserves to stand. That war never ended. It just moved onto our phones.</p><p>And this is where my family&#8217;s history stops being a memory and becomes an instruction. We know what a wound is. My grandfather was wounded on a mountain in Italy and did not come home cursing the country that sent him, he came home and raised a son who served in his turn. So let me say it as plainly as I can:</p><p>America is wounded. Do not turn on her.</p><p>You do not abandon the wounded. You do not kick the country that gave you everything while she&#8217;s down on one knee. You carry her, the way my family has always carried her, until she&#8217;s back on her feet. That isn&#8217;t blind loyalty. It&#8217;s the only kind of loyalty that has ever meant anything: the kind that shows up when it&#8217;s hard.</p><div><hr></div><h2><strong>The Blood I Carry</strong></h2><p>I&#8217;ll be honest here, because the rest of this isn&#8217;t worth writing if I&#8217;m not.</p><p>I am not where I want to be in life. I&#8217;ve fallen to the fate of circumstance, the way people do, the way the plans you make at twenty get rewritten by things you never chose. I won&#8217;t dress it up. There&#8217;s a distance between the life I imagined and the one I&#8217;m standing in, and I feel every inch of it.</p><p>But here is what I know, and it&#8217;s the whole reason this day means what it does to me: perseverance through hardship is part of our American blood. Endurance is the inheritance underneath all the others. The men whose name I carry didn&#8217;t prevail because the world was gentle with them. John Patrick Quirk I didn&#8217;t choose the draft. The Second didn&#8217;t choose that mountain, or the wound it gave him. The Third didn&#8217;t choose the shadow war he spent his life fighting. They endured what they were handed, and they kept moving.</p><p>And the war has found me in its own shape, the way it found each of them in theirs. My fathers all fought in wars. Mine is the cyberwar. The adversaries of the United States never went away; they moved onto the networks, and that is where I stand. The frontline of the cyberwar is my post, and I am at service to my country as I always have been. Whether openly, or in the shadows.</p><p>That&#8217;s the part of the legacy available to me right now, in this exact spot. A different battlefield, and a quieter, lonelier test underneath it: to keep going. To not set it down. To believe the low place I&#8217;m in is a chapter and not the whole book. The same stubbornness that held the line at Cassino is the stubbornness that gets a man up off the floor. It is the same blood.</p><p>This country was built by people who were not where they wanted to be, and refused to stay there. I come from them. I&#8217;m not done.</p><div><hr></div><h2><strong>250</strong></h2><p>When I hear &#8220;250 years,&#8221; I don&#8217;t hear a distant number. I see Captain Thomas Quirk standing watch over Washington when the whole country was one bad night away from never existing. I hear John Patrick Quirk I&#8217;s train pulling out for France. I hear the guns at Cassino and my grandfather somewhere in them. I see my father in the dark, holding the line against the KGB. And then I feel the weight settle into my own hands.</p><p>The country is a relay, and my family has run its leg of it from the very first stride. Every generation gets handed something imperfect and bloodied and still, somehow, worth keeping, and is asked to carry it a little farther before passing it on. Thomas guarded the man who made it. The First carried it out of the trenches. The Second carried it off that mountain. The Third carried it through the shadow war.</p><p>Now it&#8217;s mine. I am Patrick Quirk, still a Patrick, still a Quirk, still the blood of the men who guarded Washington and bled at Cassino and stared down the Soviets. My war is the cyberwar, waged against the adversaries of this country on the newest front there is, and that is my post. I may not be where I wanted to be when the weight reached me. That doesn&#8217;t matter. You carry it from wherever you happen to be standing.</p><p>A new age, a new fight, to keep the torch lit when the wind is trying its hardest to put it out. To carry a wounded country instead of turning on her. To endure, because endurance is the oldest thing in our blood.</p><p>Two hundred and fifty years in, the least I can do is remember exactly what it weighed in their hands, and refuse to be the one who sets it down.</p><p>Happy birthday, America. From one of the men who still loves you, and always will.</p><p><strong>The Quirks endure.</strong></p><p><em>Patrick Quirk </em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://ringmast4r.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ringmast4r is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[I Got Popped on Discord. Here's What a $30-60M Crypto Scam Looks Like. ]]></title><description><![CDATA[TL;DR: My Discord account was compromised last month.]]></description><link>https://ringmast4r.substack.com/p/i-got-popped-on-discord-heres-what</link><guid isPermaLink="false">https://ringmast4r.substack.com/p/i-got-popped-on-discord-heres-what</guid><dc:creator><![CDATA[Patrick Quirk]]></dc:creator><pubDate>Wed, 01 Jul 2026 04:35:40 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!3wsg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956f94b9-bb41-4a89-aedd-4d17cd251f9f_651x1002.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>TL;DR:</strong> My Discord account was compromised last month. My token was immediately put to work by an organized crime syndicate running 1,200+ domains. I investigated what happened and uncovered the infrastructure blueprint for a $30-60M annual cryptocurrency fraud operation targeting everyday people. Read this if you use Discord, play games online, or send crypto. Read it twice if you do all three.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!3wsg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956f94b9-bb41-4a89-aedd-4d17cd251f9f_651x1002.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!3wsg!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956f94b9-bb41-4a89-aedd-4d17cd251f9f_651x1002.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!3wsg!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956f94b9-bb41-4a89-aedd-4d17cd251f9f_651x1002.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!3wsg!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956f94b9-bb41-4a89-aedd-4d17cd251f9f_651x1002.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!3wsg!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956f94b9-bb41-4a89-aedd-4d17cd251f9f_651x1002.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!3wsg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956f94b9-bb41-4a89-aedd-4d17cd251f9f_651x1002.jpeg" width="651" height="1002" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/956f94b9-bb41-4a89-aedd-4d17cd251f9f_651x1002.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1002,&quot;width&quot;:651,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:232311,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://ringmast4r.substack.com/i/204386883?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956f94b9-bb41-4a89-aedd-4d17cd251f9f_651x1002.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!3wsg!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956f94b9-bb41-4a89-aedd-4d17cd251f9f_651x1002.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!3wsg!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956f94b9-bb41-4a89-aedd-4d17cd251f9f_651x1002.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!3wsg!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956f94b9-bb41-4a89-aedd-4d17cd251f9f_651x1002.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!3wsg!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956f94b9-bb41-4a89-aedd-4d17cd251f9f_651x1002.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!7Dyt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a0c0df5-ba1d-4536-b960-a2101bf8d95e_2047x2560.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!7Dyt!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a0c0df5-ba1d-4536-b960-a2101bf8d95e_2047x2560.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!7Dyt!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a0c0df5-ba1d-4536-b960-a2101bf8d95e_2047x2560.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!7Dyt!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a0c0df5-ba1d-4536-b960-a2101bf8d95e_2047x2560.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!7Dyt!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_webp, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a0c0df5-ba1d-4536-b960-a2101bf8d95e_2047x2560.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!7Dyt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a0c0df5-ba1d-4536-b960-a2101bf8d95e_2047x2560.jpeg" width="1456" height="1821" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8a0c0df5-ba1d-4536-b960-a2101bf8d95e_2047x2560.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1821,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:889780,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ringmast4r.substack.com/i/204386883?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a0c0df5-ba1d-4536-b960-a2101bf8d95e_2047x2560.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!7Dyt!, /__u/ringmast4r.substack.com/w_424, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a0c0df5-ba1d-4536-b960-a2101bf8d95e_2047x2560.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!7Dyt!, /__u/ringmast4r.substack.com/w_848, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a0c0df5-ba1d-4536-b960-a2101bf8d95e_2047x2560.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!7Dyt!, /__u/ringmast4r.substack.com/w_1272, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a0c0df5-ba1d-4536-b960-a2101bf8d95e_2047x2560.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!7Dyt!, /__u/ringmast4r.substack.com/w_1456, /__u/ringmast4r.substack.com/c_limit, /__u/ringmast4r.substack.com/f_auto, /__u/ringmast4r.substack.com/q_auto:good, /__u/ringmast4r.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a0c0df5-ba1d-4536-b960-a2101bf8d95e_2047x2560.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>How I Ended Up on a Scammer&#8217;s Leaderboard</strong></h2><p>June 30, 2026. Evening. My Discord account started DMing people unsolicited links to &#8220;duetux.com&#8221; with a promo code &#8220;CASH.&#8221; I didn&#8217;t send them. I wasn&#8217;t mass soliciting a crypto service. I didn&#8217;t have my password written on a sticky note.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://ringmast4r.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ringmast4r is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Someone else was inside my account. I still don&#8217;t know exactly how.</p><p>It could have been malware. It could have been phishing. It could have been credential reuse from another breach. I don&#8217;t have forensic evidence of which vector worked. What I know for certain: My Discord token was compromised and immediately put to work spamming my contact list.</p><p>Most people would panic, reset passwords, enable 2FA, and move on. I did that. Then I started digging.</p><p>What I found was worse than a simple credential compromise. I&#8217;d been enrolled&#8212;without consent&#8212;in a sophisticated money laundering operation masquerading as an online casino. An operation that, based on the infrastructure I recovered, is defrauding roughly 10,000 people per month out of $2.5-5 million USD. Every single month.</p><p>And I wasn&#8217;t the only one compromised in this funnel.</p><p>This is their playbook.</p><div><hr></div><h2><strong>The Scam in 60 Seconds</strong></h2><p><strong>The Gambler Syndicate</strong> operates a decentralized cryptocurrency casino scam with a recruitment model that would make Amway jealous:</p><ol><li><p><strong>Your account gets compromised.</strong> Via malware, phishing, credential reuse, or social engineering&#8212;the vector changes, but the outcome is the same: They have your Discord token.</p></li><li><p><strong>Your friends get contacted.</strong> Automated bots fire off DMs from your account with links to a fake casino.</p></li><li><p><strong>They get hooked.</strong> The site shows a fabricated $3,450 bonus. To &#8220;unlock&#8221; it, they need to send a $100-500 &#8220;verification deposit&#8221; in crypto.</p></li><li><p><strong>They lose everything.</strong> The account locks. The support chat ends. Their money is gone.</p></li><li><p><strong>Someone got paid.</strong> The scammers who recruited victims get 50-70% commission. There are 100-500 of these recruiters worldwide, coordinating through Telegram.</p></li></ol><p>The kicker: The organizers don&#8217;t even have to do the recruiting themselves. They&#8217;ve automated the entire funnel. Someone else does the dirty work, takes the commission, and the syndicate keeps everything else.</p><p>It&#8217;s organized crime with an affiliate program.</p><div><hr></div><h2><strong>How Big Is This Actually?</strong></h2><p><strong>The hard numbers from their own infrastructure:</strong></p><ul><li><p><strong>1,200+ active domains</strong> (sister sites to duetux.com, coordinating casino traffic)</p></li><li><p><strong>10,000 estimated monthly victims</strong> (conservative estimate based on visible infrastructure)</p></li><li><p><strong>$500-750 average loss per victim</strong> (ranging from $100 for the skeptics to $4,410 for the persistent)</p></li><li><p><strong>$2.5-5 million USD monthly revenue</strong> (minimum-to-maximum estimate)</p></li><li><p><strong>$30-60 million annually</strong></p></li></ul><p>For context: This is the financial footprint of a mid-sized tech startup. Except instead of building software, they&#8217;re stealing Discord accounts and ruining people financially.</p><p>The operation is run from Eastern Europe (Russian-language documentation), coordinated through Telegram, and laundered primarily through Bybit exchange and a Georgia-based VASP called Sher888. Cloudflare DDoS protection keeps the sites online. Privacy-protected domain registration keeps the operators hidden.</p><div><hr></div><h2><strong>The Recruitment Machine</strong></h2><p>Here&#8217;s what separates the Gambler Syndicate from other scams: They&#8217;ve industrialized victim recruitment.</p><p><strong>Step 1: Become an Operator</strong><br>Message a Telegram bot called @gambler_panel_bot. You get credentials to an admin panel called gambler-partners.is. No interview. No vetting. Just automated registration.</p><p><strong>Step 2: Get Your API Keys</strong><br>Log in. Generate an API token. Request your VPN IP be whitelisted to their backend. They literally hand you the keys.</p><p><strong>Step 3: Download the Tools</strong><br>Visit the @gambler_tech channel. Download source code for:</p><ul><li><p>A Discord token stealer (malware)</p></li><li><p>An automated DM spam bot</p></li><li><p>A WebSocket client library for real-time coordination</p></li></ul><p><strong>Step 4: Deploy and Monitor</strong><br>Distribute the malware however you want (game mod sites, fake extension repos, Reddit links). When victims fall into the funnel, their deposits trigger real-time WebSocket notifications. You see it live. Your dashboard updates. Your commission accrues.</p><p><strong>Step 5: Get Paid</strong><br>50-70% of every victim&#8217;s deposit hits your account. Minimum guarantee of 50% even if something goes wrong. Monthly settlement via bank wire through Sher888.</p><p>A mid-tier operator (50 victims/month at $500 average) is making $12,500-17,500 monthly. Top operators are pushing $100,000+. This is better than legitimate cybersecurity work, which is probably why they&#8217;re getting hundreds of sign-ups.</p><div><hr></div><h2><strong>The Victim Funnel (From Their Wiki)</strong></h2><p>The operatives documented their victim psychology in excruciating detail. They know exactly why people fall for this.</p><p><strong>Stage 1: Contact</strong><br>&#8220;You have $3,450 waiting. Claim it here:&#8221; The link comes from someone in your contact list, so you trust it.</p><p><strong>Stage 2: Hook</strong><br>The casino interface is professional. The bonus is real (on screen). The only thing preventing withdrawal is a &#8220;verification deposit.&#8221; This is the magic moment&#8212;they&#8217;ve already convinced the victim they&#8217;re wealthy. Now it&#8217;s just about proving it.</p><p><strong>Stage 3: Investment</strong><br>$100 to start. Doesn&#8217;t clear. &#8220;$500 for priority processing.&#8221; Still stuck. &#8220;$2,000 to unlock premium withdrawal.&#8221; By now, the victim has already lost the psychological game. They&#8217;re chasing the $3,450 illusion instead of accepting the loss.</p><p><strong>Stage 4: Exit</strong><br>Account locked. Support chat disconnected. Victim realizes they&#8217;ve been robbed.</p><p>The documentation actually calls this &#8220;victim loss-chasing mechanics&#8221;&#8212;as if it&#8217;s a feature, not a crime. They&#8217;re engineering the psychological traps that make victims dig deeper instead of walking away.</p><div><hr></div><h2><strong>The Technical Architecture</strong></h2><p>For those who care about the engineering:</p><p><strong>Infrastructure:</strong></p><ul><li><p><strong>Hosting:</strong> Cloudflare CDN (free tier DDoS protection)</p></li><li><p><strong>Domains:</strong> Registered through PublicDomainRegistry under pseudonym &#8220;Thiago Powell&#8221;</p></li><li><p><strong>API Backend:</strong> REST + WebSocket (real-time event streaming)</p></li><li><p><strong>Language:</strong> Appears to be Node.js/Next.js (based on domain configuration)</p></li></ul><p><strong>Cryptocurrency Flow:</strong></p><ol><li><p>Victims send deposits to: <code>TE51Enb6DZWuDQ8EF4imJT1R</code> (Tron USDT wallet)</p></li><li><p>Funds consolidate (~200 victims at a time)</p></li><li><p>Routed to Bybit exchange (95% of proceeds)</p></li><li><p>Converted to fiat</p></li><li><p>Moved to Sher888 VASP (Georgia) for final settlement</p></li><li><p>Bank wire to operator accounts</p></li></ol><p>They support 17 blockchain networks: Bitcoin, Ethereum, XRP, Solana, TON, Tron, Binance Chain, Litecoin, USDT, USDC, Monero, and others. This means victims can scam-pay from whatever chain they hold. Maximum optionality for maximum victim targeting.</p><p><strong>Command &amp; Control:</strong><br>Real-time WebSocket endpoint broadcasts when deposits arrive. Operators watch live:</p><pre><code><code>newDeposit: victim sent $500
newDrain: $500 moved to exchange
newMessage: operator-to-victim comms relay
</code></code></pre><p>It&#8217;s a leaderboard. Gamification. They&#8217;re literally competing on Slack-style dashboards to see who can defraud the most people fastest.</p><div><hr></div><h2><strong>Why You Should Care</strong></h2><p><strong>You&#8217;re in their targeting cone if:</strong></p><ul><li><p>You use Discord (account compromise via any vector: malware, phishing, credential reuse)</p></li><li><p>You download games or mods from untrusted sources (potential malware distribution)</p></li><li><p>You reuse passwords across multiple sites (exposed credentials get weaponized)</p></li><li><p>You hold cryptocurrency (payment method)</p></li><li><p>You&#8217;ve ever fallen for a &#8220;too good to be true&#8221; financial offer (victim profile)</p></li></ul><p><strong>The psychological trap is real.</strong> Their own documentation shows they understand human cognitive bias better than most UX designers. The $3,450 bonus doesn&#8217;t exist, but your brain doesn&#8217;t care. Your brain sees: You&#8217;re wealthy. You just need to &#8220;unlock&#8221; it. Every dollar you send is an investment, not a loss. The sunk cost fallacy does the rest.</p><p>If this happened to you, you&#8217;re not stupid. You got targeted by a professionally engineered exploitation vector with a $30-60M budget. That&#8217;s not a scam. That&#8217;s a financial weapon.</p><div><hr></div><h2><strong>What Happened After I Reported This</strong></h2><p>The infrastructure is <em>still active</em>. On July 1, 2026, duetux.com is still online. The wiki is still public. The Telegram bots are still registering new affiliates. Cloudflare is still protecting their backend. The payment processing is still flowing.</p><p>I&#8217;ve filed reports with:</p><ul><li><p><strong>FBI IC3</strong> (Internet Crime Complaint Center)</p></li><li><p><strong>Tether Abuse Team</strong> (cryptocurrency transaction tracking)</p></li><li><p><strong>CISA</strong> (Cybersecurity &amp; Infrastructure Security Agency)</p></li><li><p><strong>Interpol</strong> (international law enforcement coordination)</p></li></ul><p>The usual suspects. They have evidence. They have blockchain trails. They have bank records from Sher888.</p><p>What they don&#8217;t have yet is the political will to coordinate an international takedown of a syndicate operating out of a jurisdiction (Eastern Europe) where cybercrime has become economically indistinguishable from state-sponsored activity.</p><div><hr></div><h2><strong>How to Protect Yourself</strong></h2><p><strong>For Discord Users:</strong></p><ul><li><p>Enable 2FA on your Discord account (SMS or authenticator app)&#8212;this blocks account takeovers even if your password is compromised</p></li><li><p>Don&#8217;t reuse passwords across sites (if your password leaked from LinkedIn or another breach, it&#8217;ll be tried against Discord)</p></li><li><p>Don&#8217;t download &#8220;game installers&#8221; from random Reddit threads</p></li><li><p>Don&#8217;t click &#8220;install this mod&#8221; links from unknown sources</p></li><li><p>Don&#8217;t trust DMs with investment opportunities, even from friends&#8212;their account is probably compromised</p></li><li><p>If your account starts DMing people unsolicited, you&#8217;ve been compromised&#8212;reset your password immediately and check your login history for unfamiliar IPs/sessions</p></li><li><p>Check your authorized apps: Discord Settings &#8594; Authorized Apps &#8594; Review and revoke anything you don&#8217;t recognize</p></li><li><p>Check if your email recovery settings have been changed (your email might have a forwarding rule set by the attacker)</p></li></ul><p><strong>For Cryptocurrency Holders:</strong></p><ul><li><p>Assume every &#8220;investment opportunity&#8221; DMed to you from a friend is a scam (because their account is compromised)</p></li><li><p>Never send a &#8220;verification deposit&#8221; to prove wealth</p></li><li><p>The fact that you see money in an account doesn&#8217;t mean you can withdraw it</p></li><li><p>If withdrawal is blocked, it&#8217;s not an investment. It&#8217;s a scam.</p></li><li><p>Watch for deepfake videos of celebrities endorsing casinos&#8212;they&#8217;re fabricated</p></li></ul><p><strong>For Parents:</strong></p><ul><li><p>Know what your kids are downloading</p></li><li><p>Game installers from obscure websites are trojan vectors</p></li><li><p>Discord tokens are accounts. Stolen accounts are used to scam strangers</p></li><li><p>Teach them: If it promises money with no effort, it&#8217;s designed to steal from them (or from their friends&#8217; parents)</p></li></ul><div><hr></div><h2><strong>What&#8217;s Happening Now</strong></h2><p>Law enforcement agencies move slow. The Gambler Syndicate moves fast. By the time any coordinated takedown happens, they&#8217;ll have already shifted infrastructure, rotated wallets, and fired up sister operations under different names.</p><p>This is their third or fourth major operation. They&#8217;ve done MrBeast casino variants. They&#8217;ve done Andrew Tate pump-and-dumps. They&#8217;ve done AI deepfake testimonials. Each time they&#8217;ve gotten more sophisticated. Each time the funnel has gotten tighter.</p><p>The competence threshold for organized cybercrime has gotten so low&#8212;and the profitability so high&#8212;that there&#8217;s essentially no reason for criminal enterprises to stop. The punishment risk is minimal. The reward is $2.5-5 million monthly.</p><p>That math doesn&#8217;t change unless we change the response.</p><div><hr></div><h2><strong>The Bigger Picture</strong></h2><p>This isn&#8217;t a story about one scam. This is a story about what happens when:</p><ul><li><p><strong>Platforms don&#8217;t require authentication for malware distribution</strong> (anyone can create game installer repos)</p></li><li><p><strong>Payment infrastructure doesn&#8217;t verify users</strong> (Bybit lets you move millions through automated accounts)</p></li><li><p><strong>Offshore jurisdictions don&#8217;t cooperate with law enforcement</strong> (Seychelles registrants have zero accountability)</p></li><li><p><strong>Cryptocurrency is frictionless</strong> (17 chains, instant settlement, no reversals)</p></li><li><p><strong>Affiliate recruitment is automated</strong> (Telegram bots with zero gatekeeping)</p></li></ul><p>You end up with a $30-60M annual crime operation running on an ad-hoc infrastructure that&#8217;s part malware, part casino, part money laundering pipeline, and part psychological exploitation.</p><p>This will keep happening. It will keep scaling. It will keep targeting people who&#8212;like my contacts&#8212;suddenly got a message from &#8220;me&#8221; that looked legitimate enough to click.</p><div><hr></div><h2><strong>What I Did Next</strong></h2><p>I&#8217;m publishing this because silence is complicity. The victims in the Gambler funnel need to know:</p><ol><li><p><strong>This is organized. It&#8217;s not a one-off scam.</strong> Hundreds of people coordinated this across multiple countries.</p></li><li><p><strong>This is targeted. They had your account credentials.</strong> This wasn&#8217;t random spam. This was a direct compromise with a specific vector.</p></li><li><p><strong>This is profitable. It only stops when it becomes unprofitable.</strong> Law enforcement is slow. Individual defensive measures matter more.</p></li></ol><p>I&#8217;ve documented everything. I&#8217;m making it public. I&#8217;m providing law enforcement with the playbook.</p><p>What you do with this information is up to you.</p><p>If you got DMed a casino link from a friend recently&#8212;especially if you don&#8217;t remember your friend sending it&#8212;reset their password immediately and check their login history. If you received such a link yourself, don&#8217;t click it. Their account is compromised via one of several vectors: malware, phishing, credential reuse from another breach, or social engineering. The specific vector doesn&#8217;t matter as much as the response: isolate, reset, verify. You&#8217;re not the target. Your contact list is.</p><p>If you&#8217;re running a Discord server, warn your members. If you&#8217;re a security researcher, here are the infrastructure details you need to build detection. If you&#8217;re in law enforcement, I have more specifics than I can publish publicly.</p><p>This is what organized cryptocurrency crime looks like in 2026.</p><div><hr></div><p><em>Data sources: Operational documentation from wiki.gambler-partners.is, blockchain analysis of primary collector wallet (TE51Enb6DZWuDQ8EF4imJT1R), API endpoint enumeration, Telegram threat actor profiles, Whois records, SSL certificate analysis, WebSocket event tracking, and direct victim communications. </em></p><p><em>Confidence level: HIGH (based on captured operational documentation and real-time infrastructure observation)</em></p><div><hr></div><h1><strong>GAMBLER SYNDICATE &#8212; OPERATIONAL INTELLIGENCE REPORT</strong></h1><p><strong>Classification:</strong> HIGH-PRIORITY THREAT / ORGANIZED CYBERCRIME<br><strong>Report Date:</strong> 2026-06-30 @ 23:55 UTC<br><strong>Incident Trigger:</strong> Discord account compromise at 6:16 PM UTC<br><strong>Investigation Status:</strong> COMPLETE</p><div><hr></div><h2><strong>1. ORGANIZATIONAL STRUCTURE</strong></h2><h3><strong>Command Hierarchy</strong></h3><pre><code><code>GAMBLER SYNDICATE (Unknown CEO/Founder)
    &#9474;
    &#9500;&#9472; @gamblerworkmain / @gamblerwork (PRIMARY OPERATIONAL ADMIN)
    &#9474;   &#9500;&#9472; Day-to-day operations
    &#9474;   &#9500;&#9472; IP whitelist approvals
    &#9474;   &#9500;&#9472; Operator recruitment &amp; vetting
    &#9474;   &#9492;&#9472; Financial distribution (50-70% operator commission)
    &#9474;
    &#9500;&#9472; @lord_gambler / @lord_gamb (TECH ADMIN / ENGINEERING LEAD)
    &#9474;   &#9500;&#9472; Infrastructure maintenance
    &#9474;   &#9500;&#9472; API &amp; WebSocket development
    &#9474;   &#9500;&#9472; Bot source code management
    &#9474;   &#9500;&#9472; Database administration
    &#9474;   &#9492;&#9472; Payment flow integration (17-chain crypto support)
    &#9474;
    &#9500;&#9472; @gambler_panel_bot (AUTOMATED REGISTRATION BOT)
    &#9474;   &#9500;&#9472; New operator account creation
    &#9474;   &#9500;&#9472; Automated login/password generation
    &#9474;   &#9500;&#9472; API token provisioning
    &#9474;   &#9492;&#9472; Panel access onboarding
    &#9474;
    &#9500;&#9472; @gambler_info (PUBLIC INFORMATION CHANNEL)
    &#9474;   &#9500;&#9472; Documentation publishing
    &#9474;   &#9500;&#9472; Policy announcements
    &#9474;   &#9492;&#9472; Public-facing communications
    &#9474;
    &#9492;&#9472; @gambler_tech (BOT SOURCE CODE REPOSITORY)
        &#9500;&#9472; Discord token stealer malware
        &#9500;&#9472; DM spam bot code
        &#9500;&#9472; WebSocket client library
        &#9492;&#9472; Social media automation tools
</code></code></pre><h3><strong>Operator Network</strong></h3><ul><li><p><strong>Estimated active operators:</strong> 100-500</p></li><li><p><strong>Recruitment method:</strong> Telegram @gambler_panel_bot + incentive structure</p></li><li><p><strong>Commission structure:</strong> 50-70% of verified victim deposits</p></li><li><p><strong>Insurance/Hedge guarantee:</strong> 50% payout floor on successful conversions</p></li><li><p><strong>Real-time incentive tracking:</strong> WebSocket event notifications (newDeposit, newDrain)</p></li></ul><div><hr></div><h2><strong>2. INFRASTRUCTURE ASSETS</strong></h2><h3><strong>Primary Domains</strong></h3><p><strong>DomainPurposeStatusTech StackRegistrarduetux.com</strong>Public-facing casino (victim recruitment)ACTIVENext.js + TurbopackPDR (PublicDomainRegistry)<strong>gambler-partners.is</strong>Operator/affiliate management panelACTIVEREST API + WebSocket + WikiUnknown (likely same)<strong>gambler-panel.com</strong>Legacy backend infrastructureDEADSocket.io (deprecated)Unknown</p><h3><strong>Hosting Infrastructure</strong></h3><p><strong>CDN/Protection Layer:</strong></p><ul><li><p>Cloudflare (AS13335)</p></li><li><p>Free tier DNS + DDoS protection</p></li><li><p>IPs: 104.21.96.120, 172.67.180.13 (IPv4)</p></li><li><p>IPv6: 2606:4700:30336815:6078, 2606:4700:3030ac43:b40d</p></li></ul><p><strong>SSL Certificates:</strong></p><ul><li><p>Issuer: Cloudflare TLS + Google Trust Services</p></li><li><p>Issue date: 2026-06-30 (same day as domain registration)</p></li><li><p>Validity: 90 days (Sept 28, 2026)</p></li><li><p>Dual issuance indicates automated Cloudflare provisioning</p></li></ul><h3><strong>API Endpoints &amp; Protocols</strong></h3><p><strong>REST API (gambler-partners.is):</strong></p><pre><code><code>Base URL: https://gambler-partners.is/api/
Authentication: Bearer token (obtained via @gambler_panel_bot)
Rate limiting: Unknown (IP whitelist required)
Endpoints: [Full list requires active access]
</code></code></pre><p><strong>WebSocket Command &amp; Control (LIVE):</strong></p><pre><code><code>Endpoint: wss://gambler-partners.is/api/ws
Authentication: ?token=Worker_{token}&amp;connectionType=bot
Real-time events:
  - newDeposit (victim funding detected)
  - newDrain (victim account drained)
  - newMessage (operator-to-victim communication)
Purpose: Live deposit tracking + operator gamification
</code></code></pre><p><strong>Telegram Bot API:</strong></p><ul><li><p>@gambler_panel_bot (account creation)</p></li><li><p>@gamblerworkmain (approvals &amp; escalations)</p></li><li><p>@lord_gamb (technical support)</p></li></ul><h3><strong>Documentation Infrastructure</strong></h3><p><strong>Operational Wiki:</strong></p><ul><li><p>URL: </p></li></ul><p>https://wiki.gambler-partners.is/</p><ul><li><p>Sitemap: <a href="https://wiki.gambler-partners.is/sitemap.md">https://wiki.gambler-partners.is/sitemap.md</a></p></li><li><p>LLMs dump: <a href="https://wiki.gambler-partners.is/llms-full.txt">https://wiki.gambler-partners.is/llms-full.txt</a></p></li><li><p>Format: Markdown (50+ pages of operational procedures)</p></li><li><p>Language: Russian (Cyrillic documentation)</p></li><li><p>Access: Public (no authentication required)</p></li></ul><p><strong>Wiki Categories:</strong></p><ul><li><p>Core panel operations</p></li><li><p>Domain setup &amp; management</p></li><li><p>Promo code generation</p></li><li><p>Telegram bot deployment</p></li><li><p>Social media operation manuals (Instagram, TikTok, YouTube Shorts, Meta Threads)</p></li><li><p>VPN/OPSEC configuration</p></li><li><p>Victim psychology &amp; conversion optimization</p></li><li><p>Account compromise techniques</p></li><li><p>Payment integration procedures</p></li></ul><div><hr></div><h2><strong>3. OPERATIONAL PROCEDURES</strong></h2><h3><strong>Victim Recruitment Pipeline</strong></h3><p><strong>Primary Channels:</strong></p><ol><li><p><strong>Discord (ACTIVE)</strong> &#8212; Account compromise &#8594; DM spam</p></li><li><p><strong>Telegram</strong> &#8212; Direct bot invitations + affiliate link sharing</p></li><li><p><strong>Instagram</strong> &#8212; Fake celebrity/influencer casino pages</p></li><li><p><strong>TikTok</strong> &#8212; Video-based funnel with deepfake testimonials</p></li><li><p><strong>YouTube Shorts</strong> &#8212; Automated spam video campaigns</p></li><li><p><strong>Meta Threads</strong> &#8212; Large-scale comment/reply spam (&#8221;millions&#8221; targeted)</p></li></ol><h3><strong>Victim Funnel (Scam Mechanics)</strong></h3><pre><code><code>Step 1: CONTACT
&#9500;&#9472; Victim receives DM from "trusted contact" (compromised account)
&#9492;&#9472; Link: duetux.com with promo code CASH

Step 2: REGISTRATION
&#9500;&#9472; User creates account at duetux.com
&#9492;&#9472; Fabricated $3,450 bonus balance appears instantly

Step 3: PSYCHOLOGICAL HOOK
&#9500;&#9472; False withdrawal success UI shown
&#9500;&#9472; "Verification deposit" demanded ($100-500 minimum)
&#9492;&#9472; Victim believes they need to "unlock" their bonus

Step 4: PAYMENT
&#9500;&#9472; Victim transfers crypto to wallet (17 supported chains)
&#9500;&#9472; Primary collector: TE51Enb6DZWuDQ8EF4imJT1R (Tron USDT)
&#9492;&#9472; WebSocket event fires: newDeposit (operator notified in real-time)

Step 5: THEFT
&#9500;&#9472; Funds consolidated
&#9500;&#9472; Account locked
&#9500;&#9472; Support chat ends (operator disconnects)
&#9492;&#9472; WebSocket event fires: newDrain

Step 6: VICTIM LOSS
&#9500;&#9472; Total per-victim loss: $100-4,410 USD
&#9500;&#9472; Monthly victims: ~10,000 (estimated)
&#9492;&#9472; Monthly revenue: $2-5M USD (estimated)
</code></code></pre><h3><strong>Operator Workflow</strong></h3><pre><code><code>Step 1: REGISTRATION
&#9500;&#9472; Message @gambler_panel_bot
&#9492;&#9472; Receive: username/password for gambler-partners.is panel

Step 2: AUTHENTICATION
&#9500;&#9472; Log into panel
&#9500;&#9472; Navigate to Settings &#8594; API
&#9492;&#9472; Copy API token (authentication key for all API calls)

Step 3: IP WHITELIST
&#9500;&#9472; Request IP whitelist via @gamblerworkmain or @lord_gamb
&#9492;&#9472; Provide: Operator's VPN IP address (mandatory per wiki)

Step 4: BOT DOWNLOAD
&#9500;&#9472; Visit @gambler_tech channel
&#9500;&#9472; Download Discord token stealer source code
&#9500;&#9472; Download automated DM spam bot
&#9492;&#9472; Download WebSocket client library

Step 5: CAMPAIGN DEPLOYMENT
&#9500;&#9472; Execute token stealer (distribute via game installers/extensions)
&#9500;&#9472; Monitor WebSocket for newDeposit events
&#9500;&#9472; Harvest target contacts' Discord tokens
&#9492;&#9472; Launch automated DM campaigns to victim contact lists

Step 6: REAL-TIME MONITORING
&#9500;&#9472; Connect to WebSocket: wss://gambler-partners.is/api/ws?token=Worker_{token}
&#9500;&#9472; Listen for events: newDeposit (victim funded), newDrain (funds moved)
&#9500;&#9472; Gamification: Leaderboard of top operators by deposit volume
&#9492;&#9472; Commission tracked in real-time dashboard

Step 7: PAYOUT
&#9500;&#9472; 50-70% of verified victim deposits credited to operator account
&#9500;&#9472; Insurance guarantee: 50% minimum payout (hedge against fraud)
&#9492;&#9472; Monthly settlement via VASP (Sher888, Georgia-based)
</code></code></pre><h3><strong>Money-Laundering Flow</strong></h3><pre><code><code>Victim Deposit (duetux.com, 17-chain crypto)
    &#8595;
Primary Collector Wallet (TE51Enb6DZWuDQ8EF4imJT1R - Tron USDT)
    &#8595;
Consolidation Phase (~200+ victims aggregated)
    &#8595;
Relay/Mixer Wallets (multi-hop through privacy coins if used)
    &#8595;
Bybit Exchange Deposit (95% of proceeds routed here)
    &#8595;
Sher888 VASP (Georgia-based, final cash-out point)
    &#8595;
Bank wire / ACH to operator personal accounts
    &#8595;
Operator commission payout (50-70% of deposit)
</code></code></pre><p><strong>Money Movement Timeline:</strong></p><ul><li><p>Deposits: Immediate consolidation (minutes)</p></li><li><p>Relay: Variable (hours to days depending on circuit load)</p></li><li><p>Exchange deposit: Within 24 hours</p></li><li><p>VASP settlement: 1-7 business days</p></li><li><p>Operator payout: Monthly settlement cycle</p></li></ul><div><hr></div><h2><strong>4. TECHNICAL CAPABILITIES</strong></h2><h3><strong>Discord Token Stealer Malware</strong></h3><p><strong>Name:</strong> &#8220;Projekt Passion&#8221; (game installer trojan variant)<br><strong>Distribution:</strong> Game modding sites, browser extension repos<br><strong>Payload:</strong></p><pre><code><code>1. Hook Discord.exe process
2. Extract session token from AppData/Local/Discord/Local Storage/
3. Exfiltrate to Telegram bot backend
4. Return control to legitimate application (fileless persistence)
</code></code></pre><p><strong>Execution:</strong> User downloads game installer &#8594; runs .exe &#8594; token stolen silently</p><h3><strong>DM Spam Bot</strong></h3><p><strong>Capability:</strong> Automated message distribution<br><strong>Target:</strong> All contacts in victim&#8217;s Discord friend list<br><strong>Payload:</strong> Link to duetux.com + promo code CASH<br><strong>Timing:</strong> Deployed within minutes of token theft<br><strong>Volume:</strong> 1,000+ DMs per compromised account</p><h3><strong>WebSocket Real-Time Tracking</strong></h3><p><strong>Purpose:</strong> Live operator gamification + event notification<br><strong>Events Tracked:</strong></p><ul><li><p><code>newDeposit</code> &#8212; Victim sent crypto to collector wallet</p></li><li><p><code>newDrain</code> &#8212; Funds consolidated and moved to next stage</p></li><li><p><code>newMessage</code> &#8212; Operator-to-victim communication relay</p></li></ul><p><strong>Operational Significance:</strong></p><ul><li><p>Operators see deposits in real-time (incentivizes continued recruitment)</p></li><li><p>Leaderboard competition drives operator volume</p></li><li><p>Event timestamps enable pattern analysis (victim behavior prediction)</p></li></ul><h3><strong>API Capabilities (Inferred)</strong></h3><p><strong>Authentication:</strong></p><pre><code><code>POST /api/auth/login
POST /api/auth/register
GET /api/auth/token
</code></code></pre><p><strong>Operator Management:</strong></p><pre><code><code>GET /api/operators/profile
GET /api/operators/dashboard
GET /api/operators/statistics
POST /api/operators/whitelist/request
</code></code></pre><p><strong>Campaign Management:</strong></p><pre><code><code>GET /api/campaigns/active
POST /api/campaigns/create
GET /api/campaigns/{id}/performance
</code></code></pre><p><strong>Wallet Management:</strong></p><pre><code><code>GET /api/wallets/collector
GET /api/wallets/{id}/balance
POST /api/wallets/transfer
</code></code></pre><p><strong>Victim Tracking:</strong></p><pre><code><code>GET /api/victims/deposits
GET /api/victims/conversions
GET /api/victims/engagement
</code></code></pre><h3><strong>Social Media Automation</strong></h3><p><strong>Instagram Automation:</strong></p><ul><li><p>Fake celebrity casino page creation</p></li><li><p>Automated follower acquisition</p></li><li><p>Hashtag targeting to gambling audiences</p></li><li><p>DM bot for link distribution</p></li></ul><p><strong>TikTok Automation:</strong></p><ul><li><p>Video repurposing (testimonial clips + casino gameplay)</p></li><li><p>Automated posting to high-engagement accounts</p></li><li><p>Deepfake testimony integration (AI-generated victim &#8220;success stories&#8221;)</p></li><li><p>Comment spam with link injection</p></li></ul><p><strong>YouTube Shorts Automation:</strong></p><ul><li><p>Bot-generated short videos (5-15 seconds)</p></li><li><p>Automated upload scheduling</p></li><li><p>Algorithmic gaming for &#8220;Trending&#8221; placement</p></li><li><p>Link-in-bio injection</p></li></ul><p><strong>Meta Threads Automation:</strong></p><ul><li><p>Bulk account creation</p></li><li><p>Automated posting across multiple accounts</p></li><li><p>Comment/reply spam at scale (&#8221;millions&#8221; documented in wiki)</p></li><li><p>Cross-platform link aggregation</p></li></ul><div><hr></div><h2><strong>5. FINANCIAL SCOPE</strong></h2><h3><strong>Revenue Estimation</strong></h3><p><strong>Monthly Victim Count:</strong> ~10,000 (conservative estimate based on 1,200 active domains)</p><p><strong>Victim Loss Distribution:</strong></p><ul><li><p>Low-value victims: $100-500 (40% of victims)</p></li><li><p>Mid-value victims: $500-2,000 (45% of victims)</p></li><li><p>High-value victims: $2,000-4,410 (15% of victims)</p></li><li><p><strong>Average per-victim loss:</strong> ~$500-750 USD</p></li></ul><p><strong>Monthly Revenue Calculation:</strong></p><pre><code><code>10,000 victims &#215; $500 avg = $5,000,000 USD/month
(Conservative: 10,000 &#215; $250 = $2,500,000 minimum)
Range: $2.5M - $5M USD monthly
Annual estimate: $30-60M USD
</code></code></pre><h3><strong>Operator Commission Structure</strong></h3><p><strong>Commission Model:</strong></p><ul><li><p>Base rate: 50-70% of verified victim deposits</p></li><li><p>Insurance guarantee: 50% minimum payout (hedge against fraud claims)</p></li><li><p>Performance bonus: Undocumented (likely based on volume/conversion rate)</p></li><li><p>Monthly settlement: Via Sher888 VASP</p></li></ul><p><strong>Operator Economics:</strong></p><ul><li><p>Tier 1 operator (10 victims/month @ $500 avg): $2,500-3,500 monthly</p></li><li><p>Tier 2 operator (50 victims/month): $12,500-17,500 monthly</p></li><li><p>Tier 3 operator (200 victims/month): $50,000-70,000 monthly</p></li><li><p>Top operators: Potentially $100,000+ monthly (depending on cohort size)</p></li></ul><h3><strong>Infrastructure Costs</strong></h3><p><strong>Estimated monthly operational expenses:</strong></p><ul><li><p>Domain registrations (1,200+ domains @ $0.50-2 avg): ~$1,000</p></li><li><p>Cloudflare CDN/DDoS protection: ~$200-500</p></li><li><p>VPS/hosting (redundant servers): ~$2,000-5,000</p></li><li><p>Telegram bot infrastructure: Negligible</p></li><li><p>Cryptocurrency transaction fees (17-chain support): ~$5,000-10,000</p></li><li><p>Operator payout processing (Sher888 VASP): ~5-10% fee on settlement</p></li></ul><p><strong>Net monthly profit:</strong> ~$2.2M - $4.7M USD (after expenses &amp; operator commission)</p><div><hr></div><h2><strong>6. THREAT ACTOR PROFILE</strong></h2><h3><strong>Geographic Attribution</strong></h3><p><strong>Likely Origin:</strong> Eastern Europe or Southeast Asia</p><p><strong>Evidence:</strong></p><ul><li><p>Russian-language operational documentation (Cyrillic wiki)</p></li><li><p>Telegram infrastructure preference (Eastern European adoption pattern)</p></li><li><p>Seychelles jurisdiction (offshore crypto haven &#8212; common for Russian operators)</p></li><li><p>24/7 operational tempo suggests Eastern European timezone</p></li></ul><p><strong>Suspect countries (ranked by probability):</strong></p><ol><li><p>Russia / Former Soviet republics (Cyrillic documentation)</p></li><li><p>Ukraine (cybercriminal hub infrastructure)</p></li><li><p>Romania / Eastern Europe (Seychelles jurisdiction preference)</p></li><li><p>Southeast Asia (secondarily, due to crypto expertise)</p></li></ol><h3><strong>Operational Sophistication</strong></h3><p><strong>High-confidence indicators:</strong></p><ul><li><p>Multi-domain infrastructure (1,200+ coordinated sites)</p></li><li><p>Automated token stealer malware development</p></li><li><p>Real-time WebSocket C&amp;C (not script-kiddie level)</p></li><li><p>Psychological profiling (victim loss-chasing mechanics documented)</p></li><li><p>International VASP integration (money laundering sophistication)</p></li><li><p>Multi-chain cryptocurrency support (technical expertise)</p></li><li><p>Automated social media deployment (botnet-level ops)</p></li></ul><p><strong>Assessment:</strong> <strong>Professional organized crime syndicate, not casual fraudsters</strong></p><h3><strong>Previous Activity</strong></h3><ul><li><p><strong>MrBeast casino variant (Q1-Q2 2026)</strong> &#8212; Similar scam targeting influencer audiences</p></li><li><p><strong>Andrew Tate variant</strong> &#8212; Fake celebrity endorsement pump-and-dump</p></li><li><p><strong>AI deepfake video production</strong> &#8212; Sophisticated victim testimonial fabrication</p></li><li><p><strong>Discord token stealer campaigns (June 2026)</strong> &#8212; Mass account compromise operations</p></li></ul><h3><strong>Operational Security Posture</strong></h3><p><strong>Strengths:</strong></p><ul><li><p>Privacy-protected domain registration (Thiago Powell identity likely pseudonym)</p></li><li><p>Seychelles jurisdiction (poor law enforcement cooperation)</p></li><li><p>Telegram C&amp;C (decentralized, no single point of failure)</p></li><li><p>Cloudflare DDoS protection (prevents simple takedowns)</p></li><li><p>VPN requirement for operators (prevents IP-based attribution)</p></li><li><p>Multi-crypto support (prevents single-chain analysis)</p></li></ul><p><strong>Weaknesses:</strong></p><ul><li><p>Public wiki exposes internal procedures</p></li><li><p>API endpoints likely vulnerable to enumeration</p></li><li><p>Operator recruitment creates informant vector</p></li><li><p>VASP (Sher888) creates accountability point</p></li><li><p>Real-time WebSocket events create forensic fingerprints</p></li><li><p>Victims file complaints (enables law enforcement coordination)</p></li></ul><h3><strong>Threat Classification</strong></h3><p><strong>MITRE ATT&amp;CK Mapping:</strong></p><ul><li><p>Tactic: Resource Development (infrastructure setup)</p></li><li><p>Technique: Acquire Infrastructure - Domains</p></li><li><p>Tactic: Initial Access (Discord account compromise)</p></li><li><p>Technique: Phishing - Spearphishing Link</p></li><li><p>Tactic: Execution (malware deployment)</p></li><li><p>Technique: User Execution - Malware</p></li><li><p>Tactic: Defense Evasion (Cloudflare obfuscation)</p></li><li><p>Technique: Proxy - Multi-tier proxy</p></li></ul><p><strong>RACI Assignment:</strong></p><ul><li><p><strong>Responsible:</strong> Unknown syndicate operators (Eastern European-based)</p></li><li><p><strong>Accountable:</strong> @gamblerwork, @lord_gambler (primary admins)</p></li><li><p><strong>Consulted:</strong> Sher888 VASP, PublicDomainRegistry, Cloudflare</p></li><li><p><strong>Informed:</strong> 10,000+ monthly victims</p></li></ul><div><hr></div><h2><strong>COMPLETE ASSET INVENTORY</strong></h2><h3><strong>Domains</strong></h3><ul><li><p>duetux.com (primary casino, active)</p></li><li><p>gambler-partners.is (operator panel, active)</p></li><li><p>gambler-panel.com (legacy, dead)</p></li><li><p>~1,197 sister domains (estimated, not individually mapped)</p></li></ul><h3><strong>IP Addresses</strong></h3><ul><li><p>104.21.96.120 (Cloudflare CDN)</p></li><li><p>172.67.180.13 (Cloudflare CDN)</p></li><li><p>2606:4700:3033::6815:6078 (IPv6 CDN)</p></li><li><p>2606:4700:3030::ac43:b40d (IPv6 CDN)</p></li></ul><h3><strong>Cryptocurrency Wallets</strong></h3><ul><li><p><strong>Primary collector:</strong> TE51Enb6DZWuDQ8EF4imJT1R (Tron USDT TRC20)</p></li><li><p><strong>17-chain support:</strong> BTC, ETH, XRP, SOL, TON, TRX, BNB, LTC, USDT, USDC, Monero, others</p></li></ul><h3><strong>Telegram Accounts</strong></h3><ul><li><p>@gamblerwork (primary admin)</p></li><li><p>@gamblerworkmain (operational control)</p></li><li><p>@lord_gambler (tech admin)</p></li><li><p>@lord_gamb (tech admin variant)</p></li><li><p>@gambler_panel_bot (registration bot)</p></li><li><p>@gambler_info (info channel)</p></li><li><p>@gambler_tech (bot source repo)</p></li></ul><h3><strong>Infrastructure Services</strong></h3><ul><li><p>Registrar: PublicDomainRegistry (PDR)</p></li><li><p>CDN/DDoS: Cloudflare (AS13335)</p></li><li><p>VASP: Sher888 (Georgia-based, final settlement)</p></li><li><p>Exchange: Bybit (95% of proceeds)</p></li><li><p>DNS: Cloudflare nameservers</p></li></ul><div><hr></div><h2><strong>SUMMARY</strong></h2><p>The <strong>Gambler syndicate</strong> is a highly organized international cryptocurrency scam operation with:</p><ul><li><p><strong>100-500 active operators</strong> across multiple jurisdictions</p></li><li><p><strong>1,200+ coordinated domains</strong> targeting crypto/gambling audiences</p></li><li><p><strong>$2-5M USD monthly revenue</strong> (estimated)</p></li><li><p><strong>10,000+ monthly victims</strong> (estimated)</p></li><li><p><strong>Sophisticated technical infrastructure</strong> (token stealer malware, WebSocket C&amp;C, multi-chain crypto)</p></li><li><p><strong>Professional operational security</strong> (offshore jurisdiction, Telegram C&amp;C, VPN requirement)</p></li><li><p><strong>Psychological exploitation</strong> (victim loss-chasing mechanics, deepfake testimonials)</p></li></ul><p><strong>Estimated timeline to detection:</strong> Already active (June 2026 deployment observed)<br><strong>Estimated profitability window:</strong> 6-18 months before law enforcement takedown<br><strong>Recommended action:</strong> FBI/CISA coordination with Interpol (Eastern European law enforcement)</p><div><hr></div><h2><strong>EVIDENCE SOURCES</strong></h2><ol><li><p>Wiki sitemap: <a href="https://wiki.gambler-partners.is/sitemap.md">https://wiki.gambler-partners.is/sitemap.md</a></p></li><li><p>LLMs dump: <a href="https://wiki.gambler-partners.is/llms-full.txt">https://wiki.gambler-partners.is/llms-full.txt</a></p></li><li><p>Domain Whois: PublicDomainRegistry (Thiago Powell, Seychelles)</p></li><li><p>WebSocket endpoint: wss://gambler-partners.is/api/ws</p></li><li><p>Tron wallet: TE51Enb6DZWuDQ8EF4imJT1R (blockchain explorer)</p></li><li><p>Telegram admins: @gamblerwork, @lord_gambler (direct observation)</p></li><li><p>Operational flow: Panel registration &#8594; API token &#8594; IP whitelist &#8594; bot deployment</p></li><li><p>Victim communications: Discord scam DMs, casino interface screenshots</p></li></ol><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://ringmast4r.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ringmast4r is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>