{"id":741526,"date":"2026-07-28T21:50:24","date_gmt":"2026-07-28T18:50:24","guid":{"rendered":"https:\/\/buradabiliyorum.com\/en\/ai-generated-code-shipped-controls-but-skipped-the-check\/"},"modified":"2026-07-28T21:50:24","modified_gmt":"2026-07-28T18:50:24","slug":"ai-generated-code-shipped-controls-but-skipped-the-check","status":"publish","type":"post","link":"https:\/\/buradabiliyorum.com\/en\/ai-generated-code-shipped-controls-but-skipped-the-check\/","title":{"rendered":"AI-generated code shipped controls but skipped the check"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_89 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6af286ef15073\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #dd3333;color:#dd3333\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #dd3333;color:#dd3333\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6af286ef15073\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/buradabiliyorum.com\/en\/ai-generated-code-shipped-controls-but-skipped-the-check\/#What_actually_broke\" >What actually broke<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/buradabiliyorum.com\/en\/ai-generated-code-shipped-controls-but-skipped-the-check\/#The_controls_were_all_there\" >The controls were all there<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/buradabiliyorum.com\/en\/ai-generated-code-shipped-controls-but-skipped-the-check\/#Why_the_scanners_miss_this\" >Why the scanners miss this<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/buradabiliyorum.com\/en\/ai-generated-code-shipped-controls-but-skipped-the-check\/#An_LLM_found_what_an_LLM_built\" >An LLM found what an LLM built<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/buradabiliyorum.com\/en\/ai-generated-code-shipped-controls-but-skipped-the-check\/#The_tempo_problem\" >The tempo problem<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/buradabiliyorum.com\/en\/ai-generated-code-shipped-controls-but-skipped-the-check\/#What_Sygnia_tells_clients_to_do\" >What Sygnia tells clients to do<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/buradabiliyorum.com\/en\/ai-generated-code-shipped-controls-but-skipped-the-check\/#One_caveat_worth_stating\" >One caveat worth stating<\/a><\/li><\/ul><\/nav><\/div>\n<div id=\"article-main-content\">\n<p>A penetration test at a financial services firm managing billions of dollars in client assets has found a critical flaw in AI-generated code. The interesting part is what the code got right.<\/p>\n<p>Sygnia, the incident response firm, assessed a customer onboarding <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/download-scripts-themes-apps\/\" data-internallinksmanager029f6b8e52c=\"9\" title=\"Download Scripts &amp; Themes &amp; Apps\" target=\"_blank\" rel=\"noopener\">app<\/a>lication built substantially with Claude. It handled government-issued identification, identity verification data, payment details and <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/social-mediaa\/\" data-internallinksmanager029f6b8e52c=\"1\" title=\"Social Media\" target=\"_blank\" rel=\"noopener\">Social<\/a> Security numbers.<\/p>\n<p>The flaw let one applicant reach another applicant\u2019s record.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"What_actually_broke\"><\/span>What actually broke<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The application solved a real problem. People start an application, leave, and return before they have an account, so the system must restore their progress without a password.<\/p>\n<p>Claude produced a temporary access model for that. The flaw sat in how the model decided who deserved a token.<\/p>\n<div class=\"inarticle-wrapper latest channel-cta hs-embed-tnw\">\n<div id=\"hs-embed-tnw\" class=\"channel-cta-wrapper\">\n<div class=\"channel-cta-img\"><img decoding=\"async\" class=\"js-lazy\" src=\"https:\/\/media.thenextweb.com\/hardfork-2018\/uploads\/visuals\/tnw-newsletter.png\"\/><\/div>\n<p><img decoding=\"async\" src=\"https:\/\/media.thenextweb.com\/hardfork-2018\/uploads\/visuals\/tnw-newsletter.png\"\/><\/p>\n<div class=\"channel-cta-input\">\n<p class=\"channel-cta-title\">The \ud83d\udc9c of EU tech<\/p>\n<p class=\"channel-cta-tagline\">The latest rumblings from the EU tech scene, a story from our wise ol&#8217; founder Boris, and some questionable AI art. It&#8217;s free, every week, in your inbox. Sign up now!<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>Possession of an applicant\u2019s globally unique identifier, or GUID, counted as sufficient proof to issue or restore an access token for that applicant.<\/p>\n<p>\u201cIn effect, the GUID became a bearer secret,\u201d Sygnia wrote in <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.sygnia.co\/blog\/ai-generated-code-security-risks\/\" target=\"_blank\" rel=\"nofollow noopener\">its research<\/a>.<\/p>\n<p>A GUID identifies a record. It does not prove that whoever holds it controls the session, the device, the identity or the verified contact channel attached to it.<\/p>\n<p>Anyone with another applicant\u2019s GUID could reach names, contact details, application status, financial details, identity verification data, payment information, Social Security numbers and co-applicant records.<\/p>\n<p>Co-applicants deserve a pause. Those are people whose data sat in the system because somebody else named them.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"The_controls_were_all_there\"><\/span>The controls were all there<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Here is what makes the finding unusual, and it is not the story most AI coding failures tell.<\/p>\n<p>The implementation did not lack security. Sygnia describes a plan covering temporary tokens, expiration, rate limiting, audit logging, session restoration and suspicious-activity detection.<\/p>\n<p>Every one of those is a real control. None of them answers the question the system actually needed to answer.<\/p>\n<p>\u201cWhat must be proven before the backend issues or restores an applicant access token?\u201d the researchers ask.<\/p>\n<p>The vulnerability existed before issuance, at the moment the system decided whether the requester deserved a token at all.<\/p>\n<p>\u201cThe issue was not that the system lacked security controls,\u201d Sygnia wrote. \u201cThe issue was that the controls were wrapped around the wrong trust decision.\u201d<\/p>\n<p>A short-lived token still causes damage when it reaches the wrong person. Audit logs help an investigation afterwards and prevent nothing.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Why_the_scanners_miss_this\"><\/span>Why the scanners miss this<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Static application security testing tools hunt for insecure coding patterns and unsafe data flows. This was neither.<\/p>\n<p>The flaw was architectural. It lived inside an assumption about trust, written in code that followed familiar framework conventions and passed basic checks.<\/p>\n<p>\u201cWorking code is not the same as secure code,\u201d said Zach Mead, the Sygnia penetration tester who ran the assessment.<\/p>\n<p>\u201cAI-generated code may compile, follow familiar conventions, and pass basic checks, while still making flawed assumptions about trust boundaries, authorization, state, ownership, or third-party integrations,\u201d he said.<\/p>\n<p>His instruction to security teams is blunt. Treat AI-generated output as untrusted until validated.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"An_LLM_found_what_an_LLM_built\"><\/span>An LLM found what an LLM built<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Sygnia did not catch this by hand. It ran a language model across portions of the client codebase, looking for trust-boundary problems and business-logic flaws.<\/p>\n<p>The model surfaced the applicant-token issue directly.<\/p>\n<p>Sygnia\u2019s summary of that is the sharpest line in the research. A vibe-coded security architecture flaw was identified through vibe-coded code review.<\/p>\n<p>It cuts both ways, and the firm says so. If a defender can ask a model where the trust boundaries are missing, so can anyone holding leaked source code or stolen implementation notes.<\/p>\n<p>Cisco has been pointing open-weight models at bug hunting for the same reason. One capability, two uses.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"The_tempo_problem\"><\/span>The tempo problem<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>This research sits beside a second Sygnia case, and the pairing carries the argument.<\/p>\n<p>In a cloud intrusion the firm investigated, the first signal was not an exploit. It was the pace.<\/p>\n<p>Credential discovery, cloud enumeration, source-code review, CI\/CD probing, database access and operational disruption all ran at once. It resembled several operators rather than one.<\/p>\n<p>It was one person, working with agents.<\/p>\n<p>Put the cases together and the shape is clear. AI is accelerating how code gets written, how flaws get found, and how fast a weakness becomes an attack path. We have already tracked four separate attacks sharing a single underlying flaw.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"What_Sygnia_tells_clients_to_do\"><\/span>What Sygnia tells clients to do<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Not to ban the tools. Bans push usage into personal accounts, where nobody can see it.<\/p>\n<p>The firm suggests marking pull requests that AI generated or substantially modified, naming the tool, and flagging work that touches authentication, payments, data exports or regulated client information.<\/p>\n<p>The most concrete advice concerns prompts. Asking for \u201ctemporary access tokens for applicants\u201d is an incomplete instruction.<\/p>\n<p>A safer prompt states that applicant identifiers must not be treated as secrets, that token issuance requires independent proof of applicant control, and that negative tests must prove one applicant cannot obtain access for another.<\/p>\n<p>The security requirement has to sit in the prompt, because the model will not infer an institution\u2019s risk model on its own.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"One_caveat_worth_stating\"><\/span>One caveat worth stating<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>This is a vendor report about an unnamed client, published alongside a new commercial service.<\/p>\n<p>Sygnia <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.businesswire.com\/news\/home\/20260728834521\/en\/Sygnia-Penetration-Test-Reveals-Critical-vibe-coded-Vulnerabilities-Within-Claude-Based-Application\" target=\"_blank\" rel=\"nofollow noopener\">launched AI Cybersecurity Services<\/a> the same day, covering posture assessment, governance and AI application penetration testing. Nobody can independently verify the findings, and no other firm has reported this case.<\/p>\n<p>The mechanism it describes is checkable, though, and it echoes our earlier coverage of vibe-coding security failures, sandbox escapes in coding agents and prompt injection in a Claude Code GitHub Action.<\/p>\n<p>What separates this one is where the flaw sat. Those were vulnerabilities in the tooling. This was AI-generated code carrying the flaw into production, at a regulated business, around data customers are required to hand over.<\/p>\n<\/p><\/div>\n<blockquote><p><strong><span style=\"color: #ff6600;\">If you liked the article, do not forget to share it with your friends. Follow us on\u00a0<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/news.google.com\/publications\/CAAqBwgKMN63nwsw68G3Aw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Google News<\/a><\/span>\u00a0too, click on the star and choose us from your favorites.<\/span><\/strong><\/p><\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\"><strong>If you want to read more like this article, you can visit our <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/buradabiliyorum.com\/en\/category\/technology\/\" target=\"_blank\" >Technology category.<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<p><span style=\"color: black;\"><a style=\"color: #ff9900;\" href=\"https:\/\/thenextweb.com\/news\/ai-generated-code-security-flaw-sygnia-claude-onboarding\" target=\"_blank\" >Source<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A penetration test at a financial services firm managing billions of dollars in client assets has found a critical flaw in AI-generated code. The interesting part is what the code got right. Sygnia, the incident response firm, assessed a customer onboarding application built substantially with Claude. It handled government-issued identification, identity verification data, payment details&#8230;<\/p>\n","protected":false},"author":1,"featured_media":741527,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/media.thenextweb.com\/2026\/07\/Sygnia-Penetration-Test.avif","fifu_image_alt":"","footnotes":""},"categories":[18],"tags":[],"class_list":["post-741526","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/741526","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/comments?post=741526"}],"version-history":[{"count":0,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/741526\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media\/741527"}],"wp:attachment":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media?parent=741526"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/categories?post=741526"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/tags?post=741526"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}