{"id":530195,"date":"2026-07-02T23:31:13","date_gmt":"2026-07-02T23:31:13","guid":{"rendered":"https:\/\/www.newsbeep.com\/ie\/530195\/"},"modified":"2026-07-02T23:31:13","modified_gmt":"2026-07-02T23:31:13","slug":"dev-says-google-warned-him-about-account-hijack-then-charged-him-11000-anyway","status":"publish","type":"post","link":"https:\/\/www.newsbeep.com\/ie\/530195\/","title":{"rendered":"Dev says Google warned him about account hijack \u2013 then charged him $11,000 anyway"},"content":{"rendered":"<p class=\"kicker \" style=\"\">Cybercrime<\/p>\n<p class=\"subtitle \" style=\"\">Left hand, meet right hand<\/p>\n<p>During a 48-hour period from June 7 to 8, developer Charles Jones&#8217;s Google Cloud account registered $11,089.77 in charges &#8211; most related to the use of Gemini image-generation models.<\/p>\n<p>Yet Jones, a solo developer who runs programmatic SEO and insurance sites, told The Register that he doesn&#8217;t have any workflow that generates AI images.<\/p>\n<p>Google suspended his account anyway. A suspension notification sent to Jones on June 7 justified the decision by stating his account &#8220;was engaged in abusive activity consistent with hijacked resources.&#8221; <\/p>\n<p>&#8220;The root cause was attributed to a compromised firebase-adminsdk service account key,&#8221; said Jones, who provided The Register with documentation of his exchanges with Google Cloud support.<\/p>\n<p>The notification advised Jones to report his concerns if he believed the account was compromised by a third party. He did so and took the steps required by Google to have his account reinstated. He disabled the service account and revoked the key.<\/p>\n<p>But the Google Cloud billing team has repeatedly refused to forgive the charges.<\/p>\n<p>As we <a href=\"https:\/\/www.theregister.com\/devops\/2026\/05\/15\/google-reimburses-register-sources-who-were-victims-of-api-fraud\/5241429\" rel=\"nofollow noopener\" target=\"_blank\">reported previously<\/a>, complaints about charges arising from fraudulent API key usage among Google Cloud customers are not uncommon. In February, a developer based in Vietnam claimed that a Google Cloud API key compromise had resulted in more than <a href=\"https:\/\/www.theregister.com\/security\/2026\/03\/03\/dev-stunned-by-82k-gemini-api-key-bill-after-theft\/4925029\" rel=\"nofollow noopener\" target=\"_blank\">$82,000 in charges over 48 hours<\/a>. A similar report claiming more than $10,000 in fraudulent charges surfaced a month later <a href=\"https:\/\/www.reddit.com\/r\/googlecloud\/comments\/1t4xkmf\/charged_10138_in_march_2026_due_to_googles\/\" rel=\"nofollow noopener\" target=\"_blank\">on Reddit<\/a>.<\/p>\n<p>Regardless of where the fault lies \u2013 insecure practices by developers or insecure Google infrastructure \u2013 Google may choose to hold developers liable for unauthorized charges, <a href=\"https:\/\/docs.cloud.google.com\/billing\/docs\/how-to\/resolve-issues\" rel=\"nofollow noopener\" target=\"_blank\">even if the credit-card issuing bank has reversed the charge as fraudulent<\/a>.<\/p>\n<p>At the same time, Google still hasn&#8217;t publicly released a mechanism to cap Google Cloud spending. The company <a href=\"https:\/\/cloud.google.com\/blog\/topics\/cost-management\/introducing-spend-caps-ai-cost-visibility-next26\" rel=\"nofollow noopener\" target=\"_blank\">introduced Spend Caps<\/a> for certain services as a private preview but hasn&#8217;t made the service generally available.\u00a0<\/p>\n<p>Other cost-limiting measures, like <a href=\"https:\/\/docs.cloud.google.com\/apis\/docs\/capping-api-usage\" rel=\"nofollow noopener\" target=\"_blank\">API-specific usage limits<\/a> &#8220;aren&#8217;t designed to act as a project-wide spending cap.&#8221; Similarly, <a href=\"https:\/\/docs.cloud.google.com\/billing\/docs\/how-to\/budgets\" rel=\"nofollow noopener\" target=\"_blank\">Budget Alerts<\/a> &#8220;don&#8217;t automatically prevent the use or billing of your services when the budget amount or threshold rules are met or exceeded.&#8221; Google provides <a href=\"https:\/\/docs.cloud.google.com\/billing\/docs\/how-to\/disable-billing-with-notifications\" rel=\"nofollow noopener\" target=\"_blank\">a workaround<\/a> by allowing Budget Alert notifications to disable cloud billing, but warns that doing so means &#8220;resources might be irretrievably deleted.&#8221;<\/p>\n<p>In March, Google introduced\u00a0<a href=\"https:\/\/blog.google\/innovation-and-ai\/technology\/developers-tools\/more-control-over-gemini-api-costs\/\" rel=\"nofollow noopener\" target=\"_blank\">project spend caps<\/a>\u00a0for the Gemini API as an experimental feature, but at the same time the company said that spend caps have a 10 minute delay and customers are responsible for spending during that period \u2013 so the company&#8217;s definition of cap is rather flexible.\u00a0<\/p>\n<p>What&#8217;s more, Google said its system &#8220;now automatically upgrades you to the next [usage] tier as your usage grows and your payment history matures.&#8221; And higher tiers raise spending caps.<\/p>\n<p>This all means it can still be a challenge for Google Cloud customers to avoid unbounded financial obligations in the event of an account or API key compromise. Escaping that responsibility requires engaging with Google customer service in an opaque appeals process in which the company isn&#8217;t required to demonstrate customer negligence or an audit trail.<\/p>\n<p>&#8220;Here&#8217;s a question I can&#8217;t get answered, and I think it&#8217;s central to the whole pattern,&#8221; Jones said. &#8220;Google&#8217;s Trust &amp; Safety was quick to alert me that a service account key was compromised \u2014 but I have been given no route, anywhere, to see HOW or WHERE that key was actually exposed. There is no trace, no log path, no forensic detail offered.&#8221;<\/p>\n<p>Jones said he was the only person who had access to the VM where the compromised key resided and he insists that he followed the company&#8217;s recommended security practices.<\/p>\n<p>&#8220;So how does a single-access VM produce a leaked service account key \u2014 and why is the burden on me to prove I secured something Google itself can&#8217;t (or won&#8217;t) show me how I failed to secure? Google is invoking its Shared Responsibility Model to deny the refund, but that model assumes a customer security failure Google has never demonstrated.&#8221;<\/p>\n<p>The Register twice asked Google why it would deny a refund and what evidence it has that supports that decision. We&#8217;ve not heard back. \u00ae<\/p>\n","protected":false},"excerpt":{"rendered":"Cybercrime Left hand, meet right hand During a 48-hour period from June 7 to 8, developer Charles Jones&#8217;s&hellip;\n","protected":false},"author":2,"featured_media":530196,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[61,60,80],"class_list":["post-530195","post","type-post","status-publish","format-standard","has-post-thumbnail","category-technology","tag-ie","tag-ireland","tag-technology"],"_links":{"self":[{"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/posts\/530195","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/comments?post=530195"}],"version-history":[{"count":0,"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/posts\/530195\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/media\/530196"}],"wp:attachment":[{"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/media?parent=530195"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/categories?post=530195"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/tags?post=530195"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}