<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">
	<channel>
		<title>AI &amp; Data Resources | Infinum</title>
		<atom:link href="https://infinum.com/blog/category/ai-data/feed/" rel="self" type="application/rss+xml" />
		<link>https://infinum.com/blog/category/ai-data/</link>
		<description>Building digital products</description>
		<lastBuildDate>Mon, 04 May 2026 14:05:18 +0000</lastBuildDate>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>

					<item>
				<image>
					<url>19278787https://infinum.com/uploads/2026/04/img-anthropic-mythos-breach.webp</url>
				</image>
				<title>The Most Dangerous AI Tool Got Breached. What is an Adequate Disclosure Strategy?</title>
				<link>https://infinum.com/blog/anthropic-mythos-breach/</link>
				<pubDate>Fri, 24 Apr 2026 10:53:21 +0000</pubDate>
				<dc:creator>Blanka Bogdanović</dc:creator>
				<guid isPermaLink="false">https://infinum.com/?p=19278787</guid>
				<description>
					<![CDATA[<p>Anthropic's handling of the Mythos breach is a useful case study of where disclosure practices for security breaches still need to catch up.</p>
<p>The post <a href="https://infinum.com/blog/anthropic-mythos-breach/">The Most Dangerous AI Tool Got Breached. What is an Adequate Disclosure Strategy?</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[

<div
	class="wrapper"
	data-id="es-131"
	 data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			<div class="block-blog-content js-block-blog-content">
	
<div class="block-blog-content-sidebar" data-id="es-92">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-95"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-93">
	<p	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-94'
	>
	<strong>When an AI model capable of finding zero-day vulnerabilities at machine speed gets accessed without authorization, the incident response has to match the threat profile. Anthropic&#8217;s handling of the Mythos breach is a useful case study of where disclosure practices for security breaches still need to catch up.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-98"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-96">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-97'
	>
	Anthropic built Claude Mythos Preview as something it explicitly said the world wasn&#8217;t ready for.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-101"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-99">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-100'
	>
	The model finds zero-day vulnerabilities at machine speed, demonstrated the ability to escape its own sandbox, and in at least one test, posted details of its own exploit to public websites without being asked.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-104"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-102">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-103'
	>
	We’ve already covered how Anthropic&#8217;s response was to keep it locked behind <a href="https://infinum.com/blog/anthropic-project-glasswing/">Project Glasswing</a> – a tightly controlled initiative limited to a handful of vetted partners: AWS, Microsoft, Cisco, major banks, and critical infrastructure operators.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-107"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-105">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-106'
	>
	But exactly that is what makes what happened instructive.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-110"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-108">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-109'
	>
	Reports emerged this week that an unauthorized group accessed Mythos Preview through a third-party vendor environment connected to the rollout.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-113"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-111">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-112'
	>
	The group – part of a private Discord community that tracks unreleased AI models gained access on the same day Anthropic announced the model.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-115"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-114'
	>
	<strong>They didn&#8217;t break into Anthropic directly. They pieced together naming conventions exposed in a prior breach at an AI contractor, guessed the model&#8217;s URL, and used credentials from a third-party vendor that were still active. Three low-sophistication steps that together were enough.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-118"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-116">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-117'
	>
	This mechanism of access is worth sitting with.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-121"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-119">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-120'
	>
	<a href="https://infinum.com/blog/software-supply-chain-security/">Supply chain security</a> is no longer a background concern for procurement teams. It is a front-line risk for anyone deploying AI in environments that touch source code, internal systems, or critical infrastructure.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-123"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-122'
	>
	<strong>The question to ask is not just whether your AI provider is secure. It is whether every vendor, contractor, and subprocessor in the deployment chain is held to the same standard – because attackers will find the weakest link, and in an AI deployment, the weakest link may not be the model itself.</strong><br></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-129"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<a	class="card-simple js-card-simple card-simple--is-ad block-card__card-simple card-simple--has-link js-card-simple-link card-simple__content-align--left"
	data-id="es-124"
	 href='https://infinum.com/cybersecurity/#form'>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
					</div>

		<p	class='typography typography--size-24-text js-typography card-simple__paragraph'
	data-id='es-125'
	 id='es-124-paragraph'>
	Want to learn more about supply chain security? Talk to our certified experts who can help you protect your organization from attacks and regulatory consequences.</p><button	class="btn btn--color-infinum btn--size-small btn--width-default btn__icon-position--right card-simple__btn js-block-card-btn js-card-simple-link"
	data-id="es-126"
	 tabindex='-1'>
		<div class="btn__inner">
					<div	class='typography typography--size-none js-typography btn__label'
	data-id='es-127'
	>
	<strong><strong>Contact us</strong></strong></div>		
		<i
	class="icon btn__icon icon--size-16 icon--scale-100"
	 aria-hidden='true' data-name='arrow-right-16' data-id='es-128'>
	<svg fill='none' height='16' viewBox='0 0 17 16' width='17' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><g stroke='currentColor' stroke-width='2'><path d='m.5 7.99999 14 .00001'/><path d='m9.23352 2.7251 5.97848 5.97852'/><path d='m9.23352 13.2744 5.97848-5.9785'/></g></svg></i>	</div>
	</button>	</div>
</a>	</div>
</div>
</div>		</div>
	</div>

<div
	class="wrapper"
	data-id="es-215"
	 data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			<div class="block-blog-content js-block-blog-content">
	
<div class="block-blog-content-sidebar" data-id="es-132">
	

</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-135"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-133">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-134'
	>
	<strong>The disclosure question</strong></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-138"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-136">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-137'
	>
	Anthropic <em>has</em> confirmed the reports and said its investigation is ongoing. It has found no evidence of impact on its core systems, and activity appears limited to the vendor environment. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-141"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-139">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-140'
	>
	But the scope, duration, and what was done with the model <em>the world wasn&#8217;t ready for</em> during that access remain unconfirmed.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-143"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-142'
	>
	The disclosure question is where the situation gets more complex – and where there are useful lessons for any organisation deploying advanced AI.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-146"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-144">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-145'
	>
	Anthropic is a private company.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-149"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-147">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-148'
	>
	The SEC&#8217;s four-business-day disclosure rule for material cybersecurity incidents applies to public companies – Anthropic doesn&#8217;t qualify. CIRCIA&#8217;s 72-hour critical infrastructure reporting framework is still being phased in and may not apply here.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-152"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-150">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-151'
	>
	The EU AI Act does apply to Anthropic – Claude is available in the EU, and the Act has extraterritorial reach – and for a model with Mythos&#8217;s capabilities, incident reporting obligations to the EU AI Office are likely already active. But the Commission&#8217;s enforcement powers over GPAI providers don&#8217;t arrive until August 2026.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-154"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-153'
	>
	<strong>All in all, from a strict legal standpoint, Anthropic is operating in a grey zone where disclosure is largely voluntary. But the regulatory question is, in some ways, the wrong one. The more useful question is: what does good practice look like, and what can other organisations learn from this?</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-157"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-155">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-156'
	>
	<strong>What best practice actually requires</strong></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-160"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-158">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-159'
	>
	Every major cybersecurity framework – NIST, ISO 27001, SANS – is unambiguous on this point: notify early, disclose what you know, and update as the picture becomes clearer.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-162"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-161'
	>
	<strong>The reasoning is practical. Affected parties cannot protect themselves from information they don&#8217;t have. The standard is not to wait for a complete picture before saying anything. The standard is to say something immediately and complete the picture as you go.&nbsp;</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-165"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-163">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-164'
	>
	Waiting for certainty before notifying is how contained incidents become larger ones.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-167"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-166'
	>
	<strong>The specific challenge here – and it is a genuine one – is that Anthropic had publicly framed Mythos as a tool requiring exceptional access controls because of its offensive potential. That framing raises the stakes for disclosure in both directions.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-170"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-168">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-169'
	>
	On one hand, it makes the case for fast, proactive communication stronger: if partners have been told they are working with something uniquely sensitive, they need to know quickly when something goes wrong.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-173"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-171">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-172'
	>
	On the other hand, it makes the cost of a premature or inaccurate disclosure higher – a false alarm about a tool of this profile carries its own reputational and operational risk.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-176"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-174">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-175'
	>
	That tension is real, and it is not unique to Anthropic. Any organisation deploying advanced AI in sensitive environments will face it.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-179"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-177">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-178'
	>
	There&#8217;s also the partner angle.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-181"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-180'
	>
	<strong>The Project Glasswing members – major banks, critical infrastructure operators, technology companies – all have their own incident response programmes and regulatory obligations. They can&#8217;t act on information they don&#8217;t have.&nbsp;</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-184"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-182">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-183'
	>
	Every hour of delay is an hour those teams aren&#8217;t assessing whether their own environments were touched.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-187"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-185">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-186'
	>
	Anthropic has not publicly confirmed whether partners were notified directly ahead of or separately from its public statement – and given the two-week gap between access and disclosure, that is a question worth asking.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-190"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-188">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-189'
	>
	<strong>The broader lesson</strong></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-193"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-191">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-192'
	>
	The weakest link in the Mythos breach wasn&#8217;t Anthropic&#8217;s core infrastructure. It was a contractor&#8217;s credentials and a predictable URL. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-196"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-194">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-195'
	>
	That is a supply chain governance failure, and it is one that most organisations haven&#8217;t fully accounted for in their vendor contracts, partner agreements, or incident response plans.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-199"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-197">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-198'
	>
	This incident is a useful prompt to ask some basic questions: </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-202"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-200">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-201'
	>
	<li><strong>Do your vendor contracts require notification within a defined timeframe? </strong></li><li><strong>Do your partners know they will be told directly, not via a press report? </strong></li><li><strong>Is your incident response plan built around the sensitivity of the AI tools involved, or around more generic breach protocols?</strong></li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-205"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-203">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-204'
	>
	The regulatory framework for advanced AI incidents is still being built.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-207"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-206'
	>
	<strong>The EU AI Act&#8217;s enforcement powers are arriving in phases. CIRCIA is still being implemented. That grey zone will not last indefinitely – but in the meantime, the organisations that build trust are the ones that move faster than the rules require, not slower.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-210"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-208">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-209'
	>
	The gap between what the law currently demands and what good practice looks like is the space where reputations are made or lost. For companies working with the most capable AI tools available, that gap is worth closing proactively.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-213"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-211">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-212'
	>
	<em>Supply chain security is complex. Our certified experts can help you assess your exposure and stay ahead of the regulatory and operational risks that come with AI deployment. </em><a href="https://infinum.com/cybersecurity/#form" target="_blank" rel="noreferrer noopener"><em>Let’s chat.</em></a></p></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/anthropic-mythos-breach/">The Most Dangerous AI Tool Got Breached. What is an Adequate Disclosure Strategy?</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
					<item>
				<image>
					<url>19278577https://infinum.com/uploads/2026/04/img-hero-glasswing.webp</url>
				</image>
				<title>Project Glasswing Proves Frontier AI Can Break – and Fix – Software</title>
				<link>https://infinum.com/blog/anthropic-project-glasswing/</link>
				<pubDate>Fri, 17 Apr 2026 13:12:58 +0000</pubDate>
				<dc:creator>Blanka Bogdanović</dc:creator>
				<guid isPermaLink="false">https://infinum.com/?p=19278577</guid>
				<description>
					<![CDATA[<p>Anthropic's Project Glasswing signals a new era where frontier AI hunts vulnerabilities at scale. Here's what security teams need to understand – and do – right now. </p>
<p>The post <a href="https://infinum.com/blog/anthropic-project-glasswing/">Project Glasswing Proves Frontier AI Can Break – and Fix – Software</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-448"
	 data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			<div class="block-blog-content js-block-blog-content">
	
<div class="block-blog-content-sidebar" data-id="es-216">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-219"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-217">
	<p	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-218'
	>
	<strong>Anthropic just launched Project Glasswing – a major initiative to hunt vulnerabilities in critical open-source software using its most capable AI model. The implications for defenders and attackers alike are significant, and most organisations are not ready for either.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-222"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-220">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-221'
	>
	On 7 April 2026, Anthropic launched <a href="https://www.anthropic.com/glasswing" target="_blank" rel="noreferrer noopener">Project Glasswing</a> – a coordinated effort to give key technology providers early access to Claude Mythos Preview with one goal: find and fix long-hidden vulnerabilities in critical open-source software before attackers do.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-225"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-223">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-224'
	>
	It is the clearest signal yet that frontier AI has crossed a threshold. It is no longer just a productivity tool bolted onto existing security workflows. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-227"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-226'
	>
	It is becoming an active participant in the vulnerability lifecycle, capable of reasoning across vast codebases, identifying subtle logic flaws, and chaining issues into exploitable paths that would take a human researcher weeks to uncover.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-230"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-228">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-229'
	>
	That is worth taking seriously. Not because of the marketing, but because credible institutions are paying attention. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-233"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-231">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-232'
	>
	The AI Security Institute and the UK National Cyber Security Centre have both<a href="https://www.aisi.gov.uk/research/measuring-ai-agents-progress-on-multi-step-cyber-attack-scenarios"> documented measurable progress</a> in AI agents completing multi-step cyber attack scenarios. The NCSC has<a href="https://www.ncsc.gov.uk/blogs/why-cyber-defenders-need-to-be-ready-for-frontier-ai"> called on defenders to prepare</a> for a world in which frontier AI amplifies attacker capabilities at pace.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-236"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-234">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-235'
	>
	Glasswing is a concrete attempt to tilt that balance back toward defence. The early findings suggest it is working.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-239"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-237">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-238'
	>
	<strong>The two-sided ledger of AI-assisted security</strong></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-242"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-240">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-241'
	>
	For most of computing history, finding and <a href="https://infinum.com/third-party-cyber-risk-management/" id="https://infinum.com/third-party-cyber-risk-management/">exploiting software vulnerabilities</a> required rare expertise. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-245"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-243">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-244'
	>
	The people who could do it reliably numbered in the thousands globally. That constraint mattered – it was a practical limit on how fast attackers could operate and how broadly they could target. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-248"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-246">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-247'
	>
	Over the past year, that constraint has eroded sharply.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-251"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-249">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-250'
	>
	AI models have become increasingly effective at reading and reasoning about code, showing a particular ability to spot vulnerabilities and work out how to exploit them. The cost, effort, and level of expertise required have all dropped dramatically.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-253"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-252'
	>
	<strong>Here is the uncomfortable truth: the same capabilities that make a frontier model useful for vulnerability discovery make it useful for exploitation.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-256"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-254">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-255'
	>
	Claude Mythos Preview, Anthropic&#8217;s unreleased frontier model behind Glasswing, has reached a level of coding capability where it can <strong>surpass all but the most skilled humans</strong> at finding and exploiting software vulnerabilities. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-259"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-257">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-258'
	>
	That is not a marketing claim – it is the assessment Anthropic has published alongside the initiative. The AISI&#8217;s<a href="https://www.aisi.gov.uk/blog/our-evaluation-of-claude-mythos-previews-cyber-capabilities" target="_blank" rel="noreferrer noopener"> evaluation of Claude Mythos Preview&#8217;s cyber capabilities</a> tracks the same capability curve and reaches similar conclusions.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-262"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-260">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-261'
	>
	And it is not only expert hands that can wield it. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-264"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-263'
	>
	Anthropic&#8217;s own Red Team blog reports that engineers with no formal security training asked Mythos Preview to find remote code execution vulnerabilities overnight, and woke up the following morning to a complete, working exploit.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-267"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-265">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-266'
	>
	An AI that can read a codebase, reason about execution paths, and identify edge cases in authentication logic can do that work for a defender running a bug bounty programme or for an attacker building an exploit chain. <strong>The model does not care which side of the firewall it is on. </strong>And given the rate of AI progress, these capabilities will not remain confined to actors committed to deploying them safely.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-270"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-268">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-269'
	>
	The question for security teams is not whether to engage with this shift. It is – how fast.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-273"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-271">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-272'
	>
	<strong>What Glasswing tells us about where this is heading</strong></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-276"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-274">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-275'
	>
	Anthropic&#8217;s approach with Glasswing is instructive beyond the specific initiative. A few things stand out.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-279"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-277">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-278'
	>
	<strong>The focus on open-source infrastructure is deliberate</strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-282"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-280">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-281'
	>
	Open-source software underpins almost every critical system in operation today – cloud platforms, financial infrastructure, healthcare systems, industrial controls. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-285"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-283">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-284'
	>
	Vulnerabilities in widely used libraries do not stay contained. When one surfaces, the blast radius is enormous and the window between disclosure and exploitation has compressed to hours in many cases. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-288"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-286">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-287'
	>
	The <a href="https://infinum.com/blog/axios-npm-supply-chain-attack/" target="_blank" rel="noreferrer noopener">Axios npm supply chain attack in March 2026</a> – where two malicious versions of one of JavaScript&#8217;s most-used libraries were quietly published – is a recent example of exactly how fast that window closes.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-291"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-289">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-290'
	>
	<strong>The results are concrete </strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-294"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-292">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-293'
	>
	Mythos Preview has already found <strong>thousands of zero-day vulnerabilities</strong> –  flaws previously unknown even to the software&#8217;s own developers – including some in <strong>every major operating system and web browser</strong>. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-297"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-295">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-296'
	>
	Some of the specific findings illustrate just how significant the capability leap is:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-300"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-298">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-299'
	>
	<li><strong>A 27-year-old vulnerability in OpenBSD</strong> – one of the most security-hardened operating systems in the world, widely used to run firewalls and critical infrastructure – that allowed an attacker to remotely crash any machine running the OS simply by connecting to it.</li><li><strong>A 16-year-old vulnerability in FFmpeg</strong>, the video encoding library used by an enormous range of software, in a line of code that automated testing tools had hit five million times without catching the problem.</li><li><strong>A chain of vulnerabilities in the Linux kernel</strong> – the software running most of the world&#8217;s servers – that the model found and linked autonomously to escalate from ordinary user access to full control of the machine.</li><li>A web browser exploit that <strong>chained together four separate vulnerabilities,</strong> writing a complex attack that escaped both the browser&#8217;s renderer sandbox and the operating system sandbox beneath it.</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-303"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-301">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-302'
	>
	The gap between Mythos Preview and the previous generation of models is also stark. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-306"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-304">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-305'
	>
	When tested against known vulnerabilities in Mozilla&#8217;s Firefox JavaScript engine, the previous best model – Claude Opus 4.6 – turned those vulnerabilities into working exploits <strong>twice</strong> out of several hundred attempts. <strong>Mythos Preview did it 181 times.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-309"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-307">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-308'
	>
	These are not theoretical weaknesses. They are exploitable flaws that survived decades of human review and millions of automated tests. The model found them.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-312"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-310">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-311'
	>
	<strong>The initiative is coordinated by design </strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-315"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-313">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-314'
	>
	Early access, structured disclosure, defined scope – Glasswing is built to funnel findings into responsible remediation rather than onto a paste site.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-317"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<div	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-316'
	>
	<strong>Anthropic&#8217;s position is that the same capabilities that make AI dangerous in the wrong hands make it invaluable for finding and fixing flaws in critical software, and for producing new software with fewer security bugs from the start.&nbsp;</strong></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-320"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-318">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-319'
	>
	That framing is worth taking at face value, because the alternative – waiting for these capabilities to proliferate without a coordinated defensive response – is considerably worse.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-323"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-321">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-322'
	>
	For organisations watching from the outside, the implication is direct: if a frontier model can find vulnerabilities in your dependencies that survived decades of human review and millions of automated tests, you cannot rely on existing scanning and review processes to give you confidence that your attack surface is clean.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-326"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-324">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-325'
	>
	<strong>The attacker&#8217;s advantage – and how to close it</strong></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-329"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-327">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-328'
	>
	Defenders have always operated at a structural disadvantage. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-331"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-330'
	>
	An attacker needs to find one way in. A defender needs to close every path. AI widens that gap if defenders do not move.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-334"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-332">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-333'
	>
	The realistic near-term threat is not yet a fully autonomous AI attacker operating without human direction. But it is human attackers using AI to operate faster, at a greater scale, and with less specialised knowledge than was previously required. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-337"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-335">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-336'
	>
	A moderately skilled attacker with access to a capable model can accelerate reconnaissance, generate targeted phishing content, identify patch-gap windows, and synthesise public vulnerability research into working attack chains. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-342"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="blockquote block-blockquote__blockquote" data-id="es-338">
	
	<div class="blockquote__content">
		<i
	class="icon blockquote__icon icon--size-16 icon--scale-100"
	 aria-hidden='true' data-name='blockquote-24' data-id='es-339'>
	<svg fill='none' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path clip-rule='evenodd' d='m12 24c6.6274 0 12-5.3726 12-12 0-2.79685-.9568-5.37021-2.561-7.41062-.581.22951-1.0832.60583-1.5069 1.12898-.5132.60844-.7698 1.41969-.7698 2.43375v.07605h2.5789v5.59004h-5.6197v-5.01962c0-1.11547.154-2.06616.4619-2.85205.3336-.81125.757-1.48307 1.2702-2.01545.528-.52161 1.1175-.92155 1.7687-1.1998-2.0728-1.70651-4.7279-2.73128-7.6223-2.73128-6.62742 0-12 5.37258-12 12 0 6.6274 5.37258 12 12 12zm-3.53811-18.05347c-.30793.78589-.46189 1.73658-.46189 2.85205v5.01962h5.6197v-5.59004h-2.5789v-.07605c0-1.01406.2566-1.82531.7698-2.43375.5389-.63379 1.1804-1.05209 1.9245-1.2549v-2.28164c-.7441.07605-1.4626.25351-2.1555.53238-.6928.27887-1.3086.68449-1.84752 1.21688-.51321.53238-.9366 1.2042-1.27019 2.01545z' fill='currentColor' fill-rule='evenodd'/></svg></i><p	class='typography typography--size-36-text js-typography blockquote__quote'
	data-id='es-340'
	>
	Attacks that previously required specialist knowledge are now within reach of far more people.</p>
		<div class="blockquote__caption-wrap">
			<div	class='typography typography--size-12-text-roman js-typography blockquote__caption'
	data-id='es-341'
	>
	SEAN MCCARTHY, HEAD OF CYBERSECURITY TESTING, AMR CYBERSECURITY &#8211; PART OF INFINUM</div>		</div>
	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-345"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-343">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-344'
	>
	We explored a version of this problem in our <a href="https://infinum.com/blog/security-gaps-in-vibe-coded-applications/" target="_blank" rel="noreferrer noopener">analysis of security gaps in vibe-coded applications</a>. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-348"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-346">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-347'
	>
	AI-generated code introduces vulnerabilities not because the model is careless but because it optimises for functional correctness, not security depth. An attacker using the same models to probe those applications has a natural advantage over a developer who did not think adversarially when prompting.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-351"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-349">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-350'
	>
	<strong>The answer is not to avoid AI in development. </strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-354"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-352">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-353'
	>
	It is to apply <a href="https://infinum.com/blog/ssdlc-application-security/" target="_blank" rel="noreferrer noopener">deliberate security discipline at every stage</a> – including to the AI-generated output itself. That means combining automated scanning with <a href="https://infinum.com/cybersecurity/penetration-testing/" target="_blank" rel="noreferrer noopener">human-led testing</a> rather than assuming one replaces the other.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-357"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-355">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-356'
	>
	<strong>What organisations should do before the surge hits</strong></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-360"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-358">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-359'
	>
	Glasswing is likely to accelerate vulnerability disclosures across the open-source ecosystem. Organisations that are unprepared for a sudden increase in security advisories affecting their dependencies will struggle to respond at pace.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-363"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-361">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-362'
	>
	<strong>Martin Walsham, Director of Cybersecurity at AMR Cybersecurity</strong> <strong>– Part of Infinum</strong>, has been tracking this shift closely: &#8220;Frontier AI models are progressing at pace, and the same technologies that defenders can use to increase overall security posture can equally be used by attackers to amplify their capabilities. This heightens the need for organisations to implement strong security baselines, defence in depth, and robust secure code, and to patch at pace to make them less susceptible to attacks.”</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-368"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="blockquote block-blockquote__blockquote" data-id="es-364">
	
	<div class="blockquote__content">
		<i
	class="icon blockquote__icon icon--size-16 icon--scale-100"
	 aria-hidden='true' data-name='blockquote-24' data-id='es-365'>
	<svg fill='none' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path clip-rule='evenodd' d='m12 24c6.6274 0 12-5.3726 12-12 0-2.79685-.9568-5.37021-2.561-7.41062-.581.22951-1.0832.60583-1.5069 1.12898-.5132.60844-.7698 1.41969-.7698 2.43375v.07605h2.5789v5.59004h-5.6197v-5.01962c0-1.11547.154-2.06616.4619-2.85205.3336-.81125.757-1.48307 1.2702-2.01545.528-.52161 1.1175-.92155 1.7687-1.1998-2.0728-1.70651-4.7279-2.73128-7.6223-2.73128-6.62742 0-12 5.37258-12 12 0 6.6274 5.37258 12 12 12zm-3.53811-18.05347c-.30793.78589-.46189 1.73658-.46189 2.85205v5.01962h5.6197v-5.59004h-2.5789v-.07605c0-1.01406.2566-1.82531.7698-2.43375.5389-.63379 1.1804-1.05209 1.9245-1.2549v-2.28164c-.7441.07605-1.4626.25351-2.1555.53238-.6928.27887-1.3086.68449-1.84752 1.21688-.51321.53238-.9366 1.2042-1.27019 2.01545z' fill='currentColor' fill-rule='evenodd'/></svg></i><p	class='typography typography--size-36-text js-typography blockquote__quote'
	data-id='es-366'
	>
	<strong>Ahead of an anticipated surge in vulnerability reporting, organisations should be assessing and investing in advanced tooling and enhanced services to continually protect, detect, and respond to cyber threats – because the pace at which attackers operate will only increase.</strong></p>
		<div class="blockquote__caption-wrap">
			<div	class='typography typography--size-12-text-roman js-typography blockquote__caption'
	data-id='es-367'
	>
	MARTIN WALSHAM, DIRECTOR OF CYBERSECURITY, AMR CYBERSECURITY &#8211; PART OF INFINUM. </div>		</div>
	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-371"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-369">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-370'
	>
	The precautionary steps below are not dramatic departures from good security hygiene. They are the foundations that make rapid response possible when it is needed.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-374"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-372">
	<h3	class='typography typography--size-24-text js-typography block-typography__typography'
	data-id='es-373'
	>
	<strong>Review and test your incident response plan now.&nbsp;</strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-377"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-375">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-376'
	>
	Not the version that was written two years ago and has not been touched since. Run a tabletop exercise against a realistic scenario – a critical CVE in a dependency you cannot patch immediately, combined with active exploitation attempts.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-380"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-378">
	<h3	class='typography typography--size-24-text js-typography block-typography__typography'
	data-id='es-379'
	>
	<strong>Prepare for increased advisory volume.&nbsp;</strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-383"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-381">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-382'
	>
	If AI-assisted vulnerability research delivers on its promise, the rate of disclosures in widely used open-source libraries will increase. Security and engineering teams need the capacity to triage and prioritise that volume without dropping everything else. Build that capacity before the surge, not during it.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-386"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-384">
	<h3	class='typography typography--size-24-text js-typography block-typography__typography'
	data-id='es-385'
	>
	<strong>Get your asset management list accurate.&nbsp;</strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-389"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-387">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-388'
	>
	You cannot patch what you do not know you are running. This is the most consistent gap we see in organisations that have otherwise mature security programmes. A dependency buried four levels deep in your supply chain is still your problem when a CVE drops against it. Our <a href="https://infinum.com/blog/software-supply-chain-security/" id="https://infinum.com/blog/software-supply-chain-security/" target="_blank" rel="noreferrer noopener">step-by-step software supply chain security framework</a> covers how to map and manage that exposure systematically.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-392"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-390">
	<h3	class='typography typography--size-24-text js-typography block-typography__typography'
	data-id='es-391'
	>
	<strong>Monitor updates and advisories actively.&nbsp;</strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-395"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-393">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-394'
	>
	Subscribe to feeds for the libraries and platforms you depend on. Automated dependency scanning tools have improved significantly – if you are not running one, start.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-398"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-396">
	<h3	class='typography typography--size-24-text js-typography block-typography__typography'
	data-id='es-397'
	>
	<strong>Review third-party agreements with critical suppliers.&nbsp;</strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-401"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-399">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-400'
	>
	If a vulnerability surfaces in a service you depend on and your contract does not specify patching SLAs, you have no lever to apply. Review those agreements and open conversations with suppliers about their response posture before you need to have that conversation under pressure.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-404"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-402">
	<h3	class='typography typography--size-24-text js-typography block-typography__typography'
	data-id='es-403'
	>
	<strong>Test your external perimeter.&nbsp;</strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-407"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-405">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-406'
	>
	If your last penetration test was more than twelve months ago, you do not have an accurate picture of your exposure. This is especially true for organisations that have made infrastructure changes, onboarded new services, or shipped significant product updates since the last test.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-410"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-408">
	<h3	class='typography typography--size-24-text js-typography block-typography__typography'
	data-id='es-409'
	>
	<strong>Have a plan for enhanced monitoring at short notice.&nbsp;</strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-413"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-411">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-412'
	>
	Not all threats give you advance warning. Know what elevated monitoring looks like for your environment and how quickly you can activate it.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-416"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-414">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-415'
	>
	<strong>Security baselines matter more, not less</strong></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-419"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-417">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-418'
	>
	There is a temptation to frame AI-powered threats as something categorically new that requires a categorically new response.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-422"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-420">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-421'
	>
	In some respects, that is true – the <strong>speed and scale</strong> at which AI-assisted attacks can operate does change the calculus. But the vulnerabilities being exploited are mostly the same ones that have always existed: missing input validation, broken access control, insecure defaults, and unpatched dependencies. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-425"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-423">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-424'
	>
	Our <a href="https://infinum.com/blog/cybersecurity-trends-2026/" target="_blank" rel="noreferrer noopener">cybersecurity trends outlook for 2026</a> covers how AI-driven attacks, stricter compliance requirements, and supply chain exposure are converging into a single pressure point for security teams.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-428"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-426">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-427'
	>
	The <a href="https://infinum.com/blog/eu-cybersecurity-legislation-nis2-dora/" target="_blank" rel="noreferrer noopener">NIS2 and DORA frameworks</a> that came into force across the EU reflect this same reality. The technical requirements they mandate – multi-factor authentication, incident reporting, supply chain risk management, regular penetration testing – are not responses to AI-powered threats specifically. They are the baseline hygiene that makes an organisation resilient regardless of what the attacker is using. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-431"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-429">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-430'
	>
	If your organisation is not meeting that baseline, the sophistication of the threat is almost beside the point.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-434"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-432">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-433'
	>
	<strong>Strong foundations beat reactive firefighting</strong></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-437"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-435">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-436'
	>
	Project Glasswing is a meaningful development in the responsible use of frontier AI for defence. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-440"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-438">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-439'
	>
	The AISI and NCSC assessments confirm what security practitioners have been observing in practice: <strong>capability is advancing faster than most organisations have adjusted for.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-443"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-441">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-442'
	>
	The right response is not to wait and see how the landscape settles. It is to invest in the defences that reduce exposure across the board – sound architecture, secure development practices, regular testing, and the operational readiness to respond when something goes wrong.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-446"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-444">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-445'
	>
	<em>Infinum&#8217;s <a href="https://infinum.com/cybersecurity/penetration-testing/" target="_blank" rel="noreferrer noopener">penetration testing</a> and <a href="https://infinum.com/cybersecurity/" target="_blank" rel="noreferrer noopener">cybersecurity services</a> are built around exactly that kind of proactive posture. If you want to understand your current exposure before the next wave of disclosures hits, talk to our security team.</em></p></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/anthropic-project-glasswing/">Project Glasswing Proves Frontier AI Can Break – and Fix – Software</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
					<item>
				<image>
					<url>19278544https://infinum.com/uploads/2026/04/img-hero-selfhosting-llm.webp</url>
				</image>
				<title>Self-Hosting AI Models: A Practical Guide to Building Your Own Stack</title>
				<link>https://infinum.com/blog/self-hosting-ai-models-a-practical-guide/</link>
				<pubDate>Thu, 16 Apr 2026 16:16:50 +0000</pubDate>
				<dc:creator>Vjekoslav Drakšić</dc:creator>
				<guid isPermaLink="false">https://infinum.com/?p=19278544</guid>
				<description>
					<![CDATA[<p>Infrastructure decisions, model selection tradeoffs, and performance optimization techniques we encountered while building a self-hosted multi-model inference stack. </p>
<p>The post <a href="https://infinum.com/blog/self-hosting-ai-models-a-practical-guide/">Self-Hosting AI Models: A Practical Guide to Building Your Own Stack</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-650"
	 data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			<div class="block-blog-content js-block-blog-content">
	
<div class="block-blog-content-sidebar" data-id="es-449">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-452"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-450">
	<p	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-451'
	>
	Many organizations now want full ownership of their <a href="https://infinum.com/artificial-intelligence/" id="https://infinum.com/artificial-intelligence/">AI infrastructure</a>. The motivation for self-hosting ranges from data ownership requirements and contractual obligations to maintaining the highest level of system security.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-455"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-453">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-454'
	>
	This post covers the infrastructure decisions, model selection tradeoffs, and performance optimization techniques we encountered while building a self-hosted multi-model inference stack. <a href="https://infinum.com/blog/ai-generated-code-security-risks/" id="https://infinum.com/blog/ai-generated-code-security-risks/">Security architecture</a> and model licensing are out of scope here as both deserve their own deep dives. Still, everything about building the infrastructure and making it perform is fair game.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-458"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-456">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-457'
	>
	Here&#8217;s what our stack looked like:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-461"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-459">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-460'
	>
	<li>An open-source inference engine (<a href="https://github.com/vllm-project/production-stack">vLLM production stack</a>)</li><li>A multi open-weight model setup</li><li>Accelerated computing instances on AWS</li><li>A scalable, highly available EKS cluster</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-464"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-462">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-463'
	>
	vLLM as an inference engine</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-467"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-465">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-466'
	>
	There are several open-source inference engines to choose from, including <a href="https://github.com/InternLM/lmdeploy">LMDeploy</a>, <a href="https://github.com/sgl-project/sglang">SGLang</a>, and <a href="https://github.com/NVIDIA/TensorRT-LLM">TensorRT-LLM</a>.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-470"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-468">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-469'
	>
	We chose vLLM for its performance, <a href="https://docs.vllm.ai/en/latest/models/supported_models/">broad model support</a>, <a href="https://docs.vllm.ai/en/latest/">extensive documentation</a>, and built-in multi-model type routing. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-473"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-471">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-472'
	>
	Their production stack ships with an infrastructure diagram you can extend for your own setup, but the core components are:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-477"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--black block-bullet__bullet" data-id="es-474">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<p	class='typography typography--size-24-text js-typography bullet__heading'
	data-id='es-475'
	>
	<strong>Request router</strong></p><p	class='typography typography--size-18-text-roman js-typography bullet__paragraph'
	data-id='es-476'
	>
	An OpenAI-compatible API layer. It uses prefix-aware routing to direct repeat context to the same worker, reducing time to first token. In a multi-model setup, the router handles requests by endpoint, model name, and worker assignment.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-481"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--black block-bullet__bullet" data-id="es-478">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<p	class='typography typography--size-24-text js-typography bullet__heading'
	data-id='es-479'
	>
	<strong>Workers</strong></p><p	class='typography typography--size-18-text-roman js-typography bullet__paragraph'
	data-id='es-480'
	>
	vLLM instances running on GPU nodes. The stack handles tensor parallelism across multiple GPUs for large models out of the box.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-485"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--black block-bullet__bullet" data-id="es-482">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<p	class='typography typography--size-24-text js-typography bullet__heading'
	data-id='es-483'
	>
	<strong>KV cache storage</strong></p><p	class='typography typography--size-18-text-roman js-typography bullet__paragraph'
	data-id='es-484'
	>
	In a multi-worker setup, previously computed state is retrieved from <a href="https://docs.lmcache.ai/">LMCache</a>, which delivers significant performance gains, especially for models like <a href="https://blog.lmcache.ai/en/2025/08/05/lmcache-supports-gpt-oss-20b-120b-on-day-1/">GPT OSS</a>.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-489"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--black block-bullet__bullet" data-id="es-486">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<p	class='typography typography--size-24-text js-typography bullet__heading'
	data-id='es-487'
	>
	<strong>Observability stack</strong></p><p	class='typography typography--size-18-text-roman js-typography bullet__paragraph'
	data-id='es-488'
	>
	Prometheus and Grafana for monitoring.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-492"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-490">
	<h3	class='typography typography--size-30-text js-typography block-typography__typography'
	data-id='es-491'
	>
	Simplified end-to-end flow</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-495"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-493">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-494'
	>
	The request router analyzes the incoming prompt&#8217;s prefix and directs it to a worker that already holds that context in memory. The worker processes the request with optimized block-based memory management, pulling previously computed states from a per-node or cluster-wide cache, and generates the response.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-498"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-496">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-497'
	>
	Choosing the right hosting environment</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-501"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-499">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-500'
	>
	The AI hosting landscape is competitive. The vLLM production stack has <a href="https://github.com/vllm-project/production-stack/tree/main/deployment_on_cloud">cloud deployment support</a> for AWS, Azure, and GCP, and project velocity matters a lot at this stage.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-504"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-502">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-503'
	>
	This is why we chose AWS EKS. The cost savings from alternative providers did not justify the increased setup complexity.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-507"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-505">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-506'
	>
	Specialty cloud hosting providers are cheaper, but they often offer unmanaged environments. That means you handle all the heavy lifting yourself, like networking, orchestration, GPU scheduling, the lot.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-510"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-508">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-509'
	>
	On-premise considerations</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-513"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-511">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-512'
	>
	Buying hardware immediately is an operational risk. This is true even if you have predictable workloads.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-516"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-514">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-515'
	>
	<strong>We recommend a phased approach:</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-520"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--black block-bullet__bullet" data-id="es-517">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<h4	class='typography typography--size-24-text js-typography bullet__heading'
	data-id='es-518'
	>
	<strong>Phase 1: Model PoC</strong></h4><p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-519'
	>
	Optional if you already know the model you want. Use managed services like AWS Bedrock to find the sweet spot between model size and reasoning capability. The open-weight model catalogue is expanding fast and the setup is minimal.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-522"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<hr
	class="block-divider"
	data-id="es-521"
	aria-hidden="true" />	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-526"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--black block-bullet__bullet" data-id="es-523">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<h4	class='typography typography--size-24-text js-typography bullet__heading'
	data-id='es-524'
	>
	<strong>Phase 2: Cloud PoC</strong></h4><p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-525'
	>
	Use cloud-managed Kubernetes to prototype your multi-model infrastructure. Test different GPU offerings, benchmark your setup, and figure out your TPM and RPM requirements. Test your open-source model choices without locking into expensive hardware early.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-528"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<hr
	class="block-divider"
	data-id="es-527"
	aria-hidden="true" />	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-532"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--black block-bullet__bullet" data-id="es-529">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<h4	class='typography typography--size-24-text js-typography bullet__heading'
	data-id='es-530'
	>
	<strong>Phase 3: On-premise refinement</strong></h4><p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-531'
	>
	Once you understand your patterns and limits, modify your existing Kubernetes cluster for an on-premise deployment. This is significantly easier than starting here from scratch.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-535"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-533">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-534'
	>
	Choosing the right model</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-538"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-536">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-537'
	>
	To simplify the equation: the two factors that drive infrastructure cost are <strong>model size</strong> (parameter count) and <strong>model context</strong> (the active memory window containing your conversation and retrieved data).</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-541"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-539">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-540'
	>
	The LLM is your main challenge. Embedding and reranking models require comparatively little GPU power.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-544"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-542">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-543'
	>
	Here are three scenarios to illustrate the range. Note that these are rough on-demand estimates, and be sure to check current pricing and consider reserved or spot instances where applicable.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-547"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-545">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-546'
	>
	Small: chatbot with basic interactions</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-550"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-548">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-549'
	>
	Customer support, simple Q&amp;A. No complex reasoning or large context required.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-553"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-551">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-552'
	>
	<li><strong>Size:</strong> 7B or 8B parameters</li><li><strong>Context:</strong> 2k–20k tokens</li><li><strong>OSS models:</strong> Llama 3 (8B), Mistral (7B), Qwen (7B)</li><li><strong>Proprietary use case equivalents:</strong> GPT-4o-mini, Claude Haiku, Gemini Flash-Lite</li><li><strong>Infrastructure:</strong> A single G6e family instance</li><li><strong>Monthly cost:</strong> ~$400–$600</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-555"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<hr
	class="block-divider"
	data-id="es-554"
	aria-hidden="true" />	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-558"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-556">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-557'
	>
	Medium: reasoning over a knowledge base</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-561"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-559">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-560'
	>
	Internal knowledge bases where the model reads retrieved company documents, follows strict instructions, and needs to minimize hallucinations.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-564"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-562">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-563'
	>
	<li><strong>Size:</strong> 70B parameters</li><li><strong>Context:</strong> 20k–50k tokens</li><li><strong>OSS models:</strong> Llama 3 (70B), Mixtral (8x7B), Qwen (72B), GPT-OSS-20B</li><li><strong>Proprietary use case equivalents:</strong> Claude Sonnet, Gemini Flash</li><li><strong>Infrastructure:</strong> Multi-GPU setup</li><li><strong>Monthly cost:</strong> ~$3k–$8k</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-566"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<hr
	class="block-divider"
	data-id="es-565"
	aria-hidden="true" />	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-569"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-567">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-568'
	>
	Large: high accuracy, high reasoning, high context</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-572"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-570">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-571'
	>
	Complex code refactoring, massive document analysis, predictions, and advanced agents. Maximum accuracy and minimal hallucinations are non-negotiable.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-575"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-573">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-574'
	>
	<li><strong>Size:</strong> 100B+ parameters</li><li><strong>Context:</strong> 50k+ tokens</li><li><strong>OSS models:</strong> GPT-OSS-120B, DeepSeek-R1, Mistral Large 3</li><li><strong>Proprietary use case equivalents:</strong> GPT-5, Claude Opus, Gemini Pro</li><li><strong>Infrastructure:</strong> p5e.48xlarge instances (8×H200)</li><li><strong>Monthly cost:</strong> ~$30k+</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-578"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-576">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-577'
	>
	<strong>These are rough single-environment estimates.</strong> Multi-environment, highly available enterprise setups multiply these figures quickly.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-581"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-579">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-580'
	>
	Benchmarking your setup</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-584"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-582">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-583'
	>
	Although there are fast general benchmarking tools available, like <a href="https://github.com/AlexsJones/llmfit">LLMfit</a>, you should measure model performance in your own environment. This also reveals hardware traps that generic benchmarks won&#8217;t surface.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-587"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-585">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-586'
	>
	For example, adding more L40S GPUs may not increase performance. These GPUs communicate over the PCIe bus instead of NVLink, and the communication overhead can cancel out the compute gains.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-590"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-588">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-589'
	>
	vLLM has a native benchmarking option via the <a href="https://docs.vllm.ai/en/latest/cli/bench/serve/">bench serve</a> command. The key metrics to watch:</p></div>	</div>

<div
	class="wrapper"
	data-id="es-591"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			
<figure class="wp-block-table"><table><thead><tr><th>Metric</th><th>Meaning</th></tr></thead><tbody><tr><td><strong>Median TTFT</strong> (Time to First Token)</td><td>How long from prompt submission to the first generated token. The user&#8217;s perceived responsiveness.</td></tr><tr><td><strong>Median TPOT</strong> (Time Per Output Token)</td><td>How long each subsequent token takes to generate.</td></tr><tr><td><strong>Median ITL</strong> (Inter-Token Latency)</td><td>The gap between consecutive tokens. Smoothness of streaming output.</td></tr><tr><td><strong>Output token throughput</strong></td><td>Tokens generated per second across all concurrent users.</td></tr><tr><td><strong>Total token throughput</strong></td><td>Combined rate for both prompt processing and generation.</td></tr><tr><td><strong>Request throughput</strong></td><td>Complete requests resolved per second.</td></tr><tr><td><strong>Max request concurrency</strong></td><td>Peak number of simultaneous requests handled during the test.</td></tr></tbody></table></figure>
		</div>
	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-594"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-592">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-593'
	>
	Optimization techniques</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-597"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-595">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-596'
	>
	There is extensive documentation on optimization techniques. Here&#8217;s a summary of those that made the biggest difference for us.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-600"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-598">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-599'
	>
	<a href="https://docs.vllm.ai/en/latest/features/quantization/">Quantization</a></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-603"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-601">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-602'
	>
	Reduces weight precision (e.g., from 16-bit to 8-bit or 4-bit) to shrink the model&#8217;s memory footprint. This has a direct impact on what model you can fit on your available hardware.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-606"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-604">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-605'
	>
	<a href="https://docs.vllm.ai/en/latest/features/automatic_prefix_caching/#introduction">Automatic prefix caching</a></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-609"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-607">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-608'
	>
	Worker/Node level memory management. Caches the KV state of existing queries. If you&#8217;re querying the same long document multiple times, the document is processed once and subsequent queries pull from cache. The result is higher throughput and lower latency.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-612"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-610">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-611'
	>
	Distributed caching via <a href="https://lmcache.ai/">LMCache</a></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-615"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-613">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-614'
	>
	Automatic prefix caching is limited to a single worker&#8217;s GPU VRAM — extremely fast, but expensive. LMCache enables cluster-wide offloading to cheaper storage (CPU memory, disk, or Redis) at the cost of some latency. Use both in a tiered memory hierarchy for the best balance.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-618"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-616">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-617'
	>
	<a href="https://docs.vllm.ai/en/stable/serving/parallelism_scaling/">Tensor parallelism</a></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-621"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-619">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-620'
	>
	Workload distribution. Splits tensors across multiple GPUs. Effectively a requirement for larger models. Performance depends heavily on fast interconnects like NVLink.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-624"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-622">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-623'
	>
	<a href="https://docs.vllm.ai/en/latest/features/speculative_decoding/">Speculative decoding</a></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-627"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-625">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-626'
	>
	There are multiple methods. One approach pairs a large model with a tiny, fast model. The fast model guesses the next tokens, and the large model verifies them in a single pass. This multiplies token generation speed.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-630"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-628">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-629'
	>
	<a href="https://docs.vllm.ai/en/latest/features/disagg_prefill/">Disaggregated prefilling</a></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-633"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-631">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-632'
	>
	Separates the prefill and decode stages onto different GPUs or nodes. Since the two tasks have different computational profiles (compute-bound vs. memory-bandwidth-bound), you can scale each independently — either to improve responsiveness or to prevent long prompts from stalling active generation.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-636"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-634">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-635'
	>
	What&#8217;s ahead for self-hosting</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-639"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-637">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-638'
	>
	There will always be demand for on-premise self-hosted AI in systems that require maximum control over their data.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-642"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-640">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-641'
	>
	The barrier to entry is dropping. Inference engines are maturing, optimization techniques are compounding, and models are getting better with fewer parameters and lower VRAM requirements. The recent Gemma 4 release is a good example: judging by the benchmarks, it delivers strong performance for a modest hardware investment. Stay tuned for a deep dive on that one.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-645"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-643">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-644'
	>
	In conclusion, enterprise-grade self-hosting remains<strong> expensive, but the trajectory is clear: organizations will be able to do significantly more with <a href="https://ai.google.dev/gemma/docs/core">significantly less hardware</a>.</strong> </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-648"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-646">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-647'
	>
	The phased approach we outlined here is designed to let you start proving value now, without committing to infrastructure you don&#8217;t yet understand.</p></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/self-hosting-ai-models-a-practical-guide/">Self-Hosting AI Models: A Practical Guide to Building Your Own Stack</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
					<item>
				<image>
					<url>19277485https://infinum.com/uploads/2026/03/data-to-decisions-hero.webp</url>
				</image>
				<title>From Data to Decisions: How AI-Driven Knowledge Hubs Are Decoding Enterprise Complexity</title>
				<link>https://infinum.com/blog/ai-knowledge-hubs/</link>
				<pubDate>Wed, 08 Apr 2026 09:56:17 +0000</pubDate>
				<dc:creator>Joseph Eric Rosenthal</dc:creator>
				<guid isPermaLink="false">https://infinum.com/?p=19277485</guid>
				<description>
					<![CDATA[<p>Discover how we've helped clients across industries turn raw data into actionable insights with AI-powered knowledge hubs.</p>
<p>The post <a href="https://infinum.com/blog/ai-knowledge-hubs/">From Data to Decisions: How AI-Driven Knowledge Hubs Are Decoding Enterprise Complexity</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-724"
	 data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			<div class="block-blog-content js-block-blog-content">
	
<div class="block-blog-content-sidebar" data-id="es-651">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-654"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-652">
	<p	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-653'
	>
	An AI-driven Knowledge Hub is an intelligent system that acts as an organization&#8217;s &#8216;internal GPT&#8217;, turning raw,<strong> scattered data into actionable insights through a chat interface. We&#8217;ve delivered them across industries to solve real business problems for our clients. </strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-657"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-655">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-656'
	>
	The modern enterprise is built on vast amounts of data, yet turning that data into actionable insights remains one of the most persistent and costly <a href="https://infinum.com/blog/ai-strategy/" id="https://infinum.com/blog/ai-strategy/">challenges organizations face</a>. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-660"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-658">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-659'
	>
	At Infinum, we&#8217;ve worked with clients across industries to bridge this gap by developing AI-powered Knowledge Hubs: centralized, intelligent repositories that aggregate and analyze your organization&#8217;s data and surface new insights through a seamless chat interface. Think of them as an <a href="https://infinum.com/blog/model-context-protocols-mcp-ai-enabled-businesses/" id="https://infinum.com/blog/model-context-protocols-mcp-ai-enabled-businesses/">internal GPT</a> — one that knows your business, speaks your language, and has access to everything your teams need to make faster, more confident decisions.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-663"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-661">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-662'
	>
	From streamlining complex workflows for insurance firms to centralizing intelligence for global tech companies and premier fitness networks, these knowledge hubs are the connective tissue between big data and better decision-making. Here are a few examples of the work we’ve done to harness the power of data.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-666"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-664">
	<h2	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-665'
	>
	Helping insurance professionals cut through the noise of data</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-669"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-667">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-668'
	>
	Risk is at the heart of every decision insurance professionals make. Underwriters navigate enormous volumes of data, claims history, actuarial tables, regulatory changes, weather events, market trends, competitor pricing, and their ability to accurately assess and price that risk directly impacts the business. The problem is that this data is rarely in one place, and pulling it together manually is slow, error-prone, and expensive.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-672"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-670">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-671'
	>
	We built an <strong>insurance intelligence solution</strong> that combines <a href="https://infinum.com/artificial-intelligence/data-engineering/" id="https://infinum.com/artificial-intelligence/data-engineering/">data engineering</a>, risk modeling, and competitor and market data to support underwriting and risk assessment decisions. The system gathers claims data, actuarial tables, regulatory filings, and publicly available sources, and makes all of it accessible through a conversational chatbot. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-674"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-673'
	>
	An underwriter can ask: &#8220;Based on recent flooding events in Germany and current claims history in the region, should I adjust the premium for a commercial property policy renewal in Frankfurt, and if so, by how much?&#8221; and get a data-backed recommendation in seconds.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-677"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-675">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-676'
	>
	The star feature is source citation. Every recommendation comes with a reference to the underlying data used to generate it. This significantly reduces the <a href="https://infinum.com/blog/ai-chatbot-development-pain-points/" id="https://infinum.com/blog/ai-chatbot-development-pain-points/">risk of AI hallucination</a>, which is especially critical in heavily regulated sectors like insurance, where decisions are subject to strict auditing and compliance requirements.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-680"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-678">
	<h2	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-679'
	>
	Streamlining the flow of information for a global tech leader</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-683"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-681">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-682'
	>
	Decision-makers at global tech companies are bombarded with news from every direction, but most of it isn&#8217;t relevant to their business. The real challenge is isolating the specific tech, environmental, and geopolitical shifts that actually impact their operations. For our client, the manual effort required to monitor these risks was leading to delayed reactions and missed opportunities. So we built <strong>an</strong> <strong>internal knowledge hub</strong> that turns that flood of global content into focused, actionable intelligence, using<a href="https://infinum.com/blog/scaling-ai-with-databricks/" id="https://infinum.com/blog/scaling-ai-with-databricks/"> advanced data engineering and custom API integrations</a>.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-686"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-684">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-685'
	>
	Rather than handing leadership a pile of raw articles, the system distills complex global events into concise daily and weekly briefs, filtered by pre-defined criteria unique to the client&#8217;s industry. Every brief that lands is directly relevant to the company&#8217;s long-term strategic goals and risk management.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-689"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-687">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-688'
	>
	A distinct advantage of this hub is its multi-dimensional filtering logic. By applying pre-defined criteria unique to the client’s industry, the system eliminates &#8216;noise&#8217; and ensures that every brief delivered is directly relevant to the company&#8217;s long-term strategic goals and risk management. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-692"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-690">
	<h2	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-691'
	>
	<strong>Business intelligence platform for a premium fitness brand</strong></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-695"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-693">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-694'
	>
	Despite having large volumes of operational and financial data, teams across fitness clubs struggled with hard-to-use systems, missing metrics, and fragmented reporting. This made it difficult to get a clear picture of performance, align teams, and make timely, data-driven decisions.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-698"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-696">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-697'
	>
	We designed and built <strong>a centralized BI platform</strong> that integrates data from across the organization into a single, intuitive interface. By combining robust data modeling with user-centered design, the platform turns complex data into accessible, actionable insights for everyone – from frontline staff to executives.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-701"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-699">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-700'
	>
	<li><strong>We enabled real-time visibility across the business. </strong>With data refreshing multiple times per day, stakeholders can monitor revenue, membership trends, class utilization, and operational metrics in near real time, allowing for faster, more informed decisions.</li><li><strong><strong>The interface is designed for interactive data exploration</strong>. </strong>Users can move from high-level overviews to detailed drill-downs, compare performance over time, and quickly identify patterns through clear visualizations and consistent data cues.</li><li><strong>AI-generated summaries make complex data easy to understand. </strong>A layer of Microsoft AI translates complex data into plain-language summaries, surfacing key trends and insights automatically and making analytics accessible to non-technical users.</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-704"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div	class="card-simple js-card-simple card-simple--is-ad block-card__card-simple card-simple__content-align--left"
	data-id="es-702"
	>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<p	class='typography typography--size-36-text js-typography card-simple__heading'
	data-id='es-703'
	>
	Want a behind-the-scenes look at how we built the platform and what it looks like in action? Read the <a href="https://infinum.com/work/midtown-business-intelligence-platform/" id="https://infinum.com/work/midtown-business-intelligence-platform/" target="_blank" rel="noreferrer noopener">Midtown BI platform case study</a>.</p>		</div>

			</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-707"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-705">
	<h2	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-706'
	>
	Turning &#8216;hidden&#8217; email data into a tool for cost reduction</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-710"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-708">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-709'
	>
	Procurement teams are often buried under a lot of unstructured data, RFQs, and vendor price lists trapped in email threads and PDF attachments. Without a way to aggregate this data, it is impossible to compare vendor performance, track price volatility, or identify cost-saving opportunities in real-time. Manual data entry is slow, prone to error, and prevents strategic decision-making.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-713"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-711">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-712'
	>
	We built a sophisticated <strong>procurement automation solution</strong> that bridges the gap between raw communication and executive-ready analysis. Using Azure Document Intelligence, the system reads incoming vendor emails and complex attachments, automatically extracting and structuring critical data points. An Automated Extraction Layer then identifies and categorizes that data by vendor, product, and price, storing it in a high-performance structured database. This replaces manual tracking with a real-time repository of market intelligence.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-716"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-714">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-715'
	>
	From there, the platform performs deep-dive analyses, including vendor valuation and historical price benchmarking, and surfaces them through custom dashboards for real-time decision-making. Procurement teams walk into negotiations backed by data instead of gut feel, turning what was once hidden in an inbox into a genuine competitive advantage.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-719"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-717">
	<h2	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-718'
	>
	<strong>The transition from </strong>&#8216;<strong>data-rich&#8217; to &#8216;insight-driven&#8217; is no longer a luxur</strong>y</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-722"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-720">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-721'
	>
	As demonstrated across the insurance, tech, consulting, and fitness sectors, the challenge was never a lack of data. The organizations we worked with were sitting on everything they needed. They just couldn&#8217;t find it, validate it, or act on it fast enough. An AI-powered Knowledge Hub closes that gap. The right answer stops being buried in a database and becomes one question away. At Infinum, we don’t just build interfaces. We build the cognitive infrastructure that allows your team to stop searching and start leading. If that sounds like something your organization needs, <a href="https://infinum.com/artificial-intelligence/" id="https://infinum.com/artificial-intelligence/" target="_blank" rel="noreferrer noopener">check out what we can do</a>.</p></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/ai-knowledge-hubs/">From Data to Decisions: How AI-Driven Knowledge Hubs Are Decoding Enterprise Complexity</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
					<item>
				<image>
					<url>19277675https://infinum.com/uploads/2026/04/pen-vs-red.webp</url>
				</image>
				<title>Pen Testing, Red Teaming, and Why No Scanner Can Replace Either</title>
				<link>https://infinum.com/blog/pen-testing-red-teaming/</link>
				<pubDate>Wed, 01 Apr 2026 14:02:28 +0000</pubDate>
				<dc:creator>Sean McCarthy</dc:creator>
				<guid isPermaLink="false">https://infinum.com/?p=19277675</guid>
				<description>
					<![CDATA[<p>Pen testing and red teaming are often used interchangeably. They're not. Here's what each actually does, when you need which, and why automated scanners can't replace either.</p>
<p>The post <a href="https://infinum.com/blog/pen-testing-red-teaming/">Pen Testing, Red Teaming, and Why No Scanner Can Replace Either</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[

<div
	class="wrapper"
	data-id="es-850"
	 data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			<div class="block-blog-content js-block-blog-content">
	
<div class="block-blog-content-sidebar" data-id="es-725">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-728"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-726">
	<p	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-727'
	>
	<strong>Pen testing and red teaming are often used interchangeably. Both probe your defences. Both find what&#8217;s broken. But they ask fundamentally different questions, and the one you choose shapes how wide you assess your business security.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-731"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-729">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-730'
	>
	<a href="https://infinum.com/cybersecurity/penetration-testing/" id="https://infinum.com/cybersecurity/penetration-testing/" target="_blank" rel="noreferrer noopener">Penetration testing</a> and <a href="https://infinum.com/cybersecurity/red-teaming/" target="_blank" rel="noreferrer noopener">red teaming</a> both start from the same premise: hire someone to break in before the bad guys do. But they&#8217;re different tools for different problems, and conflating them is one of the more common mistakes organisations make.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-734"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-732">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-733'
	>
	Two approaches, similar goal</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-737"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-735">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-736'
	>
	Penetration testing is focused. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-740"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-738">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-739'
	>
	You define the scope – a specific application, a network segment, a set of systems – and testers use the <a href="https://infinum.com/blog/penetration-testing-steps/" target="_blank" rel="noreferrer noopener">penetration testing methodology step by step</a> in an attempt to find and exploit vulnerabilities within it. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-743"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-741">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-742'
	>
	Most engagements use a gray box approach: testers are given enough context to work efficiently. Credentials, access, scope. Enough to find what matters within a fixed timeframe.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-745"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-744'
	>
	<strong>Red teaming is the opposite of narrow. It&#8217;s intelligence-led and scenario-driven, built to simulate a sophisticated adversary targeting your organisation specifically. </strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-748"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-746">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-747'
	>
	The approach changes depending on who you are – <a href="https://infinum.com/red-team-services/" id="https://infinum.com/red-team-services/">a red team</a> targeting a bank crafts different phishing emails, chooses different attack vectors, and pursues different objectives than one targeting a logistics company. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-751"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-749">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-750'
	>
	The whole exercise is shaped by what real threat actors are actually doing to organisations like yours.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-754"
	 data-animation-target='inner-items'>
		
			<div class="block-group" data-id=es-753>
	
<div
	class="wrapper"
	data-id="es-752"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			
<figure class="wp-block-table is-style-first-column-strong"><table class="has-fixed-layout"><thead><tr><th>Pen testing</th><th><strong>Red teaming</strong></th></tr></thead><tbody><tr><td>Narrow, system-focused scope</td><td><strong>Whole-organisation scope</strong></td></tr><tr><td>Often gray box by default</td><td><strong>Intelligence-led, scenario-based</strong></td></tr><tr><td>Time-boxed engagement</td><td><strong>Simulates a real, tailored adversary</strong></td></tr><tr><td>Finds specific technical vulnerabilities</td><td><strong>Tests people, process, technology</strong></td></tr></tbody></table></figure>
		</div>
	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-757"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-755">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-756'
	>
	Penetration Testing vs Red Teaming: Key Differences</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-760"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-758">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-759'
	>
	The simplest way to tell them apart: pen testing answers &#8220;is this system secure?&#8221;, red teaming answers &#8220;could a determined attacker get into our organisation?&#8221;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-763"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-761">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-762'
	>
	Scope is the biggest practical difference. Pen testing is bounded — a specific application, network segment, or set of APIs. The tester works within those limits, finds what&#8217;s exploitable, and reports it. Red teaming has no such boundary. The adversary simulation can move across applications, people, and physical premises, using whatever combination of vectors a real attacker would.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-766"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-764">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-765'
	>
	The objectives differ, too. Pen testing produces a list of technical vulnerabilities with severity ratings and remediation steps. Red teaming produces something more like a case study: here is how an attacker targeting your organisation could move from initial access to their end goal, and here is what your people, processes, and technology did, or didn&#8217;t do to stop them.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-769"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-767">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-768'
	>
	Cost and time reflect this. A pen test might run for a week or two. A red team engagement is typically measured in weeks to months, and requires significantly more planning on both sides.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-772"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-770">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-771'
	>
	When Do You Need Pen Testing vs Red Teaming?</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-775"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-773">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-774'
	>
	Pen testing is right for checking specific systems — after a new build, before a release, or as part of a compliance cycle. TIBER-EU and<a href="https://infinum.com/blog/eu-cybersecurity-legislation-nis2-dora/" id="https://infinum.com/blog/eu-cybersecurity-legislation-nis2-dora/"> DORA</a> both require it. If you&#8217;re running one annually and after major changes, you&#8217;re doing the basics right.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-778"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-776">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-777'
	>
	Red teaming is for organisations that have already done the basics. You need mature security processes in place first — incident detection, response playbooks, trained staff — otherwise a red team engagement mostly finds that your foundations are weak, which a pen test would have told you for a fraction of the cost. When that foundation is there, red teaming stress-tests the whole picture: not just whether systems are patched, but whether your people, processes, and assumptions hold up under a realistic attack.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-781"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-779">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-780'
	>
	The other factor is the threat model. If you handle sensitive data, operate critical infrastructure, or are the kind of target sophisticated threat actors actively pursue, red teaming answers a question pen testing can&#8217;t: not &#8220;is this system secure?&#8221; but &#8220;could a determined adversary get into our organisation?&#8221;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-784"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-782">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-783'
	>
	If you&#8217;re not sure which fits, start with a pen test. And if you want to understand what a red team engagement actually involves, <a href="https://infinum.com/red-team-services/" id="https://infinum.com/red-team-services/">explore our red team services</a>.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-787"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-785">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-786'
	>
	Technical depth isn&#8217;t enough</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-790"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-788">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-789'
	>
	The best pen testers and red teamers share two things: deep technical expertise and genuine creativity. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-793"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-791">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-792'
	>
	The technical side is obvious – you need to understand how systems behave under pressure, and how to adapt when a vector doesn&#8217;t work as expected. But creativity is what separates good from exceptional.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-796"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-794">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-795'
	>
	Testing isn&#8217;t a checklist. When a system reacts unexpectedly, the question isn&#8217;t &#8220;what does the tool say next?&#8221; – it&#8217;s &#8220;what does this tell me, and where does it lead?&#8221; That kind of thinking can&#8217;t be scripted. It has to be developed.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-800"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="blockquote block-blockquote__blockquote" data-id="es-797">
	
	<div class="blockquote__content">
		<i
	class="icon blockquote__icon icon--size-16 icon--scale-100"
	 aria-hidden='true' data-name='blockquote-24' data-id='es-798'>
	<svg fill='none' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path clip-rule='evenodd' d='m12 24c6.6274 0 12-5.3726 12-12 0-2.79685-.9568-5.37021-2.561-7.41062-.581.22951-1.0832.60583-1.5069 1.12898-.5132.60844-.7698 1.41969-.7698 2.43375v.07605h2.5789v5.59004h-5.6197v-5.01962c0-1.11547.154-2.06616.4619-2.85205.3336-.81125.757-1.48307 1.2702-2.01545.528-.52161 1.1175-.92155 1.7687-1.1998-2.0728-1.70651-4.7279-2.73128-7.6223-2.73128-6.62742 0-12 5.37258-12 12 0 6.6274 5.37258 12 12 12zm-3.53811-18.05347c-.30793.78589-.46189 1.73658-.46189 2.85205v5.01962h5.6197v-5.59004h-2.5789v-.07605c0-1.01406.2566-1.82531.7698-2.43375.5389-.63379 1.1804-1.05209 1.9245-1.2549v-2.28164c-.7441.07605-1.4626.25351-2.1555.53238-.6928.27887-1.3086.68449-1.84752 1.21688-.51321.53238-.9366 1.2042-1.27019 2.01545z' fill='currentColor' fill-rule='evenodd'/></svg></i><p	class='typography typography--size-36-text js-typography blockquote__quote'
	data-id='es-799'
	>
	<strong>You need to think like an attacker – then explain the risk in language a board member can act on.</strong></p>
		<div class="blockquote__caption-wrap">
					</div>
	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-803"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-801">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-802'
	>
	The second half of that matters as much as the first. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-806"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-804">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-805'
	>
	A brilliant technical finding is worthless if it can&#8217;t be translated into plain language. The job isn&#8217;t just to find vulnerabilities – it&#8217;s to help the organisation understand what they mean and what to do about them.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-809"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-807">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-808'
	>
	Why no scanner replaces this</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-812"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-810">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-811'
	>
	<a href="https://infinum.com/blog/security-gaps-in-vibe-coded-applications/" target="_blank">Our research into AI-generated code security</a> found that automated tools are good at cataloging CVEs, misconfigured headers, and outdated libraries. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-815"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-813">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-814'
	>
	They&#8217;re fast, they&#8217;re consistent, and they&#8217;re useful. But they operate on fixed logic. They flag what they&#8217;re programmed to flag, and they stop there.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-818"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-816">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-817'
	>
	A skilled tester doesn&#8217;t stop there. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-821"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-819">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-820'
	>
	They notice how a system reacts, chain together findings that no single tool would connect, and pursue lines of attack that require judgment – not just pattern matching. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-823"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-822'
	>
	<strong>Automated scanners also can&#8217;t walk through your front door pretending to be IT support, or craft a phishing email convincing enough to fool a trained employee.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-826"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-824">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-825'
	>
	Nine times out of ten, <a href="https://infinum.com/blog/how-do-phishing-simulations-contribute-to-enterprise-security/">real attackers get in through people, not ports</a>. A scanner has nothing to say about that. Manual testing does.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-829"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-827">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-828'
	>
	This is why organisations that rely on automated tools as their primary security layer end up with a false sense of coverage. The scanner ran clean – but that&#8217;s only true for the things the scanner knows how to look for. The cost of finding out too late is well-documented in our breakdown of <a href="https://infinum.com/blog/cyberattack-cost/">the real cost of a cyberattack</a>, which shows what&#8217;s actually at stake.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-832"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-830">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-831'
	>
	Attackers aren&#8217;t limited by that constraint. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-835"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-833">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-834'
	>
	A vendor with a quiet network connection into your environment, a help desk employee who clicks the wrong attachment – these don&#8217;t show up on a dashboard. They show up when it&#8217;s too late.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-842"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<a	class="card-simple js-card-simple card-simple--is-ad block-card__card-simple card-simple--has-link js-card-simple-link card-simple__content-align--left"
	data-id="es-836"
	 href='https://infinum.com/cybersecurity/'>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<p	class='typography typography--size-36-text js-typography card-simple__heading'
	data-id='es-837'
	>
	<strong>Want to discover security vulnerabilities before attackers do? </strong></p>		</div>

		<p	class='typography typography--size-16-text-roman js-typography card-simple__paragraph'
	data-id='es-838'
	 id='es-836-paragraph'>
	Explore the full list of our cybersecurity services. </p><button	class="btn btn--color-infinum btn--size-small btn--width-default btn__icon-position--right card-simple__btn js-block-card-btn js-card-simple-link"
	data-id="es-839"
	 tabindex='-1'>
		<div class="btn__inner">
					<div	class='typography typography--size-none js-typography btn__label'
	data-id='es-840'
	>
	<strong><strong>Learn more</strong></strong></div>		
		<i
	class="icon btn__icon icon--size-16 icon--scale-100"
	 aria-hidden='true' data-name='arrow-right-16' data-id='es-841'>
	<svg fill='none' height='16' viewBox='0 0 17 16' width='17' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><g stroke='currentColor' stroke-width='2'><path d='m.5 7.99999 14 .00001'/><path d='m9.23352 2.7251 5.97848 5.97852'/><path d='m9.23352 13.2744 5.97848-5.9785'/></g></svg></i>	</div>
	</button>	</div>
</a>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-845"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-843">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-844'
	>
	So, the question isn&#8217;t whether to test. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-848"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-846">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-847'
	>
	It&#8217;s whether you&#8217;re testing the right things, in the right way, with people who can tell the difference. Automated tools have their place – but they&#8217;re a floor, not a ceiling.</p></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/pen-testing-red-teaming/">Pen Testing, Red Teaming, and Why No Scanner Can Replace Either</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
					<item>
				<image>
					<url>19276208https://infinum.com/uploads/2026/03/ai-generated-code.webp</url>
				</image>
				<title>Is AI-Generated Code Secure? What Business Leaders Need to Know About AI and Application Security</title>
				<link>https://infinum.com/blog/ai-generated-code-security-risks/</link>
				<pubDate>Fri, 06 Mar 2026 13:47:45 +0000</pubDate>
				<dc:creator>Hrvoje Filaković</dc:creator>
				<guid isPermaLink="false">https://infinum.com/?p=19276208</guid>
				<description>
					<![CDATA[<p>We asked AI to build three web apps with different levels of security guidance, then tried to break them. Here’s what we found.</p>
<p>The post <a href="https://infinum.com/blog/ai-generated-code-security-risks/">Is AI-Generated Code Secure? What Business Leaders Need to Know About AI and Application Security</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-1078"
	 data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			<div class="block-blog-content js-block-blog-content">
	
<div class="block-blog-content-sidebar" data-id="es-851">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-854"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-852">
	<p	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-853'
	>
	<strong>AI is changing how software gets built: faster timelines, leaner teams, fewer blockers. But does all that speed come at a cost? We put AI to the test in a real-world security experiment, and what we learned should matter to anyone leading modern product, platform, or tech teams.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-857"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-855">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-856'
	>
	According to Collins Dictionary, <em>vibe coding</em> is officially <a href="https://www.theguardian.com/technology/2025/nov/06/vibe-coding-collins-dictionary-word-of-the-year-2025">the word of the year</a> – and if you’ve spent literally <em>any</em> time around engineering teams lately, that probably doesn’t surprise you.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-860"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-858">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-859'
	>
	Obviously, it’s catching on fast. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-863"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-861">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-862'
	>
	Microsoft recently shared that around <a href="https://www.theverge.com/news/658584/up-to-30-percent-of-some-microsoft-code-is-now-written-by-ai">30% of the code in some of its repositories is now AI-generated</a>. This shift is one of the defining cybersecurity risks of 2026 — our <a href="https://infinum.com/blog/cybersecurity-trends-2026/">cybersecurity trends overview</a> covers the trade-off between vibe coding and security in depth. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-866"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-864">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-865'
	>
	At <a href="https://infinum.com/">Infinum</a>, we see this trend up close, both in internal experimentation and in conversations with clients who are increasingly curious about AI-assisted development. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-869"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-867">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-868'
	>
	The appeal is clear: development is faster, <a href="https://infinum.com/blog/ai-automation/" id="https://infinum.com/blog/ai-automation/">prototypes turn into products at record speed</a>, and teams feel confident shipping. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-872"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-870">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-871'
	>
	But is that confidence earned? We decided to find out.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-875"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-873">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-874'
	>
	<strong>Security doesn’t work on vibes</strong></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-878"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-876">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-877'
	>
	A growing belief is quietly taking hold in many teams:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-881"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-879">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-880'
	>
	<em>“If I tell the AI to make it secure, it probably will.”</em></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-884"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-882">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-883'
	>
	That assumption is understandable because AI is very good at reproducing patterns that <em>look</em> correct. When prompted, it can generate code that resembles common security practices and includes familiar terminology, giving the impression that risk has been addressed. But is it, really?</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-887"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-885">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-886'
	>
	Instead of debating, our cybersecurity engineer designed a simple, hands-on experiment.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-890"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-888">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-889'
	>
	He asked AI to build apps with varying levels of security guidance, from none to OWASP-level detail, and then he tried to break them.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-893"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-891">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-892'
	>
	We didn’t want to test whether AI could write code. We know it can.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-895"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-894'
	>
	<strong>Likewise, the goal wasn’t to assess if AI builds insecure apps by default. We wanted to test whether adding “make it secure” to your prompt is enough to stop vulnerabilities – and how that changes as you get more specific.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-898"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-896">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-897'
	>
	Let’s see the results.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-901"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-899">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-900'
	>
	<strong>The apps we built (and broke)</strong></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-904"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-902">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-903'
	>
	We asked AI to build three medium-complexity web applications, realistic enough to offer an attack surface, but not so complex that AI failed to build them. One app was generated with no security input at all, one with light guidance, and one with detailed, best-practice-driven instructions.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-907"
	 data-animation-target='inner-items'>
		
			<div class="block-group" data-id=es-906>
	
<div
	class="wrapper"
	data-id="es-905"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			
<figure class="wp-block-table is-style-first-column-strong"><table class="has-fixed-layout"><thead><tr><th><strong>App</strong></th><th><strong>Security guidance</strong></th><th><strong>Security quality</strong></th><th><strong>Outcome</strong></th></tr></thead><tbody><tr><td>Simple Project Tracker &#8211; task and project manager for small teams</td><td>None</td><td>Poor</td><td>Multiple critical issues in input validation, design, and session handling, easily leading to worst-case exploitation scenarios. Users could make themselves admins.&nbsp;</td></tr><tr><td>Project Resource Hub &#8211; internal portal for sharing documents and guides</td><td>Light</td><td>Mixed</td><td>Critical issues reduced, but several vulnerabilities remain that could still expose sensitive information, such as SSRF and malicious file uploads.</td></tr><tr><td>Niche Vault &#8211; hobbyist catalog site for personal collections</td><td>Detailed &amp; <a href="https://infinum.com/blog/owasp-top-10-mobile/" id="https://infinum.com/blog/owasp-top-10-mobile/">OWASP-based</a></td><td>Better, but insufficient</td><td>Significantly fewer vulnerabilities; none severe, but still issues that could pose risks over time. Missed CSV injection, rate-limiting, and open redirects.</td></tr></tbody></table></figure>
		</div>
	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-910"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-908">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-909'
	>
	Turns out, not even specific prompts are enough to build applications that can survive real-world attacks.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-917"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<a	class="card-simple js-card-simple card-simple--is-ad block-card__card-simple card-simple--has-link js-card-simple-link card-simple__content-align--left"
	data-id="es-911"
	 href='https://infinum.com/blog/security-gaps-in-vibe-coded-applications/'>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<p	class='typography typography--size-36-text js-typography card-simple__heading'
	data-id='es-912'
	>
	<strong>Want to learn all technical details of the experiments, including exact prompts, a detailed overview of found issues, and our engineer’s conclusion? </strong></p>		</div>

		<p	class='typography typography--size-16-text-roman js-typography card-simple__paragraph'
	data-id='es-913'
	 id='es-911-paragraph'>
	Explore the complete overview of this experiment.</p><button	class="btn btn--color-infinum btn--size-small btn--width-default btn__icon-position--right card-simple__btn js-block-card-btn js-card-simple-link"
	data-id="es-914"
	 tabindex='-1'>
		<div class="btn__inner">
					<div	class='typography typography--size-none js-typography btn__label'
	data-id='es-915'
	>
	<strong><strong>Let’s get technical</strong></strong></div>		
		<i
	class="icon btn__icon icon--size-16 icon--scale-100"
	 aria-hidden='true' data-name='arrow-right-16' data-id='es-916'>
	<svg fill='none' height='16' viewBox='0 0 17 16' width='17' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><g stroke='currentColor' stroke-width='2'><path d='m.5 7.99999 14 .00001'/><path d='m9.23352 2.7251 5.97848 5.97852'/><path d='m9.23352 13.2744 5.97848-5.9785'/></g></svg></i>	</div>
	</button>	</div>
</a>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-920"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-918">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-919'
	>
	<strong>What actually went wrong </strong></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-923"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-921">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-922'
	>
	Even with better prompts, the same kinds of security gaps kept popping up.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-926"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-924">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-925'
	>
	<span class='screen-reader-text'>AI didn’t forget libraries or miss syntax. It just couldn’t reason about how things might go wrong, and that’s where real-life threats were.</span><span aria-hidden='true'>AI didn’t forget libraries or miss syntax. </span></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-929"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-927">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-928'
	>
	<span class='screen-reader-text'>AI didn’t forget libraries or miss syntax. It just couldn’t reason about how things might go wrong, and that’s where real-life threats were.</span><span aria-hidden='true'>AI simply doesn&#8217;t understand cybersecurity, and it couldn’t reason about <em>how things might go wrong</em>, and that’s where real-life threats were.</span></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-932"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-930">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-931'
	>
	While we are aware that this is an experiment of a limited scope, it is still important to note recurring issues we recognized:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-936"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--infinum block-bullet__bullet" data-id="es-933">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<p	class='typography typography--size-24-text js-typography bullet__heading'
	data-id='es-934'
	>
	<strong>Trust in user input</strong></p><p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-935'
	>
	AI simply trusted what users said about themselves. In multiple apps, user roles (such as admin) were accepted directly from client input, with no validation or enforcement. If someone claimed to be an admin, the system said: “Sure, sounds legit.” Just like that, admin access was self-serve.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-940"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--infinum block-bullet__bullet" data-id="es-937">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<p	class='typography typography--size-24-text js-typography bullet__heading'
	data-id='es-938'
	>
	<strong><strong><strong>Broken or missing access control</strong></strong></strong></p><p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-939'
	>
	Even when roles were assigned correctly, features didn’t enforce them properly. There were no ownership checks, no context validation, no guardrails. Anyone logged in could view, modify, or delete other users’ data.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-944"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--infinum block-bullet__bullet" data-id="es-941">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<p	class='typography typography--size-24-text js-typography bullet__heading'
	data-id='es-942'
	>
	<strong><strong><strong><strong>Feature-level defenses, system-level blind spots</strong></strong></strong></strong></p><p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-943'
	>
	AI knew to sanitize an input field, but it didn’t think about how that input might travel through the system. Security was applied in pieces, not as a pattern, which means defenses weren’t absent; they were just easy to step around. This fragmentation is also why <a href="https://infinum.com/blog/software-supply-chain-security/">software supply chain security</a> requires a systemic approach — the weakest link is rarely where you&#8217;re looking.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-948"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--infinum block-bullet__bullet" data-id="es-945">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<p	class='typography typography--size-24-text js-typography bullet__heading'
	data-id='es-946'
	>
	<strong><strong><strong><strong><strong>Reactive security instead of proactive thinking</strong></strong></strong></strong></strong></p><p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-947'
	>
	The apps didn’t lack rate limiting, but rate limiting was only added to endpoints the prompt specifically called “sensitive.” In other words, if you want a feature to be secure, you have to explicitly tell the AI – every time.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-952"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--infinum block-bullet__bullet" data-id="es-949">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<p	class='typography typography--size-24-text js-typography bullet__heading'
	data-id='es-950'
	>
	<strong><strong><strong><strong><strong><strong>No imagination for abuse cases</strong></strong></strong></strong></strong></strong></p><p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-951'
	>
	And this might be the most important insight of all: the AI assumed good-faith users. It never asked the question that is the foundation of real-world security: <em>What if someone does the wrong thing on purpose?</em><br />
</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-955"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-953">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-954'
	>
	In conclusion, the issues discovered weren’t bugs in the traditional sense. They were assumptions – that roles are respected, that the app can trust user input, that attackers won’t be creative.  </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-960"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="blockquote block-blockquote__blockquote" data-id="es-956">
	
	<div class="blockquote__content">
		<i
	class="icon blockquote__icon icon--size-24 icon--scale-100"
	 aria-hidden='true' data-name='blockquote-24' data-id='es-957'>
	<svg fill='none' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path clip-rule='evenodd' d='m12 24c6.6274 0 12-5.3726 12-12 0-2.79685-.9568-5.37021-2.561-7.41062-.581.22951-1.0832.60583-1.5069 1.12898-.5132.60844-.7698 1.41969-.7698 2.43375v.07605h2.5789v5.59004h-5.6197v-5.01962c0-1.11547.154-2.06616.4619-2.85205.3336-.81125.757-1.48307 1.2702-2.01545.528-.52161 1.1175-.92155 1.7687-1.1998-2.0728-1.70651-4.7279-2.73128-7.6223-2.73128-6.62742 0-12 5.37258-12 12 0 6.6274 5.37258 12 12 12zm-3.53811-18.05347c-.30793.78589-.46189 1.73658-.46189 2.85205v5.01962h5.6197v-5.59004h-2.5789v-.07605c0-1.01406.2566-1.82531.7698-2.43375.5389-.63379 1.1804-1.05209 1.9245-1.2549v-2.28164c-.7441.07605-1.4626.25351-2.1555.53238-.6928.27887-1.3086.68449-1.84752 1.21688-.51321.53238-.9366 1.2042-1.27019 2.01545z' fill='currentColor' fill-rule='evenodd'/></svg></i><p	class='typography typography--size-36-text js-typography blockquote__quote'
	data-id='es-958'
	>
	<strong>Most of the problems were not broken locks, but doors that simply weren’t locked because AI assumed nobody would try them.</strong></p>
		<div class="blockquote__caption-wrap">
			<div	class='typography typography--size-12-text-roman js-typography blockquote__caption'
	data-id='es-959'
	>
	<strong>HRVOJE FILAKOVIĆ</strong>,<br>CYBERSECURITY ENGINEER</div>		</div>
	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-963"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-961">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-962'
	>
	But attackers are creative, and they have all the time in the world to look for what you missed.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-966"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-964">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-965'
	>
	<strong>Why this matters beyond the code</strong></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-969"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-967">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-968'
	>
	Security is not just a dev problem. It&#8217;s a systems-thinking problem, and it affects every role involved in shipping software.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-972"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-970">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-971'
	>
	<strong><strong>For CTOs &amp; Heads of Engineering</strong></strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-975"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-973">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-974'
	>
	AI speeds things up, no question, but it can’t replace architectural thinking. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-978"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-976">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-977'
	>
	The biggest failures in these apps weren’t in the code; they were bad assumptions about how trust, roles, and permissions work. Even when AI adds security controls, it struggles to secure the system as a whole.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-981"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-979">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-980'
	>
	We’ve all recently witnessed this: in our <a href="https://infinum.com/blog/openclaw-moltbot-clawdbot-viral-ai-sidekick/">deep dive into OpenClaw (ex Moltbot)</a>, we explored what happens when AI sidekicks are given broad access with no guardrails. The takeaway? When AI has too much control, your data is very likely at risk. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-984"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-982">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-983'
	>
	Again, that’s an architectural one. And it’s still up to humans to get it right.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-987"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-985">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-986'
	>
	<strong>For Founders &amp; Execs</strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-990"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-988">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-989'
	>
	All three apps worked. Some even looked secure. But they could still be exploited in serious ways, often through features that seemed harmless. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-993"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-991">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-992'
	>
	Remember this: AI gives a false sense of security. Without hands-on testing, issues like these show up only after damage is done. If you&#8217;re building with AI and need it to be secure from the start, our <a href="https://infinum.com/custom-ai-development-services/">custom AI development services</a> combine speed with security by design.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-996"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-994">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-995'
	>
	<strong>For Security Leaders</strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-999"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-997">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-998'
	>
	The vulnerabilities we found didn’t have CVE numbers. They weren’t from outdated libraries or missing headers. They were logic and abuse-case failures – the exact kind of problems <a href="https://infinum.com/blog/why-penetration-testing-is-important/">automated scanners don’t catch</a>. Addressing these systematically through structured security governance, risk assessment, and compliance frameworks is exactly what <a href="https://infinum.com/governance-risk-compliance-services/">governance, risk, and compliance services</a> are designed to support.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1002"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1000">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1001'
	>
	Manual <a href="https://infinum.com/cybersecurity/penetration-testing/">penetration testing</a> still matters because it mirrors how attackers behave, not just what vulnerabilities exist – and AI-assisted code makes this more important, not less.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1005"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1003">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-1004'
	>
	For <strong style="font-weight: bold">Developers</strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1008"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1006">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1007'
	>
	AI can implement what you tell it, but it’s not a security expert. It won’t catch logic flaws, system-wide assumptions, or the creative misuse attackers are known for. For a practical look at how to work with AI coding assistants without sacrificing code quality, see our roundup of <a href="https://infinum.com/blog/ai-agency-ai-tools/">AI tools for development teams</a>.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1011"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1009">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1010'
	>
	Writing secure apps still requires developer intuition, threat awareness, and curiosity about how features might be abused.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1013"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-1012'
	>
	<strong><strong>The key takeaway: “Please make it secure” is not a security strategy. AI can help you build faster <em>only if you know exactly what to ask for</em>, and even then, it often misses the bigger picture. </strong></strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1016"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1014">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1015'
	>
	So, yes. AI-generated code can be secure, but it takes judgement, experience, and most importantly, testing.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1019"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1017">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-1018'
	>
	<strong>What should you do now</strong></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1022"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1020">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1021'
	>
	Use AI. Embrace the speed. Build more, experiment faster, prototype wildly. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1025"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1023">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1024'
	>
	But don’t confuse working code with secure code.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1028"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-1026">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-1027'
	>
	<li><strong>Bring in experienced engineers.</strong> Secure software doesn’t just happen, it’s built intentionally. <a href="https://infinum.com/blog/ssdlc-application-security/">SSDLC practices are more essential than ever</a> when code is being generated at speed. For mobile developers in particular, intentional security means implementing runtime protections that resist reverse engineering — something we explore hands-on in our <a href="https://infinum.com/blog/understanding-defeating-android-protections/">guide to Android anti-root, anti-hook, and anti-debug mechanisms</a>. Before scaling AI-assisted development across your team, it helps to have a clear <a href="https://infinum.com/blog/ai-strategy/">AI strategy</a> — one that accounts for security, governance, and the right use cases from the start. </li><li><strong>Test like an attacker.</strong> <a href="https://infinum.com/blog/penetration-testing-steps/">Manual penetration testing</a> reveals what AI misses: the logic flaws, the edge cases, all the blind spots that open into serious vulnerabilities.</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1031"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1029">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-1030'
	>
	<strong>Why automated scanners won’t help</strong></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1034"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1032">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1033'
	>
	Automated tools catch known and “low-hanging fruit” types of vulnerabilities. But issues discovered in this experiment weren’t in any vulnerability database, because they weren’t traditional bugs – they were incorrect assumptions about how systems would be used.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1036"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-1035'
	>
	<strong><strong>The AI knew the best practices, it just couldn’t connect the dots to anticipate misuse. That’s what manual testing is for – to expose unknown risks.</strong></strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1039"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1037">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1038'
	>
	Automation wouldn’t have caught that, but manual testing told us whether the system could survive a curious attacker.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1046"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<a	class="card-simple js-card-simple card-simple--is-ad block-card__card-simple card-simple--has-link js-card-simple-link card-simple__content-align--left"
	data-id="es-1040"
	 href='https://infinum.com/cybersecurity/penetration-testing/'>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<p	class='typography typography--size-36-text js-typography card-simple__heading'
	data-id='es-1041'
	>
	<strong><strong>Want to see how your AI-generated app holds up?</strong></strong></p>		</div>

		<p	class='typography typography--size-16-text-roman js-typography card-simple__paragraph'
	data-id='es-1042'
	 id='es-1040-paragraph'>
	Let’s test it, break it (safely), and help you fix what matters most.</p><button	class="btn btn--color-infinum btn--size-small btn--width-default btn__icon-position--right card-simple__btn js-block-card-btn js-card-simple-link"
	data-id="es-1043"
	 tabindex='-1'>
		<div class="btn__inner">
					<div	class='typography typography--size-none js-typography btn__label'
	data-id='es-1044'
	>
	<strong><strong>Let’s get technical</strong></strong></div>		
		<i
	class="icon btn__icon icon--size-16 icon--scale-100"
	 aria-hidden='true' data-name='arrow-right-16' data-id='es-1045'>
	<svg fill='none' height='16' viewBox='0 0 17 16' width='17' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><g stroke='currentColor' stroke-width='2'><path d='m.5 7.99999 14 .00001'/><path d='m9.23352 2.7251 5.97848 5.97852'/><path d='m9.23352 13.2744 5.97848-5.9785'/></g></svg></i>	</div>
	</button>	</div>
</a>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1049"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1047">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-1048'
	>
	<strong>The real takeaway</strong></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1052"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1050">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1051'
	>
	The apps worked and security looked reasonable. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1055"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1053">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1054'
	>
	But AI inherently doesn’t <em>understand</em> security, which is especially obvious once software interacts with real users, real data, and real incentives to misuse it. Security failures rarely come from missing syntax or forgotten libraries; they emerge from incorrect assumptions about behavior, trust, and intent.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1058"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-1056">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-1057'
	>
	<li><strong>AI builds what you ask for.</strong></li><li><strong><strong>It protects what you explicitly mention.</strong></strong></li><li><strong>It doesn’t secure the system as a whole.</strong></li><li><strong><strong>It doesn’t imagine creative misuse.</strong></strong></li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1061"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1059">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1060'
	>
	Attackers do <em>nothing</em> but imagine misuse.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1064"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1062">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1063'
	>
	This is exactly why <strong>manual penetration testing exists</strong>: not to check a box, but to ask the one question that AI won’t:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1067"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1065">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1066'
	>
	<em>“What happens if someone does the wrong thing on purpose?”</em></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1070"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1068">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1069'
	>
	Security still requires human intent and adversarial thinking. No matter how well you prompt it, AI can’t protect against what it doesn’t anticipate.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1073"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1071">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1072'
	>
	<em>If your app was built with AI assistance, this isn’t a theoretical risk. It’s a structural one. </em></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1076"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1074">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1075'
	>
	<em>If you want real, certified humans to have a go at your app – partner with Infinum’s security team to </em><a href="https://infinum.com/cybersecurity/penetration-testing/"><em>test your app the way real attackers would.</em></a><em>  We’ll help you find the blind spots, close the gaps, and build safer systems, so you can move fast without leaving yourself exposed. If we find zero issues, the beer is on us.</em></p></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/ai-generated-code-security-risks/">Is AI-Generated Code Secure? What Business Leaders Need to Know About AI and Application Security</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
					<item>
				<image>
					<url>19275465https://infinum.com/uploads/2026/02/img-MCP.webp</url>
				</image>
				<title>Why Model Context Protocols (MCP) Will Define the Next Wave of AI-Enabled Businesses</title>
				<link>https://infinum.com/blog/model-context-protocols-mcp-ai-enabled-businesses/</link>
				<pubDate>Mon, 23 Feb 2026 15:51:17 +0000</pubDate>
				<dc:creator>Stefan Vodilovski</dc:creator>
				<guid isPermaLink="false">https://infinum.com/?p=19275465</guid>
				<description>
					<![CDATA[<p>Organizations are adopting AI fast, but the next step is giving models live data and safe ways to act. Model Context Protocols (MCPs) provide that infrastructure—connecting AI to real-time information and verified actions.</p>
<p>The post <a href="https://infinum.com/blog/model-context-protocols-mcp-ai-enabled-businesses/">Why Model Context Protocols (MCP) Will Define the Next Wave of AI-Enabled Businesses</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-1166"
	 data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			<div class="block-blog-content js-block-blog-content">
	
<div class="block-blog-content-sidebar" data-id="es-1079">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1082"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1080">
	<p	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-1081'
	>
	For the past two years, most organizations have been consumed by a single, driving question: &#8220;<a href="https://infinum.com/blog/ai-strategy/" id="https://infinum.com/blog/ai-strategy/">How can we leverage AI in our business?</a>&#8221; But as the market matures, the more critical question becomes: &#8220;How can we provide AI with the live context needed to function effectively?&#8221;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1085"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1083">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-1084'
	>
	The &#8220;Static Context&#8221; Trap</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1088"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1086">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1087'
	>
	There is a typical scenario that an organization lives through in its pursuit of AI utility. In an effort to deliver immediate value, an organization feeds an LLM its Confluence pages and a collection of internal PDFs. The model answers questions accurately, and the implementation feels seamless. Stakeholders are satisfied with the newfound efficiency. The results are an instant success.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1091"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1089">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1090'
	>
	However, the organization inevitably hits a wall as the reality of a moving business catches up with the static data of the past. If context is not retrieved dynamically, the AI cannot participate in a workflow – it can only summarize old news. This creates a strategic ceiling.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1094"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1092">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1093'
	>
	Most AI pilots reach a fatal point when they are too disconnected from the live environment to be trusted with business operations. Failure then spills into customer experience, internal operations, and revenue-impacting workflows. Eventually, it becomes clear that the issue is not the model&#8217;s intelligence but a lack of a live connection to the company.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1097"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1095">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1096'
	>
	That’s why the next wave of AI-enabled businesses will be defined by <strong>Model Context Protocols (MCP)</strong>. This critical infrastructure bridges the gap between static reasoning and real-time business reality.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1099"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-1098'
	>
	The industry has spent two years fixating on the LLM&#8217;s brain while neglecting the nervous system required to connect it to the enterprise. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1102"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1100">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-1101'
	>
	Enter the Model Context Protocol (MCP)</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1105"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1103">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1104'
	>
	From a business perspective, model context is not about tokens or prompts. It is about ensuring that AI systems:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1108"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-1106">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-1107'
	>
	<li>Know exactly what they are allowed to see.</li><li>Understand who they are acting on behalf of.</li><li>Operate within clear boundaries and policies.</li><li>Access relevant and up-to-date business information.</li><li>Behave consistently across teams, products, and channels.</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1111"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1109">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1110'
	>
	This is the foundation of how we approach <a href="https://infinum.com/artificial-intelligence/">AI and data engineering</a> — every system we build is designed from the start with defined access boundaries, governance, and real-time data integration.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1113"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-1112'
	>
	A Model Context Protocol is a structured way to define and deliver the knowledge and actions a model can make. This is an operating contract rather than a technical protocol. It provides the AI with a &#8220;source of truth&#8221; that updates in sync with the business.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1116"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1114">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-1115'
	>
	From &#8220;Advice&#8221; to &#8220;Action&#8221;</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1119"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1117">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1118'
	>
	The transition from static data to dynamic protocols changes the utility of AI. This is best illustrated by an example emphasizing the difference between an assistant that remembers information and an assistant that knows how to fetch it.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1122"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1120">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-1121'
	>
	The Static Way: Relying on Memory</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1125"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1123">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1124'
	>
	In a static approach, an organization uploads thousands of PDFs, product manuals, and pricing sheets to a <a href="https://infinum.com/blog/scaling-ai-with-databricks/" id="https://infinum.com/blog/scaling-ai-with-databricks/">vector database</a>. The AI is then prompted to use these documents to answer questions. However, as documents become outdated and regulations evolve, the system begins to fail.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1128"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1126">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1127'
	>
	Consider a customer asking for the current cancellation policy for an enterprise account in Germany. A static AI might reference a 2024 PDF and confidently provide an outdated answer. It has no way to verify whether that policy is still valid or even applies to that specific region. The customer ends up frustrated and exits the chat. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1131"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1129">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1130'
	>
	This forces a human agent to intervene to fix the mistake manually. In this model, the engineering team’s daily workload is consumed by the repetitive task of feeding the model new data snapshots instead of building new capabilities.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1134"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1132">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1133'
	>
	This is one of the core pain points in AI chatbot development — we&#8217;ve documented how <a href="https://infinum.com/blog/ai-chatbot-development-pain-points/" id="https://infinum.com/blog/ai-chatbot-development-pain-points/">knowledge base staleness and hallucination</a> undermine even well-scoped chatbot projects.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1137"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1135">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-1136'
	>
	The MCP Way: Relying on Access</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1140"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1138">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1139'
	>
	In the MCP Way, the business defines a standardized context layer. This protocol specifies exactly which tools the model can use and which data sources it can access in real time. Instead of relying on a folder of old files, the AI operates like a user with a live internet connection.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1143"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1141">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1142'
	>
	When asked about the same German cancellation policy, the AI identifies the region and customer type. It then uses the protocol to hit the live policy API and the subscription store. It recognizes the most recent &#8220;instant&#8221; policy tag and confirms the customer&#8217;s eligibility. Because it has a secure communication layer, it can provide more than just a text response. It triggers the cancellation through <a href="https://www.infobip.com/docs/mcp">Infobip MCP Servers</a> or another messaging tool.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1146"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1144">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1145'
	>
	This is the jump from an AI that talks to an AI that operates, ensuring that every action is grounded in verified, real-time data. This shift is at the heart of <a href="https://infinum.com/blog/ai-automation/">AI automation</a> — moving beyond smart responses to systems that execute workflows end-to-end. For concrete examples of what this looks like inside enterprise systems, see our work on <a href="https://infinum.com/blog/ai-knowledge-hubs/">AI-powered knowledge hubs</a> across insurance, tech, and procurement.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1149"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1147">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-1148'
	>
	The Strategic Shift in Business Architecture</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1152"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1150">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1151'
	>
	The value of structured model context extends beyond improving answers. When context is delivered via a Model Context Protocol, AI systems shift from isolated responders to reliable participants in business processes that operate within defined boundaries, using approved data and actions. Building these systems from the ground up is what our <a href="https://infinum.com/artificial-intelligence/agent-development/">AI agent development services</a> are designed for — from prototype to production in a structured, risk-managed engagement.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1155"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1153">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1154'
	>
	Most importantly, MCPs enable this without hard-coding logic into every application. Whether an organization is building internal tools or integrating with the <a href="https://infinum.com/blog/apps-in-chatgpt-and-the-apps-sdk/">ChatGPT Apps SDK</a>, a robust protocol ensures engineers do not have to rebuild the connection between the brain and the data each time. The organization builds the protocol once, and the AI scales with the business.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1158"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1156">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-1157'
	>
	The No-Brainer Approach</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1161"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1159">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1160'
	>
	The industry has spent two years fixating on the LLM&#8217;s brain while neglecting the nervous system required to connect it to the enterprise. Model Context Protocols are the neurons that bridge this gap.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1164"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1162">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1163'
	>
	As models commoditize, competitive advantage shifts from raw intelligence to architecture. The winners will not be defined by the size of their LLM budget, but by the sophistication of the nervous system that gives their AI the agency to act. If you&#8217;re ready to build that nervous system, our <strong><a href="https://infinum.com/artificial-intelligence/custom-solutions/">custom AI solutions</a></strong> team designs production-grade AI architectures built around your workflows and data.</p></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/model-context-protocols-mcp-ai-enabled-businesses/">Why Model Context Protocols (MCP) Will Define the Next Wave of AI-Enabled Businesses</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
					<item>
				<image>
					<url>19274941https://infinum.com/uploads/2026/03/img-CS-vibe-coding-new-opti.webp</url>
				</image>
				<title>Security Gaps in Vibe-Coded Applications</title>
				<link>https://infinum.com/blog/security-gaps-in-vibe-coded-applications/</link>
				<pubDate>Wed, 11 Feb 2026 11:32:15 +0000</pubDate>
				<dc:creator>Hrvoje Filaković</dc:creator>
				<guid isPermaLink="false">https://infinum.com/?p=19274941</guid>
				<description>
					<![CDATA[<p>An evaluation of AI-generated code security found that while detailed security prompts lead to improved outcomes, consistent vulnerabilities and gaps remain even with strict guidance.</p>
<p>The post <a href="https://infinum.com/blog/security-gaps-in-vibe-coded-applications/">Security Gaps in Vibe-Coded Applications</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-1517"
	 data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			<div class="block-blog-content js-block-blog-content">
	
<div class="block-blog-content-sidebar" data-id="es-1167">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1170"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1168">
	<p	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-1169'
	>
	<strong>As vibe coding enters real-world development, I set out to evaluate the security of AI-generated code in practice. After building and attacking three vibe-coded applications with increasing security guidance, clear improvements emerged – alongside consistent gaps.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1173"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1171">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1172'
	>
	Large language models are already part of <a href="https://infinum.com/news/infinum-embeds-ai-across-product-development/">everyday development workflows</a>.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1176"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1174">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1175'
	>
	Development teams use them to scaffold features, generate boilerplate, wire APIs, and, increasingly, to assemble entire applications from natural-language prompts.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1179"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1177">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1178'
	>
	In many cases, the output is functionally correct and fast enough to be genuinely useful.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1182"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1180">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1181'
	>
	What is less obvious is how this code behaves once it is exposed to real attackers rather than happy-path usage. This is especially relevant as <a href="https://infinum.com/governance-risk-compliance-services/" id="https://infinum.com/governance-risk-compliance-services/">regulatory pressure</a> on <a href="https://infinum.com/third-party-cyber-risk-management/" id="https://infinum.com/third-party-cyber-risk-management/" target="_blank" rel="noreferrer noopener">the software supply chain</a> increases and attackers adopt AI-assisted tooling.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1184"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-30-text js-typography block-highlighted-text__typography'
	data-id='es-1183'
	>
	<strong>We examined how security posture changes as we instruct an AI model to implement different levels of secure development best practices.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1187"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1185">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1186'
	>
	I asked Gemini Pro to generate three different web applications and for each one, I progressively increased the level of security detail in my prompts.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1190"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1188">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1189'
	>
	The results were instructive, occasionally impressive, and ultimately a reminder that security does not emerge automatically – no matter how advanced the model. For a business-focused interpretation of these findings, see our <a href="https://infinum.com/blog/ai-generated-code-security-risks/">AI-generated code security risks guide for CTOs and business leaders</a>.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1193"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1191">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-1192'
	>
	<strong>The plan and methodology</strong></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1196"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1194">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1195'
	>
	To make the experiment realistic, I needed applications complex enough to expose meaningful attack surfaces, but not so large that the AI would collapse into contradictory logic or endless refactoring loops.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1199"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1197">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1198'
	>
	I intentionally avoided very simple apps (e.g., To-do apps), since their limited functionality results in a small and unrealistic attack surface, while overly complex systems often exceed what current models can reliably reason about end-to-end.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1201"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-30-text js-typography block-highlighted-text__typography'
	data-id='es-1200'
	>
	<strong>Medium-complexity web applications turned out to be the sweet spot. They are large enough to expose meaningful security issues, but not so large that the AI collapses under its own code.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1204"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1202">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1203'
	>
	They include authentication, authorization, data storage, and user interaction patterns that are common in real-world systems—and therefore make attractive targets for attackers.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1207"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1205">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1206'
	>
	For each application, I generated the entire codebase using Gemini Pro, varying only the level of security detail in the prompt.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1210"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1208">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1209'
	>
	I then reviewed the resulting code from the perspective of a realistic attacker, including both unauthenticated users and low-privileged authenticated users attempting to escalate access or abuse functionality. The focus was on practical exploitation paths rather than theoretical weaknesses.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1213"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1211">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-1212'
	>
	<strong>The test subjects</strong></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1216"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1214">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1215'
	>
	Based on these criteria, the following three web applications were born:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1221"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--top bullet__type--number bullet__color--infinum block-bullet__bullet" data-id="es-1217">
	<p	class='typography typography--size-14-text js-typography bullet__dot'
	data-id='es-1218'
	>
	1</p>	<div class="bullet__content">
		<p	class='typography typography--size-24-text js-typography bullet__heading'
	data-id='es-1219'
	>
	Simple Project Tracker</p><p	class='typography typography--size-16-text-roman js-typography bullet__paragraph'
	data-id='es-1220'
	>
	A lightweight tool for small teams to manage projects and track tasks, vibe coded with no explicit security instructions.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1226"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--top bullet__type--number bullet__color--infinum block-bullet__bullet" data-id="es-1222">
	<p	class='typography typography--size-14-text js-typography bullet__dot'
	data-id='es-1223'
	>
	2</p>	<div class="bullet__content">
		<p	class='typography typography--size-24-text js-typography bullet__heading'
	data-id='es-1224'
	>
	Project Resource Hub</p><p	class='typography typography--size-16-text-roman js-typography bullet__paragraph'
	data-id='es-1225'
	>
	A centralized internal portal for storing and accessing important documents, links, and guides (similar to a mini-wiki), built with light security instructions.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1231"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--top bullet__type--number bullet__color--infinum block-bullet__bullet" data-id="es-1227">
	<p	class='typography typography--size-14-text js-typography bullet__dot'
	data-id='es-1228'
	>
	3</p>	<div class="bullet__content">
		<p	class='typography typography--size-24-text js-typography bullet__heading'
	data-id='es-1229'
	>
	Niche Vault</p><p	class='typography typography--size-16-text-roman js-typography bullet__paragraph'
	data-id='es-1230'
	>
	A site for hobbyists to catalog and showcase personal collections (e.g., vinyl records, comics, board games, etc.), created with detailed and precise security instructions (e.g., OWASP guidelines). </p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1234"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1232">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1233'
	>
	Each application was built independently, with the only variable being the depth and specificity of security requirements provided to the AI.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1237"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1235">
	<p	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-1236'
	>
	<strong>Discoveries and  vulnerabilities </strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1240"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1238">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1239'
	>
	In this section, we analyze the key vulnerabilities identified across the three generated applications. Rather than listing every individual issue, the focus is on the most impactful findings, recurring security patterns, and the extent to which the level of prompt detail directly influenced the security posture of the generated code.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1243"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1241">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-1242'
	>
	<strong>Results at a glance</strong>: <strong>What broke and why</strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1246"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1244">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1245'
	>
	The following table provides a high-level summary of the results from the tested applications.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1249"
	 data-animation-target='inner-items'>
		
			<div class="block-group" data-id=es-1248>
	
<div
	class="wrapper"
	data-id="es-1247"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			
<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Application</th><th>Security quality</th><th>Notes</th></tr></thead><tbody><tr><td>Simple Project Tracker</td><td><strong>Poor</strong></td><td>Multiple critical vulnerabilities across input validation, authorization, and session management.</td></tr><tr><td>Project Resource Hub</td><td><strong>Mixed</strong></td><td>Major improvements, but still several exploitable issues.</td></tr><tr><td>Niche Vault</td><td>Better, but <strong>insufficient</strong></td><td>Major improvements, but several exploitable issues remain.</td></tr></tbody></table><figcaption class="wp-element-caption"><em>The trend is clear: more detailed security prompts lead to better outcomes – but not to secure-by-default systems.</em></figcaption></figure>
		</div>
	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1252"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1250">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1251'
	>
	For security researchers looking to understand what these runtime gaps look like from an attacker&#8217;s perspective on mobile, where protections like root detection and Frida detection can be systematically defeated — see our <a href="https://infinum.com/blog/understanding-defeating-android-protections/">walkthrough of Android penetration testing techniques</a>.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1255"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1253">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1254'
	>
	For a real-world example of what happens when an AI tool is shipped without any of these guardrails in place — no authentication, broad system access, and easily bypassed safety measures see our <a href="https://infinum.com/blog/openclaw-moltbot-clawdbot-viral-ai-sidekick/">security analysis of OpenClaw</a>, the viral AI agent that exposed over 1,500 unauthenticated instances on the public internet within weeks of launch.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1258"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1256">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-1257'
	>
	<strong>Simple Project Tracker: No security, just vibes</strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1261"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1259">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1260'
	>
	The first application generated was the Simple Project Tracker, a lightweight web application where regular users can create, update, and sort tasks, while administrators can additionally create projects and assign users.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1264"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1262">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1263'
	>
	No explicit security requirements were provided. The prompt focused solely on functional goals such as building a lightweight project tracker with database integration, role-based user and admin access, and all files needed for local deployment. As a result, the following prompt was used:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1267"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1265">
	<p	class='typography typography--size-16-text-roman typography--is-highlighted js-typography block-typography__typography'
	data-id='es-1266'
	>
	<mark><em>I would like to build a simple project tracker web application. Please include a database integration and an API that distinguishes between user and admin permissions. The goal is to have a completely operational application that remains lightweight by focusing exclusively on high-impact, necessary features. Additionally, make sure to generate every file necessary to run the web application locally.</em></mark></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1269"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-30-text js-typography block-highlighted-text__typography'
	data-id='es-1268'
	>
	<strong>The AI was only told what the application should do, not how it should defend itself.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1272"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1270">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1271'
	>
	For this application, AI selected the following technology stack:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1275"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-1273">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-1274'
	>
	<li>Frontend: <em>HTML, Tailwind, JavaScript</em></li><li>Backend: <em>Node.js</em></li><li>API: <em>REST (express.js)</em></li><li>Database: <em>SQLite3</em></li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1278"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1276">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1277'
	>
	As illustrated in the screenshot below, the generated web application exhibited a polished and well-designed interface.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1281"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-1279"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-1280">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2026/02/image1.webp"
					class="image__img block-media__image-img"
					alt="Screenshot of AI-generated Simple Project Tracker web app interface showing task management dashboard with no security controls"
										height="758"
															width="1113"
										loading="lazy"
					 />
					</picture>

	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1284"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1282">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1283'
	>
	Unsurprisingly, the absence of security guidance resulted in an application that implicitly trusted all user input. There was no input sanitization anywhere in the codebase, which led to pervasive cross-site scripting vulnerabilities across forms, task descriptions, and project metadata.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1287"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1285">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1286'
	>
	Below is an example of the generated code.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1290"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-1288"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-1289">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2026/02/image2.webp"
					class="image__img block-media__image-img"
					alt="JavaScript code snippet showing AI-generated innerHTML assignment without input sanitization, creating a cross-site scripting (XSS) vulnerability"
										height="181"
															width="943"
										loading="lazy"
					 />
					</picture>

	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1293"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1291">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1292'
	>
	The registration flow was particularly revealing. User roles were assigned directly from client-controlled input:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1295"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-json github-light" data-language="json" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">  </span><span class="token" style="color: #005cc5;">&quot;</span><span class="token" style="color: #005cc5;">username</span><span class="token" style="color: #005cc5;">&quot;</span><span class="token">:</span><span class="token"> </span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">herc</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">,</span><span class="token">
</span></span><span class="line"><span class="token">  </span><span class="token" style="color: #005cc5;">&quot;</span><span class="token" style="color: #005cc5;">password</span><span class="token" style="color: #005cc5;">&quot;</span><span class="token">:</span><span class="token"> </span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">password</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">,</span><span class="token">
</span></span><span class="line"><span class="token">  </span><span class="token" style="color: #005cc5;">&quot;</span><span class="token" style="color: #005cc5;">role</span><span class="token" style="color: #005cc5;">&quot;</span><span class="token">:</span><span class="token"> </span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">user</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">
</span></span><span class="line"><span class="token">}</span><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1298"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1296">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1297'
	>
	Changing &#8220;role&#8221; to &#8220;admin&#8221; was enough to gain full administrative privileges. There was no server-side validation, enforcement, or role integrity check.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1301"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1299">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1300'
	>
	Authorization was equally fragile. While the application exposed separate API endpoints for managing tasks and projects, none of them implemented ownership checks.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1304"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1302">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1303'
	>
	Any authenticated user could view, modify, or delete any other user’s data which can be seen in the following request where oddly specific x-user-id and x-user-role headers are used by default.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1307"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-1305"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-1306">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2026/02/image3.webp"
					class="image__img block-media__image-img"
					alt="HTTP request and response showing broken access control in AI-generated app, with x-user-id and x-user-role headers accepted directly from client input"
										height="401"
															width="826"
										loading="lazy"
					 />
					</picture>

	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1310"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1308">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1309'
	>
	Session handling further reinforced the trust-in-the-client model. Authentication state was stored in unsigned cookies containing raw user objects:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1312"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-json github-light" data-language="json" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token">{</span><span class="token" style="color: #005cc5;">&quot;</span><span class="token" style="color: #005cc5;">id</span><span class="token" style="color: #005cc5;">&quot;</span><span class="token">:</span><span class="token" style="color: #005cc5;">2</span><span class="token">,</span><span class="token" style="color: #005cc5;">&quot;</span><span class="token" style="color: #005cc5;">username</span><span class="token" style="color: #005cc5;">&quot;</span><span class="token">:</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">user</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">,</span><span class="token" style="color: #005cc5;">&quot;</span><span class="token" style="color: #005cc5;">role</span><span class="token" style="color: #005cc5;">&quot;</span><span class="token">:</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">user</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1315"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1313">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1314'
	>
	Overall, in terms of design and functionality, the AI delivered exactly what was requested. However, from the security standpoint, the application had no sense of security at all and every possible aspect was completely insecure.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1318"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1316">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1317'
	>
	Functionally, the application worked exactly as requested. From a security standpoint, it operated entirely on the assumption that “logged-in users will behave correctly.” Needless to say, attackers do not follow that assumption.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1321"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1319">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-1320'
	>
	<strong>Project Resource Hub: Better, but not bulletproof</strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1324"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1322">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1323'
	>
	The second application, the Project Resource Hub, was designed as a platform where users could share resources such as files, links, and documentation, while administrators were able to manage all users.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1327"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1325">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1326'
	>
	This time, alongside the application details, I instructed the AI to also take security into account. Each feature was required to be implemented in a way that was secure and resistant to abuse, rather than merely functional.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1330"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1328">
	<p	class='typography typography--size-16-text-roman typography--is-highlighted js-typography block-typography__typography'
	data-id='es-1329'
	>
	<mark><em><em>… web application details …</em></em></mark></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1333"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1331">
	<p	class='typography typography--size-16-text-roman typography--is-highlighted js-typography block-typography__typography'
	data-id='es-1332'
	>
	<mark><em><em><em>You may use modern, standard technologies commonly used in contemporary web application development, such as a database and an API. The application must support multiple users and include an administrator role. There should be at least 2–5 distinct features for both regular users and administrators to demonstrate a reasonable level of application complexity.</em></em></em></mark></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1336"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1334">
	<p	class='typography typography--size-16-text-roman typography--is-highlighted js-typography block-typography__typography'
	data-id='es-1335'
	>
	<mark><em><em><em><em>Additionally, it is critically important that security is considered throughout the entire application. Every feature should be designed and implemented securely, following best practices and ensuring that no functionality can be easily exploited.</em></em></em></em></mark></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1338"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-30-text js-typography block-highlighted-text__typography'
	data-id='es-1337'
	>
	This time, the AI was instructed to consider security throughout the application, without explicit defense measures.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1341"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1339">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1340'
	>
	Compared to the previous application, this one showed noticeable improvements in security while keeping the same tech stack. Specifically, the AI implemented several measures, including:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1344"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-1342">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-1343'
	>
	<li>JWT tokens for authorization</li><li>Rate limiting on login, file uploads, and other sensitive routes</li><li>Cross-Origin Resource Sharing (CORS) configuration</li><li>File upload validation</li><li>Content Security Policy (CSP)</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1347"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1345">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1346'
	>
	As illustrated in the screenshot below, the generated web application was simple and provided functionality for storing several resource types.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1350"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-1348"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-1349">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2026/02/image4.webp"
					class="image__img block-media__image-img"
					alt="Screenshot of AI-generated Project Resource Hub web application interface showing document and link sharing features built with light security guidance"
										height="323"
															width="963"
										loading="lazy"
					 />
					</picture>

	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1353"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1351">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1352'
	>
	With a moderately detailed security prompt, the AI implemented effective input sanitization, and most tested inputs (including XSS, SSTI, and other relevant attack vectors) were handled appropriately. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1356"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1354">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1355'
	>
	<strong>Even modest security instructions can significantly improve baseline resilience. However, a deeper inspection revealed critical blind spots in less than five minutes.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1359"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1357">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1358'
	>
	After less than five minutes of reviewing the generated code, I discovered a major flaw in the file upload functionality: the AI considered filename, file size, and MIME type checks sufficient for security, leaving the system vulnerable.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1362"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-1360"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-1361">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2026/02/image5.webp"
					class="image__img block-media__image-img"
					alt="Node.js file upload code generated by AI showing MIME type validation only, missing file extension checks that leave the system vulnerable to malicious uploads"
										height="599"
															width="1026"
										loading="lazy"
					 />
					</picture>

	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1365"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1363">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1364'
	>
	Because there were no extension checks (or other meaningful protections) an attacker could easily spoof the content type and upload arbitrary files.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1367"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-php github-light" data-language="php" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token">[</span><span class="token" style="color: #d73a49;">...</span><span class="token">]</span><span class="token">
</span></span><span class="line"><span class="token" style="color: #d73a49;">--</span><span class="token" style="color: #d73a49;">--</span><span class="token" style="color: #d73a49;">--</span><span class="token" style="color: #d73a49;">--</span><span class="token" style="color: #d73a49;">--</span><span class="token" style="color: #d73a49;">--</span><span class="token" style="color: #d73a49;">--</span><span class="token" style="color: #d73a49;">--</span><span class="token" style="color: #d73a49;">--</span><span class="token" style="color: #d73a49;">--</span><span class="token" style="color: #d73a49;">--</span><span class="token" style="color: #d73a49;">--</span><span class="token" style="color: #d73a49;">--</span><span class="token" style="color: #d73a49;">--</span><span class="token" style="color: #d73a49;">-</span><span class="token" style="color: #005cc5;">235905183813478547083317251969</span><span class="token">
</span></span><span class="line"><span class="token" style="color: #005cc5;">Content</span><span class="token" style="color: #d73a49;">-</span><span class="token" style="color: #005cc5;">Disposition</span><span class="token">:</span><span class="token"> </span><span class="token" style="color: #005cc5;">form</span><span class="token" style="color: #d73a49;">-</span><span class="token" style="color: #005cc5;">data</span><span class="token">;</span><span class="token"> </span><span class="token" style="color: #005cc5;">name</span><span class="token" style="color: #d73a49;">=</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">file</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">;</span><span class="token"> </span><span class="token" style="color: #005cc5;">filename</span><span class="token" style="color: #d73a49;">=</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">shell.exe</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">
</span></span><span class="line"><span class="token" style="color: #005cc5;">Content</span><span class="token" style="color: #d73a49;">-</span><span class="token" style="color: #005cc5;">Type</span><span class="token">:</span><span class="token"> </span><span class="token" style="color: #005cc5;">application</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">pdf</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">{</span><span class="token" style="color: #005cc5;">any_malicious_content_here</span><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">[</span><span class="token" style="color: #d73a49;">...</span><span class="token">]</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1370"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1368">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1369'
	>
	Another feature in this application allowed users to store website links as resources, along with a preview function. Such feature by its description alone is a hacker’s dream to test for SSRF and unsurprisingly, the generated code was vulnerable.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1373"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1371">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1372'
	>
	While the preview was rendered inside an iframe, the backend still made unrestricted requests, making blind SSRF fully exploitable. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1376"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-1374"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-1375">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2026/02/image6.webp"
					class="image__img block-media__image-img"
					alt="Node.js code showing SSRF-vulnerable link preview endpoint that makes unrestricted backend requests without URL validation, exploitable via blind SSRF"
										height="299"
															width="893"
										loading="lazy"
					 />
					</picture>

	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1379"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1377">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1378'
	>
	Despite additional issues, such as an insecure CSP configuration and predictable secrets, this application was still an improvement over the previous one.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1382"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1380">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1381'
	>
	However, several security measures were either ineffective against real attacks or failed because the AI didn’t anticipate certain attack scenarios at all.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1385"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1383">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-1384'
	>
	<strong>Niche Vault: Not the Fort Knox just yet</strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1388"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1386">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1387'
	>
	The third application is Niche Vault, a platform that lets hobbyists log, browse, and share items from their personal collections, complete with individual profile pages.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1391"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1389">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1390'
	>
	On the administrative side, it includes full user management capabilities, such as deleting, suspending, or banning accounts, along with basic analytics and the ability to publish site-wide announcements.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1394"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1392">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1393'
	>
	For this project, I placed a strong emphasis on security from the outset.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1397"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1395">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1396'
	>
	I instructed the AI to strictly adhere to OWASP WSTG guidelines and OWASP best practices, ensuring that every feature was analyzed for potential attack vectors and that appropriate mitigations were implemented from the outset. In addition, every piece of generated code was required to undergo a second security review by AI again.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1400"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1398">
	<p	class='typography typography--size-16-text-roman typography--is-highlighted js-typography block-typography__typography'
	data-id='es-1399'
	>
	<mark><em><em><em><em><em><em>&lt;web_application&gt; A minimal web application designed for hobbyists to log, manage, view, and share items from their personal collections, such as vinyl records, comics, or similar collectibles. &lt;/web_application&gt; </em></em></em></em></em></em></mark></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1403"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1401">
	<p	class='typography typography--size-16-text-roman typography--is-highlighted js-typography block-typography__typography'
	data-id='es-1402'
	>
	<mark><em><em><em><em><em><em>&#8230;web application features&#8230; </em></em></em></em></em></em></mark></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1406"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1404">
	<p	class='typography typography--size-16-text-roman typography--is-highlighted js-typography block-typography__typography'
	data-id='es-1405'
	>
	<mark><em><em><em><em><em><em>&lt;security &#8211; HIGH priority&gt; Security is the highest priority. Ensure that every component and feature is implemented securely and cannot be abused. Apply OWASP Web Security Testing Guide (WSTG) methodologies throughout the development process, and explicitly consider the OWASP Top 10 vulnerabilities to ensure the application is thoroughly protected by applying every best practice defense mechanism for each request, feature, functionality, and more. &lt;/security &#8211; HIGH priority&gt;</em></em></em></em></em></em></mark></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1409"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1407">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1408'
	>
	This time, the AI generated a web application using Python (<em>although I had to manually fix the code in several places</em>) with the following tech stack:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1412"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-1410">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-1411'
	>
	<li>Frontend: <em>HTML, Jinja2 (templating engine), Bootstrap</em></li><li>Backend: <em>Python, Flask</em></li><li>API: <em>REST (implicitly created by Flask routes)</em></li><li>Database: <em>SQLite, accessed via SQLAlchemy</em></li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1415"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1413">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1414'
	>
	The following image shows the generated web application with its functionalities implemented.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1418"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-1416"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-1417">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2026/02/image7.webp"
					class="image__img block-media__image-img"
					alt="Screenshot of AI-generated Niche Vault hobbyist collection tracker app built with OWASP security guidance, showing My Collection dashboard with Export CSV button"
										height="498"
															width="990"
										loading="lazy"
					 />
					</picture>

	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1421"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1419">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1420'
	>
	User input was well protected across the board, and the application even included safeguards against SSTI attacks, which is especially important given its use of Jinja2. Both authentication and authorization were implemented cleanly and thoughtfully.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1423"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-30-text js-typography block-highlighted-text__typography'
	data-id='es-1422'
	>
	<strong>After explicitly requiring adherence to security guidelines and best practices, with a second security review step mandated for all generated code, the AI produced a robust application that exceeded my expectations. However, even here, vulnerabilities surfaced.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1426"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1424">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1425'
	>
	The application was not without flaws. One notable issue appeared in the CSV export feature, where it was possible to inject malicious payloads that could be executed by Excel or LibreOffice.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1429"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1427">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1428'
	>
	As shown in the image below, the relevant code lacks any form of input sanitization, leaving it vulnerable to CSV injection attacks.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1432"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1430">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1431'
	>
	As a result, an attacker can embed a malicious payload. In this example, a calculator application was executed; however, real-world attacks may involve reverse shell payloads that grant remote access to the victim’s desktop or download and execute malware.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1434"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-php github-light" data-language="php" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token" style="color: #d73a49;">=</span><span class="token" style="color: #005cc5;">cmd</span><span class="token" style="color: #d73a49;">|</span><span class="token" style="color: #032f62;">&#039;</span><span class="token" style="color: #032f62;"> /C calc</span><span class="token" style="color: #032f62;">&#039;</span><span class="token" style="color: #d73a49;">!</span><span class="token" style="color: #032f62;">&#039;</span><span class="token" style="color: #032f62;">A1</span><span class="token" style="color: #032f62;">&#039;</span><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1437"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1435">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1436'
	>
	As shown in the image below, the payload is evaluated when the CSV file is opened, causing the calculator process to be launched.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1440"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-1438"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-1439">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2026/02/image8.webp"
					class="image__img block-media__image-img"
					alt="Proof-of-concept screenshot showing CSV injection attack: malicious payload in exported file launches Windows Calculator via Excel DDE, demonstrating real-world exploit risk"
										height="324"
															width="884"
										loading="lazy"
					 />
					</picture>

	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1442"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-30-text js-typography block-highlighted-text__typography'
	data-id='es-1441'
	>
	It goes without saying that the following prerequisites are required for the attack to work: <br />
<br />
1. Dynamic Data Exchange (DDE) needs to be enabled. <br />
<br />
2. Victim needs to enable such content to be opened after a few warnings. <br />
<br />
Similarly, for the LibreOffice, the &#8220;Evaluate formulas&#8221; options needs to be ticked.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1445"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1443">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1444'
	>
	In addition to the glaring CSV injection vulnerability, several critical endpoints lacked rate-limiting controls.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1448"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1446">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1447'
	>
	While the AI correctly implemented rate limiting for the registration and login endpoints, it failed to apply similar protections to the following endpoints, which attackers could exploit to perform potential denial-of-service (DoS) attacks as well as destructive behavior.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1450"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-html github-light" data-language="html" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token">/post/new
</span></span><span class="line"><span class="token">/admin/toogle_ban/{user_id}
</span></span><span class="line"><span class="token">/admin/delete_user/{user_id}
</span></span><span class="line"><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1453"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1451">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1452'
	>
	Additionally, the code contained a minor open redirect vulnerability, which could be exploited in phishing attack scenarios where an attacker can supply a malicious domain to the next URL argument.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1455"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-python github-light" data-language="python" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token">login_user</span><span class="token">(</span><span class="token">user</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token" style="color: #d73a49;">return</span><span class="token"> </span><span class="token">redirect</span><span class="token">(</span><span class="token">request</span><span class="token">.</span><span class="token">args</span><span class="token">.</span><span class="token">get</span><span class="token">(</span><span class="token" style="color: #032f62;">&#039;</span><span class="token" style="color: #032f62;">next</span><span class="token" style="color: #032f62;">&#039;</span><span class="token">)</span><span class="token"> </span><span class="token" style="color: #d73a49;">or</span><span class="token"> </span><span class="token">url_for</span><span class="token">(</span><span class="token" style="color: #032f62;">&#039;</span><span class="token" style="color: #032f62;">dashboard</span><span class="token" style="color: #032f62;">&#039;</span><span class="token">)</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1458"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1456">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1457'
	>
	<strong>In conclusion, even when provided with a highly detailed prompt that explicitly instructs the AI to generate secure code, it is still likely to fall short in other areas or to overlook security considerations in certain features altogether.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1461"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1459">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1460'
	>
	Without precise, feature-specific security requirements, the AI tends to leave parts of the application insufficiently protected.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1464"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1462">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1463'
	>
	As demonstrated in this example, it successfully sanitized input fields, prevented SQL injection, and applied several other best practices, yet still failed to implement comprehensive, end-to-end security.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1467"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1465">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1466'
	>
	Ultimately, these gaps resulted in additional vulnerabilities despite the overall focus on secure development.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1470"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1468">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-1469'
	>
	<strong>The secret tokens predictability game</strong></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1473"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1471">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1472'
	>
	While generating multiple web applications, I noticed a recurring pattern: AI models frequently produce “secret” tokens and keys that follow similar structures and wording.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1476"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1474">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1475'
	>
	This observation told me to take a deeper look into how predictable these generated secrets can be.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1479"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1477">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1478'
	>
	For example, when further creating even simpler web applications, the following tokens were generated in docker-compose and other configurational files:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1481"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-php github-light" data-language="php" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token" style="color: #005cc5;">dev</span><span class="token" style="color: #d73a49;">-</span><span class="token" style="color: #005cc5;">key</span><span class="token" style="color: #d73a49;">-</span><span class="token" style="color: #005cc5;">change</span><span class="token" style="color: #d73a49;">-</span><span class="token" style="color: #005cc5;">in</span><span class="token" style="color: #d73a49;">-</span><span class="token" style="color: #005cc5;">prod</span><span class="token" style="color: #d73a49;">-</span><span class="token" style="color: #005cc5;">982374</span><span class="token">
</span></span><span class="line"><span class="token" style="color: #005cc5;">change_this_to_something_long_and_random_12345</span><span class="token">
</span></span><span class="line"><span class="token" style="color: #005cc5;">your_ultra_secure_random_string_here</span><span class="token">
</span></span><span class="line"><span class="token" style="color: #005cc5;">must_be_changed_to_secure_key_987123</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1484"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1482">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1483'
	>
	While these values may not appear in common brute-force wordlists (such as those targeting JWT secrets and other), they are not cryptographically secure and I could potentially see them being used.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1486"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-30-text js-typography block-highlighted-text__typography'
	data-id='es-1485'
	>
	<strong>The real risk is not that an attacker brute-forces a single secret, but that AI-generated applications at scale may share similar default or placeholder secrets that are not cryptographically secure. An attacker could leverage this predictability by compiling lists of common AI-generated keys and testing them across mass-produced, “vibe-coded” web applications.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1489"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1487">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1488'
	>
	Overall, this demonstrates a plausible attacker strategy: using multiple AI models to generate and aggregate common secret placeholders, then testing them against large numbers of similarly generated applications.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1492"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1490">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-1491'
	>
	<strong>The verdict</strong></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1495"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1493">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1494'
	>
	Bottom line is:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1498"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1496">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1497'
	>
	<strong>Vibe coding is only as secure as the vibe coder’s understanding of potential vulnerabilities and their ability to instruct the AI to account for them.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1501"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1499">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1500'
	>
	When building an application using AI, it is critical to explicitly guide the model on the types of vulnerabilities that may arise in the generated code. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1504"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1502">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1503'
	>
	For instance, if you ask the AI to implement a file-upload feature, you must already provide clear requirements regarding file extensions, MIME-type validation, size limits, and other relevant mitigations.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1507"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1505">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1506'
	>
	The broader issue is that even the most detailed prompts do not guarantee secure output. AI can still generate insecure code or introduce subtle loopholes in unexpected places, and create critical business logic issues. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1509"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-30-text js-typography block-highlighted-text__typography'
	data-id='es-1508'
	>
	<strong>If you are using AI to accelerate development, the takeaway is not to avoid it. It is to treat it as a powerful assistant, not a security authority. Security remains a deliberate engineering discipline, not an emergent property of better prompts.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1512"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1510">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1511'
	>
	For this reason, it is highly recommended to conduct <a href="https://infinum.com/cybersecurity/penetration-testing/" id="https://infinum.com/cybersecurity/penetration-testing/">real-world penetration testing</a>, in which security professionals review both the code and the application’s runtime behavior to identify and mitigate risks before they become exploitable.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1515"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1513">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1514'
	>
	Explore our <strong><a href="https://infinum.com/cybersecurity/">cybersecurity services</a></strong> — from penetration testing to security architecture — and partner with experts who can identify risks before they become exploitable.</p></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/security-gaps-in-vibe-coded-applications/">Security Gaps in Vibe-Coded Applications</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
					<item>
				<image>
					<url>19273649https://infinum.com/uploads/2025/12/img-databricks-hero-min.webp</url>
				</image>
				<title>From RAG to Riches: Strengthening Your Cloud AI Foundation with Databricks</title>
				<link>https://infinum.com/blog/scaling-ai-with-databricks/</link>
				<pubDate>Tue, 13 Jan 2026 16:32:40 +0000</pubDate>
				<dc:creator>Nikola Miladinović</dc:creator>
				<guid isPermaLink="false">https://infinum.com/?p=19273649</guid>
				<description>
					<![CDATA[<p>When AI workloads scale, cloud-native tools fall short on governance, versioning, and observability. Databricks fills those gaps without replacing your cloud.</p>
<p>The post <a href="https://infinum.com/blog/scaling-ai-with-databricks/">From RAG to Riches: Strengthening Your Cloud AI Foundation with Databricks</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-1632"
	 data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			<div class="block-blog-content js-block-blog-content">
	
<div class="block-blog-content-sidebar" data-id="es-1518">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1521"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1519">
	<p	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-1520'
	>
	<strong>Your RAG system works great until it doesn&#8217;t. As AI workloads scale, cloud-native tools begin to show cracks in governance, versioning, and observability. We explore how Databricks fills these gaps without replacing your existing AWS or Azure infrastructure.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1524"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1522">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1523'
	>
	Most teams already run reliable AI workloads on AWS or Azure. These platforms come with mature services that power modern production systems. Azure OpenAI, Cognitive Search, Blob Storage, AWS Bedrock, OpenSearch, and S3 all support high-quality RAG architectures and handle identity, networking, scaling, and operational reliability with ease.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1527"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1525">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1526'
	>
	But as AI systems grow, technical demands increase, data volumes expand, new document sources emerge, multiple teams work with the same information, and models evolve more frequently. That’s when cracks start to show. Cloud-native tools, built primarily for storage, compute, and serving, struggle to keep up. They lack unified governance, lineage tracking, and transformation pipelines needed to maintain consistency across growing AI workloads. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1530"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1528">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1529'
	>
	The challenge then shifts from building a functional RAG system to orchestrating a governed data foundation, exactly what <strong><a href="https://infinum.com/artificial-intelligence/custom-solutions/">custom AI solutions</a></strong> are designed to address.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1532"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-1531'
	>
	At Infinum, we use Databricks as part of our <strong><a href="https://infinum.com/artificial-intelligence/data-engineering/">data engineering practice</a></strong> to future-proof our clients&#8217; AI architecture. We&#8217;ll walk you through its core capabilities, <em>brick by brick</em>, to show you how they work together to help you scale your cloud AI with confidence.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1535"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1533">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-1534'
	>
	<strong>Unity Catalog: one layer to rule them all (your data, models, and vectors)</strong></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1538"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1536">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1537'
	>
	<a href="https://www.databricks.com/product/unity-catalog" target="_blank" rel="noreferrer noopener">Unity Catalog</a> is the central governance and metadata layer of the Databricks platform. It brings data, models, vector indexes, and functions under a single, consistent structure, so everything is defined, tracked, and secured in one place. This means simplified permission management and the elimination of fragmentation caused by different services each maintaining their own access rules.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1541"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1539">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1540'
	>
	 Unity Catalog also automatically captures lineage, making it easy to trace how data flows through each stage of your AI pipeline, from ingestion to preprocessing, embedding, retrieval, and inference.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1544"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1542">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1543'
	>
	The result is a unified and predictable governance model that reduces complexity and supports reliable AI development across teams and cloud environments.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1547"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1545">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-1546'
	>
	<strong>From unversioned storage to reproducible data with Delta Lake</strong></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1550"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1548">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1549'
	>
	With governance handled by Unity Catalog, the next layer to stabilize is storage itself. RAG systems thrive on structure and stability. But in practice, documents change frequently, models are retrained, and embeddings are regenerated. Without versioning and transactional integrity, it’s hard to explain model behavior or validate changes.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1553"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1551">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1552'
	>
	Delta Lake solves this challenge by layering ACID guarantees, schema enforcement, and time travel on top of cloud storage. Each Delta table becomes a versioned source of truth for both structured data from databases and unstructured data like PDFs and HTML. Ingestion becomes predictable instead of brittle. Teams can replay experiments without guessing which files existed at a given point in time. Even unstructured content can be governed just like structured tables, using managed volumes.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1556"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1554">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1555'
	>
	For teams prioritizing reproducibility and transparency, Delta Lake adds the versioning and transactional guarantees that object storage alone cannot provide.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1559"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1557">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-1558'
	>
	<strong>Why retrieval belongs next to your data</strong></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1562"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1560">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1561'
	>
	With stable, versioned data in place, the next challenge is fast, reliable retrieval. Some engineering teams choose to complement their existing retrieval stack with Databricks Vector Search, especially when co-locating retrieval with the underlying data provides a performance or governance advantage. Integrating retrieval into the lakehouse platform offers several benefits:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1565"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-1563">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-1564'
	>
	<li><strong>Synchronized indexes: </strong>Vector indexes stay in sync with the Delta tables that feed them.</li><li><strong>Automatic embedding updates:</strong> Embeddings can be configured to refresh automatically when source documents change.</li><li><strong>Lower latency:</strong> Retrieval queries run in the same compute environment as the data, reducing round-trip times and response times.</li><li><strong>Consistent governance:</strong> Indexes inherit permissions, lineage, and catalog rules, keeping access control and tracking consistent.</li><li><strong>Easier evaluation workflows: </strong>Co-located retrieval is ideal for comparing embedding models or running offline simulations to detect drift.</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1568"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-1566"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-1567">
	<picture class="image__picture block-media__image-picture">
								
			<source
				srcset=https://infinum.com/uploads/2026/01/in-article-databricks_correction-2-1400x753.webp				media='(max-width: 699px)'
				type=image/webp								height="753"
												width="1400"
				 />
								
			<source
				srcset=https://infinum.com/uploads/2026/01/in-article-databricks_correction-2-2400x1291.webp				media='(max-width: 1199px)'
				type=image/webp								height="1291"
												width="2400"
				 />
												<img
					src="https://infinum.com/uploads/2026/01/in-article-databricks_correction-2.webp"
					class="image__img block-media__image-img"
					alt=""
										height="1338"
															width="2488"
										loading="lazy"
					 />
					</picture>

	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1571"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1569">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1570'
	>
	Unity Catalog handles governance, Delta Lake tracks every version from raw files to embeddings, and Databricks Vector Search continuously syncs with your data as it changes.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1574"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1572">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1573'
	>
	For teams focused on performance, governance, and evaluation, this level of integration adds speed and structure to otherwise complex retrieval pipelines.<strong><br />
</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1577"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1575">
	<h3	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-1576'
	>
	<strong>Keep your models where your data is</strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1580"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1578">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1579'
	>
	Getting data and retrieval right is only part of the equation. Now’s the time to plug in the models.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1583"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1581">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1582'
	>
	Databricks Model Serving can help you deploy open-source foundation models, fine-tune custom variants, or run embedding models directly alongside their data, without bolting on separate infrastructure. Whether you&#8217;re working with large language models for generative AI or specialized embedding models for your RAG application, everything remains connected through Unity Catalog.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1586"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1584">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1585'
	>
	You can track the entire lifecycle of a model from initial training to production deployment. This enables a multi-model strategy, allowing you to select the best tools for each use case without introducing operational complexity.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1589"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1587">
	<h3	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-1588'
	>
	<strong>No more duct-taping your AI pipelines together</strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1592"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1590">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1591'
	>
	Modern retrieval-augmented generation workflows require more than just storage and compute. They need orchestration, monitoring, and continuous improvement loops. Databricks provides integrated tooling for the entire RAG architecture:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1595"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-1593">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-1594'
	>
	<li><strong>AI Playground:</strong> Quickly prototype and test different foundation models and prompts in an interactive environment. Experiment with how generative AI models respond using context from your data.</li><li><strong>Mosaic AI Agent Framework:</strong> Build <a href="https://infinum.com/artificial-intelligence/agent-development/" id="https://infinum.com/artificial-intelligence/agent-development/">intelligent agents</a> that go beyond simple Q&amp;A. These agents can perform complex, multi-step tasks by querying structured data, retrieving documents from vector stores, and synthesizing answers. For a deeper look at how agents connect to external systems, see our overview of <strong><a href="https://infinum.com/blog/model-context-protocols-mcp-ai-enabled-businesses/">Model Context Protocol and AI-enabled businesses</a></strong>.</li><li><strong>Databricks Workflows:</strong> Long-lived pipelines that ingest documents, clean them, segment them, embed them, index them, and validate them, all within the lakehouse. Keeping data-intensive steps in one place eliminates cross-service coordination overhead.<br />
</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1598"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1596">
	<h3	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-1597'
	>
	<strong>You can’t improve your system if you can’t observe it</strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1601"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1599">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1600'
	>
	As RAG systems mature, observability becomes just as critical as modeling itself. Retrieval performance shifts gradually. Embeddings drift as data evolves. Large language model answers change with new versions.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1604"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1602">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1603'
	>
	<a href="https://www.databricks.com/product/machine-learning/lakehouse-monitoring" target="_blank" rel="noreferrer noopener">Lakehouse Monitoring</a> lets you track everything from data quality to model behavior, all in one place. Instead of piecing together logs across disconnected services, you get a single, consolidated view of AI behavior in production, which pairs well with <strong><a href="https://infinum.com/blog/ai-data-visualization/">AI data visualization</a></strong> approaches for surfacing those insights to stakeholders.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1607"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-1605"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-1606">
	<picture class="image__picture block-media__image-picture">
								
			<source
				srcset=https://infinum.com/uploads/2025/12/in-article-databricks-3-novo-1400x753.webp				media='(max-width: 699px)'
				type=image/webp								height="753"
												width="1400"
				 />
								
			<source
				srcset=https://infinum.com/uploads/2025/12/in-article-databricks-3-novo-2400x1291.webp				media='(max-width: 1199px)'
				type=image/webp								height="1291"
												width="2400"
				 />
												<img
					src="https://infinum.com/uploads/2025/12/in-article-databricks-3-novo.webp"
					class="image__img block-media__image-img"
					alt=""
										height="1338"
															width="2488"
										loading="lazy"
					 />
					</picture>

	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1610"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1608">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1609'
	>
	A user query is enriched with relevant context from Vector Search, answered by a large language model, and continuously evaluated through Lakehouse Monitoring to ensure data quality, retrieval relevance, and response reliability.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1613"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1611">
	<h3	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-1612'
	>
	<strong>A question every AI team should ask </strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1616"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1614">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1615'
	>
	If your AI workload doubled in size tomorrow, would your current data and governance structures scale with the same confidence as your application layer?</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1619"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1617">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1618'
	>
	If the answer isn’t a clear yes, it might be time to lay a stronger foundation with Databricks.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1621"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-36-text js-typography block-highlighted-text__typography'
	data-id='es-1620'
	>
	<strong><strong>Introducing Databricks into an existing environment is not a platform replacement. It is an architectural enhancement that consolidates governance, data reliability, model lifecycle management, and observability. </strong></strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1624"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1622">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1623'
	>
	The underlying cloud continues to operate application and networking layers, while Databricks provides the durable, governed data foundation needed for long-term AI operations. With <a href="https://6sense.com/tech/big-data-analytics/databricks-market-share" target="_blank" rel="noreferrer noopener">Databricks capturing ~17% of the data warehouse market</a> as of November 2025, its role in enterprise AI infrastructure continues to grow.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1627"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1625">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1626'
	>
	If you&#8217;re ready to accelerate your RAG architecture or take the next leap in your AI platform, <a href="https://infinum.com/artificial-intelligence/" id="https://infinum.com/artificial-intelligence/" target="_blank" rel="noreferrer noopener">our team can help you build a modern, scalable foundation designed for long-term success.</a></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1630"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1628">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1629'
	>
	See how we built a <a href="https://infinum.com/work/midtown-business-intelligence-platform/">real-time data intelligence platform for Midtown Athletic Club</a> as an example of data engineering in practice. For examples of what these production data systems enable at the user layer, see our case studies on <a href="https://infinum.com/blog/ai-knowledge-hubs/">AI-driven knowledge hubs</a> built for enterprise clients.</p></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/scaling-ai-with-databricks/">From RAG to Riches: Strengthening Your Cloud AI Foundation with Databricks</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
					<item>
				<image>
					<url>19273808https://infinum.com/uploads/2025/12/img-Ai-automation-hero-min-2.webp</url>
				</image>
				<title>AI Automation: What It Is and How AI-Powered Workflow Helps Your Business</title>
				<link>https://infinum.com/blog/ai-automation/</link>
				<pubDate>Mon, 22 Dec 2025 12:16:50 +0000</pubDate>
				<dc:creator>Tanja Bezjak</dc:creator>
				<guid isPermaLink="false">https://infinum.com/?p=19273808</guid>
				<description>
					<![CDATA[<p>Discover what AI automation is and how it helps your business boost efficiency, streamline workflows, and make smarter data-driven decisions.</p>
<p>The post <a href="https://infinum.com/blog/ai-automation/">AI Automation: What It Is and How AI-Powered Workflow Helps Your Business</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-1806"
	 data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			<div class="block-blog-content js-block-blog-content">
	
<div class="block-blog-content-sidebar" data-id="es-1633">
	

</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1636"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1634">
	<p	class='typography typography--size-36-text js-typography block-typography__typography'
	data-id='es-1635'
	>
	Businesses are enthusiastically adopting artificial intelligence, with McKinsey reporting that <a href="https://www.mckinsey.com/capabilities/quantumblack/our-insights/the-state-of-ai#:~:text=In%20the%20latest%20survey%2C%2078%20percent%20of%20respondents%20say%20their%20organizations%20use%20AI%20in%20at%20least%20one%20business%20function" target="_blank" rel="noreferrer noopener">78% of companies now use at least one AI tool</a>. Not surprisingly, the adoption rate is even higher in <a href="https://infinum.com/news/infinum-embeds-ai-across-product-development/" target="_blank" rel="noreferrer noopener">tech companies</a>. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1639"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1637">
	<p	class='typography typography--size-20-text-roman js-typography block-typography__typography'
	data-id='es-1638'
	>
	With this information in mind, it is only natural that <strong>AI automation</strong> is a much sought-after innovation.<br><br>Of course, you might want to understand it better before you decide you need it for your operations. We are here to help you with that.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1642"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1640">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-1641'
	>
	What is AI automation?</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1645"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1643">
	<p	class='typography typography--size-20-text-roman js-typography block-typography__typography'
	data-id='es-1644'
	>
	AI automation is the process of using advanced technologies to make standard automated operations smarter and context-aware. It reduces the manual effort your team needs to put in by using AI and intelligent automation for tasks such as data analysis, report generation, and workflow optimization.<br><br>AI automation uses a mix of software, data, and decision logic to quickly and automatically execute tasks that normally require time and human judgment.<br><br>The specific technologies involved depend entirely on the business case: sometimes it’s simple rules, sometimes it’s document processing, and in certain cases it can include <a href="https://infinum.com/machine-learning-development-services/" id="https://infinum.com/machine-learning-development-services/">machine-learning</a> or NLP models. The goal is always to make a workflow faster, more consistent, and less manually intensive.<br><br>Instead of predicting the “right” action on its own, AI supports the decisions that have already been defined. It can classify information, extract meaning from text or images, or surface relevant insights so that the system can follow the workflow the business has set.<br><br>When conditions change, the model can adjust its behavior within those boundaries, which makes it more flexible than fixed, step-by-step scripting.<br>As the system is used, its components can be refined through controlled cycles of periodic updates or retraining based on new data. <br><br>In short, AI automation expands what traditional automation can do by helping systems understand inputs and choose the right path in a defined workflow, all within clear business rules and oversight.<br><br>Since the process is still responsive, AI automation can be very useful in areas where you want constant monitoring. In cybersecurity, it can spot <a href="https://infinum.com/blog/cybersecurity-trends-2026/" id="https://infinum.com/blog/cybersecurity-trends-2026/">suspicious behavior</a> and trigger alerts instantly. In fraud detection, it can analyze transactions in real time to prevent losses.<br><br>Similarly, it can also be very useful for initial screening tasks, where the technology can decide who to send the problem to. For example, AI can be used to scan <a href="https://infinum.com/healthcare-application-development-services/" id="https://infinum.com/healthcare-application-development-services/">medical test reports</a> and X-rays to make initial diagnoses, significantly reducing manual effort. They then forward it to the specialists who verify it and recommend treatment. <br><br>This makes the process of getting healthcare quicker for patients and frees up healthcare providers to focus on the people who need them most.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1648"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div	class="card-simple js-card-simple card-simple--is-ad block-card__card-simple card-simple__content-align--left"
	data-id="es-1646"
	>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<p	class='typography typography--size-36-text js-typography card-simple__heading'
	data-id='es-1647'
	>
	Curious as to how technology professionals use AI? Here are the <a href="https://infinum.com/blog/ai-agency-ai-tools/" target="_blank" rel="noreferrer noopener">five ways we use AI solutions</a> at Infinum.</p>		</div>

			</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1651"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1649">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-1650'
	>
	How is AI automation different from traditional automation?</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1654"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1652">
	<p	class='typography typography--size-20-text-roman js-typography block-typography__typography'
	data-id='es-1653'
	>
	Traditional Automation, without AI, is a mechanical process that follows fixed and predefined rules. For example, a conveyor belt is automated: You flip a switch, and it starts moving. It might be programmed to stop if there is no weight on it, but it cannot react to a situation for which it was not explicitly programmed.<br><br>In contrast, AI-driven process automation can adapt its behavior based on input: it can interpret unstructured text, classify information, or extract relevant details, allowing the workflow to respond appropriately without manual intervention. The automation still follows defined steps, but the AI components enable the system to process a wider range of human input, formats, and real-world variability.<br><br>A simple example is a smart chatbot. The user enters a query using natural language, and the tool interprets the intent to create an appropriate response accordingly, leveraging large language models.<br><br>At a slightly more advanced level, <a href="https://infinum.com/artificial-intelligence/agent-development/" id="https://infinum.com/artificial-intelligence/agent-development/">AI agents</a> take this a step further. Agentic AI can autonomously or semi-autonomously automate entire processes rather than individual tasks. They can plan, reason, and even collaborate with other systems or humans to achieve their goals.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1657"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1655">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-1656'
	>
	Intelligent automation: Taking AI automation further</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1660"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1658">
	<p	class='typography typography--size-20-text-roman js-typography block-typography__typography'
	data-id='es-1659'
	>
	Intelligent automation (IA) is the next level of AI automation. Here, instead of tasks or processes, entire ecosystems are automated. They can run, adapt, and improve over time, all on their own.<br><br>There are three key technologies that power these digital workers:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1664"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div	class="card-simple js-card-simple block-card__card-simple card-simple__content-align--left"
	data-id="es-1661"
	>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<h3	class='typography typography--size-20-text js-typography card-simple__heading'
	data-id='es-1662'
	>
	Robotic process automation (RPA)</h3>		</div>

		<p	class='typography typography--size-20-text-roman js-typography card-simple__paragraph'
	data-id='es-1663'
	 id='es-1661-paragraph'>
	This component is made up of software, not hardware, “robots” that automate repetitive, rule-based digital tasks. For example, they may be used to copy data between systems, generate reports, or update customer records without requiring any creativity or strategy. In these cases, RPA mimics human actions to complete these jobs, while saving you time and reducing manual errors.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1668"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div	class="card-simple js-card-simple block-card__card-simple card-simple__content-align--left"
	data-id="es-1665"
	>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<h3	class='typography typography--size-20-text js-typography card-simple__heading'
	data-id='es-1666'
	>
	Business process management (BPM)</h3>		</div>

		<p	class='typography typography--size-20-text-roman js-typography card-simple__paragraph'
	data-id='es-1667'
	 id='es-1665-paragraph'>
	BPM tools help visualize processes so you can identify bottlenecks and orchestrate work between humans, bots, and systems. This visualization helps you define how tasks and data flow across your organization, reducing complex workflows that slow productivity.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1672"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div	class="card-simple js-card-simple block-card__card-simple card-simple__content-align--left"
	data-id="es-1669"
	>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<h3	class='typography typography--size-20-text js-typography card-simple__heading'
	data-id='es-1670'
	>
	Artificial intelligence</h3>		</div>

		<p	class='typography typography--size-20-text-roman js-typography card-simple__paragraph'
	data-id='es-1671'
	 id='es-1669-paragraph'>
	This is the layer that adds reasoning, learning, and adaptability. AI analyzes data to identify patterns and make proactive decisions based on context. AI includes technologies such as ML, NLP, and computer vision.<br><br>With these components working together, you can move beyond automating isolated tasks. Intelligent automation can handle end-to-end workflows. It can detect issues, trigger corrective actions, and even enhance business outcomes. Getting there requires AI that&#8217;s properly integrated into your systems, not bolted on. Our <strong><a href="https://infinum.com/artificial-intelligence/custom-solutions/">custom AI solutions</a></strong> are built for exactly this kind of production-grade, workflow-embedded deployment.<br><br>Essentially, while AI automation makes individual processes smarter, intelligent automation transforms how entire business operations function. For AI agents to operate reliably in these workflows, they need live access to the data they&#8217;re acting on — the infrastructure that makes this possible is explained in our overview of <a href="https://infinum.com/blog/model-context-protocols-mcp-ai-enabled-businesses/">Model Context Protocols</a>.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1675"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1673">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-1674'
	>
	How AI automation works</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1678"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1676">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1677'
	>
	To create AI automation, you need to integrate processes with artificial intelligence. The processes create the framework around which algorithms are built.<br><br>These algorithms use the same decision-making logic that a person would, and are trained on business data. This informs them of the type of information and the patterns to expect. <br><br>The logic built into them allows them to use new data to spot these patterns and make predictions. Meanwhile, ML allows them to learn from it, so the systems continuously refine and improve their results.<br><br>Here is a quick overview of the parts that come together to make this technology work: </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1682"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div	class="card-simple js-card-simple block-card__card-simple card-simple__content-align--left"
	data-id="es-1679"
	>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<h3	class='typography typography--size-24-text js-typography card-simple__heading'
	data-id='es-1680'
	>
	Foundational models and cloud services</h3>		</div>

		<p	class='typography typography--size-20-text-roman js-typography card-simple__paragraph'
	data-id='es-1681'
	 id='es-1679-paragraph'>
	This infrastructure enables AI automation to function and scale effectively, with foundational models serving as the “thinking” component and <a href="https://infinum.com/cloud-application-development-services/" id="https://infinum.com/cloud-application-development-services/">cloud services</a> as the delivery mechanism.<br><br>For organizations where data privacy or compliance requirements make cloud dependency a concern, running foundational models on your own infrastructure is a viable path — our guide to <a href="//infinum.com/blog/self-hosting-ai-models-a-practical-guide/" id="ttps://infinum.com/blog/self-hosting-ai-models-a-practical-guide/">self-hosting AI models</a> covers the practical tradeoffs involved.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1686"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div	class="card-simple js-card-simple block-card__card-simple card-simple__content-align--left"
	data-id="es-1683"
	>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<h3	class='typography typography--size-24-text js-typography card-simple__heading'
	data-id='es-1684'
	>
	Data collection and processing</h3>		</div>

		<p	class='typography typography--size-20-text-roman js-typography card-simple__paragraph'
	data-id='es-1685'
	 id='es-1683-paragraph'>
	Data is the fuel that powers your system. Both structured and unstructured data need to be collected and made ready to be used in AI training.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1690"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div	class="card-simple js-card-simple block-card__card-simple card-simple__content-align--left"
	data-id="es-1687"
	>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<h3	class='typography typography--size-24-text js-typography card-simple__heading'
	data-id='es-1688'
	>
	AI model training</h3>		</div>

		<p	class='typography typography--size-20-text-roman js-typography card-simple__paragraph'
	data-id='es-1689'
	 id='es-1687-paragraph'>
	The AI-ready data is used to “teach” the model how to complete its assigned tasks, using the following techniques:</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1693"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-1691">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-1692'
	>
	<li><strong>Machine learning algorithms:</strong> While not all automation solutions will include ML elements, some will use it to further optimize their operations and enable additional features, as needed. In these cases, automation solutions will be empowered with ML algorithms, including:</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1696"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-1694">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-1695'
	>
	<li><strong>Supervised learning</strong>: The model is given explicitly labeled data, so it learns how to categorize it.</li><li><strong>Unsupervised learning</strong>: The training data is unlabeled, and the model must find patterns and meaning on its own.</li><li><strong>Reinforcement learning</strong>: The model learns from the feedback it receives while interacting with its environment.</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1699"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-1697">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-1698'
	>
	<li><strong>Deep learning</strong>: A subset of ML that uses neural networks with many layers to automatically discover features and patterns in large volumes of data.</li><li><strong>Natural language processing</strong>: The ability of a model to understand and interpret the way people talk and respond in a similar manner.</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1703"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div	class="card-simple js-card-simple block-card__card-simple card-simple__content-align--left"
	data-id="es-1700"
	>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<h3	class='typography typography--size-24-text js-typography card-simple__heading'
	data-id='es-1701'
	>
	Execution</h3>		</div>

		<p	class='typography typography--size-20-text-roman js-typography card-simple__paragraph'
	data-id='es-1702'
	 id='es-1700-paragraph'>
	The model is deployed into the workflow, where it uses the decision engine to make predictions, and applies these to determine how to action the next step.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1707"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div	class="card-simple js-card-simple block-card__card-simple card-simple__content-align--left"
	data-id="es-1704"
	>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<h3	class='typography typography--size-24-text js-typography card-simple__heading'
	data-id='es-1705'
	>
	Continuous learning</h3>		</div>

		<p	class='typography typography--size-20-text-roman js-typography card-simple__paragraph'
	data-id='es-1706'
	 id='es-1704-paragraph'>
	Also known as lifelong or incremental learning, this allows the model to perpetually refine algorithms and improve results based on the new data it receives.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1713"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<a	class="card-simple js-card-simple card-simple--is-ad block-card__card-simple card-simple--has-link js-card-simple-link card-simple__content-align--left"
	data-id="es-1708"
	 href='https://infinum.com/blog/ai-strategy/'>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<p	class='typography typography--size-36-text js-typography card-simple__heading'
	data-id='es-1709'
	>
	Not sure about how to draft your AI strategy? Let us give you a hand.</p>		</div>

		<button	class="btn btn--color-infinum btn--size-small btn--width-default btn__icon-position--right card-simple__btn js-block-card-btn js-card-simple-link"
	data-id="es-1710"
	 tabindex='-1'>
		<div class="btn__inner">
					<div	class='typography typography--size-none js-typography btn__label'
	data-id='es-1711'
	>
	Read more</div>		
		<i
	class="icon btn__icon icon--size-16 icon--scale-100"
	 aria-hidden='true' data-name='arrow-right-16' data-id='es-1712'>
	<svg fill='none' height='16' viewBox='0 0 17 16' width='17' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><g stroke='currentColor' stroke-width='2'><path d='m.5 7.99999 14 .00001'/><path d='m9.23352 2.7251 5.97848 5.97852'/><path d='m9.23352 13.2744 5.97848-5.9785'/></g></svg></i>	</div>
	</button>	</div>
</a>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1716"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1714">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-1715'
	>
	Benefits of AI-powered automation in your business</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1719"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1717">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1718'
	>
	We already know that AI automation can free up your human workers by taking over routine tasks. Let us take a look at how this can benefit your business:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1723"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div	class="card-simple js-card-simple block-card__card-simple card-simple__content-align--left"
	data-id="es-1720"
	>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<h3	class='typography typography--size-24-text js-typography card-simple__heading'
	data-id='es-1721'
	>
	Fewer errors, more accuracy</h3>		</div>

		<p	class='typography typography--size-20-text-roman js-typography card-simple__paragraph'
	data-id='es-1722'
	 id='es-1720-paragraph'>
	Unlike people, AI does not get bored or distracted. Once a system has been trained, it will carry out tasks consistently, without losing focus or requiring much human intervention. As a result, you will see fewer or even zero mistakes. Automation with AI can empower your workers to deliver better, faster results, especially when tasks are repetitive.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1727"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div	class="card-simple js-card-simple block-card__card-simple card-simple__content-align--left"
	data-id="es-1724"
	>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<h3	class='typography typography--size-24-text js-typography card-simple__heading'
	data-id='es-1725'
	>
	Faster operations</h3>		</div>

		<p	class='typography typography--size-20-text-roman js-typography card-simple__paragraph'
	data-id='es-1726'
	 id='es-1724-paragraph'>
	AI automation can complete even the most complex tasks in a matter of seconds. It helps your team deliver more work, but without a corresponding increase in mistakes. This improves efficiency across the board and eliminates redundant work, boosting your employees’ morale.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1731"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div	class="card-simple js-card-simple block-card__card-simple card-simple__content-align--left"
	data-id="es-1728"
	>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<h3	class='typography typography--size-24-text js-typography card-simple__heading'
	data-id='es-1729'
	>
	Real-time responsiveness</h3>		</div>

		<p	class='typography typography--size-20-text-roman js-typography card-simple__paragraph'
	data-id='es-1730'
	 id='es-1728-paragraph'>
	AI can identify the new inputs and process them in the blink of an eye. This allows your business to adapt to changes and issues in real time. As a result, your operations stay agile, and any potential problems are caught by automated systems before they escalate.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1735"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div	class="card-simple js-card-simple block-card__card-simple card-simple__content-align--left"
	data-id="es-1732"
	>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<h3	class='typography typography--size-24-text js-typography card-simple__heading'
	data-id='es-1733'
	>
	Scalable growth</h3>		</div>

		<p	class='typography typography--size-20-text-roman js-typography card-simple__paragraph'
	data-id='es-1734'
	 id='es-1732-paragraph'>
	As your business grows, you need more hands on deck to complete the workload manually. Automating processes with AI, however, means you can handle more complex data, interactions, and transactions without hiring more staff. You might need to buy or rent more resources, but that will only be required if the growth is exponential.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1739"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div	class="card-simple js-card-simple block-card__card-simple card-simple__content-align--left"
	data-id="es-1736"
	>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<h3	class='typography typography--size-24-text js-typography card-simple__heading'
	data-id='es-1737'
	>
	Data-led decision-making</h3>		</div>

		<p	class='typography typography--size-20-text-roman js-typography card-simple__paragraph'
	data-id='es-1738'
	 id='es-1736-paragraph'>
	Artificial intelligence can analyze large data sets to find trends and enable predictive analytics. It helps you extract actionable insights from your business information. Most importantly, it does so quickly, often in real time. As a result, you can make informed decisions based on hard facts and numbers.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1743"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div	class="card-simple js-card-simple block-card__card-simple card-simple__content-align--left"
	data-id="es-1740"
	>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<h3	class='typography typography--size-24-text js-typography card-simple__heading'
	data-id='es-1741'
	>
	More time for human creativity</h3>		</div>

		<p	class='typography typography--size-20-text-roman js-typography card-simple__paragraph'
	data-id='es-1742'
	 id='es-1740-paragraph'>
	Not everything can be replaced with technology, but you can automate tedious work so that your human resources are free to focus on strategic or creative endeavors. It helps your people innovate and solve complex problems without worrying about “busy work.” That helps your business productivity and boosts employee morale and engagement.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1746"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1744">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-1745'
	>
	AI automation use cases</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1749"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1747">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1748'
	>
	Reading about benefits in an abstract sense does not paint a very clear picture. Here&#8217;s how businesses across industries are applying AI automation to solve their challenges:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1753"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div	class="card-simple js-card-simple block-card__card-simple card-simple__content-align--left"
	data-id="es-1750"
	>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<h3	class='typography typography--size-24-text js-typography card-simple__heading'
	data-id='es-1751'
	>
	Finance and accounting</h3>		</div>

		<p	class='typography typography--size-20-text-roman js-typography card-simple__paragraph'
	data-id='es-1752'
	 id='es-1750-paragraph'>
	The finance industry is heavily regulated, so accuracy and compliance are a priority. You also need to make quick, data-driven decisions. AI automation is the ideal solution here, reducing manual work and human error in data-heavy tasks.<br><br>One of its most important uses in financial services is to flag anomalies and detect potential fraud in real time. However, it can also reconcile transactions and automate expense reporting and invoice processing to save teams hours of administrative work.<br><br>The result is cleaner data, faster reporting, and improved financial visibility.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1757"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div	class="card-simple js-card-simple block-card__card-simple card-simple__content-align--left"
	data-id="es-1754"
	>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<h3	class='typography typography--size-24-text js-typography card-simple__heading'
	data-id='es-1755'
	>
	Healthcare and life sciences</h3>		</div>

		<p	class='typography typography--size-20-text-roman js-typography card-simple__paragraph'
	data-id='es-1756'
	 id='es-1754-paragraph'>
	Automated AI systems scan X-rays, lab results, and medical records to provide initial diagnoses. Urgent cases are prioritized and flagged for specialists to look at, while routine cases can be automatically given treatment plans. This reduces waiting times for patients and allows healthcare professionals to focus on direct care.<br><br>AI tools also streamline the administrative side, by automating appointment scheduling, patient record updates, and discharge documentation to save time and reduce paperwork.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1761"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div	class="card-simple js-card-simple block-card__card-simple card-simple__content-align--left"
	data-id="es-1758"
	>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<h3	class='typography typography--size-24-text js-typography card-simple__heading'
	data-id='es-1759'
	>
	Manufacturing and logistics</h3>		</div>

		<p	class='typography typography--size-20-text-roman js-typography card-simple__paragraph'
	data-id='es-1760'
	 id='es-1758-paragraph'>
	In manufacturing and logistics, automation technologies predict problems before they occur, to keep operations running smoothly. They monitor equipment performance to detect maintenance needs and automatically adjust production schedules. <br><br>These technologies can reroute shipments to optimize delivery times based on real-time conditions. The result: fewer delays, lower costs, and stronger supply chain resilience.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1765"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div	class="card-simple js-card-simple block-card__card-simple card-simple__content-align--left"
	data-id="es-1762"
	>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<h3	class='typography typography--size-24-text js-typography card-simple__heading'
	data-id='es-1763'
	>
	Marketing and sales</h3>		</div>

		<p	class='typography typography--size-20-text-roman js-typography card-simple__paragraph'
	data-id='es-1764'
	 id='es-1762-paragraph'>
	AI marketing automation personalizes engagement at scale. It segments audiences based on behavior and demographics to create tailored messages that deliver more engagement and results, improving customer experience. <br><br>AI-powered automation analyzes customer data to predict purchasing intent and suggest the best next action for each lead to improve conversion rates and help teams focus on high-value prospects. For customer-facing automation specifically, the conversation is shifting toward entirely new channels — our breakdown of <a href="https://infinum.com/blog/apps-in-chatgpt-and-the-apps-sdk/">ChatGPT Apps</a> covers how brands are building agentic experiences directly inside the ChatGPT interface.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1769"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div	class="card-simple js-card-simple block-card__card-simple card-simple__content-align--left"
	data-id="es-1766"
	>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<h3	class='typography typography--size-24-text js-typography card-simple__heading'
	data-id='es-1767'
	>
	Human resources</h3>		</div>

		<p	class='typography typography--size-20-text-roman js-typography card-simple__paragraph'
	data-id='es-1768'
	 id='es-1766-paragraph'>
	Automated tools can screen resumes to match candidates to roles. They can even handle initial communication. Once employees are onboarded, AI-driven HR systems can manage routine queries and update records automatically. <br><br>This leaves HR professionals free to focus on talent development and culture-building.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1773"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div	class="card-simple js-card-simple block-card__card-simple card-simple__content-align--left"
	data-id="es-1770"
	>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<h3	class='typography typography--size-24-text js-typography card-simple__heading'
	data-id='es-1771'
	>
	Customer service and support</h3>		</div>

		<p	class='typography typography--size-20-text-roman js-typography card-simple__paragraph'
	data-id='es-1772'
	 id='es-1770-paragraph'>
	AI automation tools streamline customer interactions. Chatbots and virtual assistants powered by generative AI development provide round-the-clock support. They handle common questions and route complex issues to the right human agent. <br><br>Meanwhile, customer service teams can spend their time on the conversations that need a human touch.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1776"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div	class="card-simple js-card-simple card-simple--is-ad block-card__card-simple card-simple__content-align--left"
	data-id="es-1774"
	>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<p	class='typography typography--size-36-text js-typography card-simple__heading'
	data-id='es-1775'
	>
	We helped the surgeons at Mount Sinai Hospital to identify prosthetic implants with an AI-powered app. Read more about it in our <a href="https://infinum.com/work/aidentyfy/" target="_blank" rel="noreferrer noopener">case study</a>.</p>		</div>

			</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1779"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1777">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-1778'
	>
	Challenges of implementing AI automation</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1782"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1780">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1781'
	>
	Implementing AI workflow automation solutions can be a great way to optimize your operations. However, the process requires careful planning, or it will not increase efficiency. <br><br>Here are some caveats to consider:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1786"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div	class="card-simple js-card-simple block-card__card-simple card-simple__content-align--left"
	data-id="es-1783"
	>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<h3	class='typography typography--size-24-text js-typography card-simple__heading'
	data-id='es-1784'
	>
	Data quality and accessibility</h3>		</div>

		<p	class='typography typography--size-20-text-roman js-typography card-simple__paragraph'
	data-id='es-1785'
	 id='es-1783-paragraph'>
	AI and automation systems are only as good as the data that powers them. If your data is outdated, inconsistent, or siloed across departments, your models will not deliver accurate results. This is the problem Databricks is specifically designed to address, and we cover how in our article on <strong><a href="https://infinum.com/blog/scaling-ai-with-databricks/">scaling AI with Databricks</a></strong>. Clean, structured, and accessible data is often a bigger hurdle than the technology itself.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1790"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div	class="card-simple js-card-simple block-card__card-simple card-simple__content-align--left"
	data-id="es-1787"
	>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<h3	class='typography typography--size-24-text js-typography card-simple__heading'
	data-id='es-1788'
	>
	Integration with existing systems</h3>		</div>

		<p	class='typography typography--size-20-text-roman js-typography card-simple__paragraph'
	data-id='es-1789'
	 id='es-1787-paragraph'>
	It is highly likely that your business runs on a combination of legacy platforms and custom software. Seamlessly integrate your business-critical software into your existing ecosystem with the help of a bespoke software development company.<br> <br>Without proper integration, you will find it hard to ensure that AI delivers insights and actions across your entire ecosystem. If you aren’t careful, automation efforts could potentially create new silos instead of eliminating them.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1794"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div	class="card-simple js-card-simple block-card__card-simple card-simple__content-align--left"
	data-id="es-1791"
	>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<h3	class='typography typography--size-24-text js-typography card-simple__heading'
	data-id='es-1792'
	>
	Skills and expertise gaps</h3>		</div>

		<p	class='typography typography--size-20-text-roman js-typography card-simple__paragraph'
	data-id='es-1793'
	 id='es-1791-paragraph'>
	You need more than coding knowledge to implement AI automation. You also need expertise in data engineering, process mapping, and user experience design, along with a clear understanding of your business goals. <br><br>Most teams don’t have all these capabilities in-house, which can make it hard to move from pilot projects to production-ready systems.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1798"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div	class="card-simple js-card-simple block-card__card-simple card-simple__content-align--left"
	data-id="es-1795"
	>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<h3	class='typography typography--size-24-text js-typography card-simple__heading'
	data-id='es-1796'
	>
	Ethics, compliance, and governance</h3>		</div>

		<p	class='typography typography--size-20-text-roman js-typography card-simple__paragraph'
	data-id='es-1797'
	 id='es-1795-paragraph'>
	AI systems must handle data responsibly. Bias, privacy concerns, and regulatory requirements can create significant risks if not addressed early. <br><br>Establishing strong governance practices, from data management to model transparency, is essential to ensure automation remains ethical and compliant.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1801"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1799">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-1800'
	>
	Automate your business with the right partner</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-1804"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-1802">
	<p	class='typography typography--size-16-text-roman js-typography block-typography__typography'
	data-id='es-1803'
	>
	Several of the above challenges can be mitigated by working with the right technology partner, such as Infinum. <br><br>We have the experience that allows us to develop solutions tailored to your needs, so they can integrate easily with your existing technology and workflows.  <br><br>Most importantly, our methods, reporting, and internal processes meet strict, internationally <a href="https://infinum.com/certifications-partnerships/" target="_blank" rel="noreferrer noopener">recognised security standards</a>. With Infinum, the security of your AI automation solution will be in safe hands. <br><br>We have a large team that can help you navigate strategy development, <a href="https://infinum.com/artificial-intelligence/data-engineering/" target="_blank" rel="noreferrer noopener">data engineering</a>, model building, deployment and integration, as well as ongoing monitoring and maintenance. <br><br><em>Interested in learning more about how we can help you with your AI automation journey? <a href="https://infinum.com/contact/" target="_blank" rel="noreferrer noopener">Talk to us</a>!</em></p></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/ai-automation/">AI Automation: What It Is and How AI-Powered Workflow Helps Your Business</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
		
	</channel>
</rss>