<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog</title>
	<atom:link href="https://www.imperva.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.imperva.com/blog/</link>
	<description>Imperva Cybersecurity Blog</description>
	<lastBuildDate>Sat, 16 May 2026 01:15:37 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>

<image>
	<url>https://www.imperva.com/wp-content/themes/impv/icons/favicon-32.png</url>
	<title>Blog</title>
	<link>https://www.imperva.com/blog/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>CVE-2026-42945: Imperva Customers Protected Against Critical NGINX Rewrite Module Vulnerability</title>
		<link>https://www.imperva.com/blog/cve-2026-42945-imperva-customers-protected-against-critical-nginx-rewrite-module-vulnerability/</link>
					<comments>https://www.imperva.com/blog/cve-2026-42945-imperva-customers-protected-against-critical-nginx-rewrite-module-vulnerability/#respond</comments>
		
		<dc:creator><![CDATA[Gabi Sharadin]]></dc:creator>
		<pubDate>Sat, 16 May 2026 01:15:37 +0000</pubDate>
				<category><![CDATA[Imperva Threat Research]]></category>
		<guid isPermaLink="false">https://www.imperva.com/blog/?p=20955</guid>

					<description><![CDATA[<p>TL;DR: Researchers recently disclosed CVE-2026-42945, a critical heap-based buffer overflow vulnerability affecting both NGINX Open Source and NGINX Plus. The flaw exists within the ngx_http_rewrite_module component and can allow unauthenticated attackers to trigger denial-of-service conditions and potentially achieve remote code execution (RCE) using specially crafted HTTP requests. Imperva Threat Research Group analyzed the vulnerability and [&#8230;]</p>
<p>The post <a href="https://www.imperva.com/blog/cve-2026-42945-imperva-customers-protected-against-critical-nginx-rewrite-module-vulnerability/">CVE-2026-42945: Imperva Customers Protected Against Critical NGINX Rewrite Module Vulnerability</a> appeared first on <a href="https://www.imperva.com/blog">Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><em><strong>TL;DR:</strong> Researchers recently disclosed CVE-2026-42945, a critical heap-based buffer overflow vulnerability affecting both NGINX Open Source and NGINX Plus. The flaw exists within the ngx_http_rewrite_module component and can allow unauthenticated attackers to trigger denial-of-service conditions and potentially achieve remote code execution (RCE) using specially crafted HTTP requests. </em></p>
<p><em>Imperva Threat Research Group analyzed the vulnerability and associated exploitation techniques. Imperva customers using Cloud WAF or On-Prem WAF are protected against attack attempts targeting this issue.</em></p>
<h2><strong>The Vulnerability</strong></h2>
<p><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-42945" target="_blank" rel="noopener">CVE-2026-42945</a> is a heap-based buffer overflow vulnerability in the ngx_http_rewrite_module component of NGINX Open Source and NGINX Plus. The issue, nicknamed NGINX Rift, occurs when specific rewrite-rule patterns are processed using unnamed Perl-Compatible Regular Expression (PCRE) capture groups such as $1 or $2, combined with replacement strings containing a question mark (?) and followed by additional rewrite, if, or set directives.</p>
<p>Under vulnerable conditions, specially crafted HTTP requests can trigger heap corruption within the NGINX worker process. Public research indicates this can reliably cause worker crashes and denial-of-service conditions, while some researchers also demonstrated potential paths toward remote code execution under favorable memory-layout conditions.</p>
<p>The vulnerability was discovered through autonomous analysis of the NGINX codebase and reportedly remained dormant for nearly two decades. Researchers described the issue as arising from a state mismatch in rewrite processing logic that ultimately results in unsafe memory handling during URI rewriting operations.</p>
<p>In practical terms, an attacker sends a crafted HTTP request designed to reach a vulnerable rewrite rule. During processing, attacker-controlled URI data can overflow allocated heap memory inside the worker process. Depending on the target environment and mitigations such as ASLR, exploitation may result in:</p>
<ul>
<li>Worker process crashes</li>
<li>Repeated restart loops</li>
<li>Application-layer denial of service</li>
<li>Potential remote code execution within the NGINX worker context</li>
</ul>
<p>The flaw affects:</p>
<ul>
<li>NGINX Open Source versions 0.6.27 through 1.30.0</li>
<li>NGINX Plus R32 through R36</li>
</ul>
<p>Patched releases include:</p>
<ul>
<li>NGINX Open Source 1.30.1 and 1.31.0+</li>
<li>NGINX Plus R32 P6 and R36 P4</li>
</ul>
<p>Because rewrite directives are extremely common in real-world NGINX deployments, particularly in reverse proxies, API gateways, load balancers, authentication flows, and URL routing logic, exposure may extend across a substantial portion of internet-facing infrastructure. NGINX was the most widely deployed web server on the internet as of 2025, <a href="https://w3techs.com/technologies/overview/web_server" target="_blank" rel="noopener">supporting 32.4% of all websites with known web servers</a>, so the exposure surface is extremely broad across enterprise, cloud, SaaS, and e-commerce environments.</p>
<p>Some of the techniques associated with exploitation include:</p>
<ul>
<li>Crafted HTTP requests targeting vulnerable rewrite rules</li>
<li>Abuse of unnamed PCRE capture groups ($1, $2)</li>
<li>Heap corruption via malformed URI rewriting operations</li>
<li>Application-layer denial of service through worker crashes</li>
<li>Potential memory manipulation leading to remote code execution</li>
<li>Automated internet-wide scanning for exposed NGINX deployments</li>
</ul>
<p>Unlike traditional volumetric DDoS attacks, exploitation of CVE-2026-42945 targets the application processing layer directly, allowing attackers to disrupt services using relatively small numbers of malicious requests.</p>
<h2>Bottom Line</h2>
<p>CVE-2026-42945 demonstrates how long-lived vulnerabilities in foundational internet infrastructure can remain undiscovered for years while silently exposing a massive attack surface. By abusing rewrite-processing logic inside ngx_http_rewrite_module, attackers can trigger heap corruption using crafted HTTP requests, leading to denial-of-service conditions and potentially remote code execution.</p>
<p>Because NGINX is deeply embedded within modern web infrastructure, including reverse proxies, API gateways, SaaS applications, and cloud environments, organizations should prioritize patching affected systems immediately and review rewrite-rule configurations for vulnerable patterns involving unnamed PCRE captures.</p>
<p>Imperva Cloud WAF and On-Prem WAF customers are protected against related attack activity.</p>
<p>The post <a href="https://www.imperva.com/blog/cve-2026-42945-imperva-customers-protected-against-critical-nginx-rewrite-module-vulnerability/">CVE-2026-42945: Imperva Customers Protected Against Critical NGINX Rewrite Module Vulnerability</a> appeared first on <a href="https://www.imperva.com/blog">Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.imperva.com/blog/cve-2026-42945-imperva-customers-protected-against-critical-nginx-rewrite-module-vulnerability/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Using Bedrock with Claude Code? Your AWS Credentials Are Shared With Every Subprocess</title>
		<link>https://www.imperva.com/blog/using-bedrock-with-claude-code-your-aws-credentials-are-shared-with-every-subprocess/</link>
					<comments>https://www.imperva.com/blog/using-bedrock-with-claude-code-your-aws-credentials-are-shared-with-every-subprocess/#respond</comments>
		
		<dc:creator><![CDATA[Ori Nakar]]></dc:creator>
		<pubDate>Thu, 14 May 2026 15:00:03 +0000</pubDate>
				<category><![CDATA[Imperva Threat Research]]></category>
		<guid isPermaLink="false">https://www.imperva.com/blog/?p=20930</guid>

					<description><![CDATA[<p>Many developers today are using Claude Code, with a growing portion running it through Amazon Bedrock. For enterprise teams, Bedrock offers major advantages: keeping data inside a VPC, leveraging AWS credits, and integrating with existing IAM controls, monitoring, and security policies. Bedrock adoption also grows significantly among larger organizations and enterprise environments &#8211; but this setup can also introduce security risks [&#8230;]</p>
<p>The post <a href="https://www.imperva.com/blog/using-bedrock-with-claude-code-your-aws-credentials-are-shared-with-every-subprocess/">Using Bedrock with Claude Code? Your AWS Credentials Are Shared With Every Subprocess</a> appeared first on <a href="https://www.imperva.com/blog">Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><span data-contrast="auto">Many developers today are using Claude Code, with a growing portion running it through Amazon Bedrock. For enterprise teams, Bedrock offers major advantages: keeping data inside a VPC, leveraging AWS credits, and integrating with existing IAM controls, monitoring, and security policies. Bedrock adoption also grows significantly among larger organizations and enterprise environments &#8211; but this setup can also introduce security risks or unintended configuration mistakes in real-world usage.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>
<p><span data-contrast="auto">If you’re running Claude Code with AWS Bedrock, there’s something you need to know: </span><b><span data-contrast="auto">the AWS credentials you configure for Bedrock don’t stay confined to Bedrock. </span></b><span data-contrast="auto">They might be shared with every shell command, every MCP server, and every subprocess that Claude Code spawns. And depending on how those credentials are scoped, that could mean full access to your entire AWS account.</span><span data-ccp-props="{&quot;335559738&quot;:180,&quot;335559739&quot;:180}"> </span></p>
<h2><span data-contrast="none">The Problem in a Nutshell</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:160,&quot;335559739&quot;:80}"> </span></h2>
<p><span data-contrast="auto">When you set up Claude Code for Bedrock, you store your AWS credentials in </span><span data-contrast="auto">~/.claude/settings.json</span><span data-contrast="auto">:</span><span data-ccp-props="{&quot;335559738&quot;:180,&quot;335559739&quot;:180}"> </span></p>
<pre><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="none"><span class="NormalTextRun SCXW254787369 BCX0">{</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW254787369 BCX0"><span class="SCXW254787369 BCX0"> </span><br class="SCXW254787369 BCX0" /></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW254787369 BCX0">   </span></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="none"><span class="NormalTextRun SCXW254787369 BCX0">"env"</span></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="none"><span class="NormalTextRun SCXW254787369 BCX0">:</span></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW254787369 BCX0"> </span></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="none"><span class="NormalTextRun SCXW254787369 BCX0">{</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW254787369 BCX0"><span class="SCXW254787369 BCX0"> </span><br class="SCXW254787369 BCX0" /></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW254787369 BCX0">     </span></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="none"><span class="NormalTextRun SCXW254787369 BCX0">"AWS_ACCESS_KEY_ID"</span></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="none"><span class="NormalTextRun SCXW254787369 BCX0">:</span></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW254787369 BCX0"> </span></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="none"><span class="NormalTextRun SCXW254787369 BCX0">"..."</span></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="none"><span class="NormalTextRun SCXW254787369 BCX0">,</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW254787369 BCX0"><span class="SCXW254787369 BCX0"> </span><br class="SCXW254787369 BCX0" /></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW254787369 BCX0">     </span></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="none"><span class="NormalTextRun SCXW254787369 BCX0">"AWS_SECRET_ACCESS_KEY"</span></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="none"><span class="NormalTextRun SCXW254787369 BCX0">:</span></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW254787369 BCX0"> </span></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="none"><span class="NormalTextRun SCXW254787369 BCX0">"..."</span></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="none"><span class="NormalTextRun SCXW254787369 BCX0">,</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW254787369 BCX0"><span class="SCXW254787369 BCX0"> </span><br class="SCXW254787369 BCX0" /></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW254787369 BCX0">     </span></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="none"><span class="NormalTextRun SCXW254787369 BCX0">"AWS_DEFAULT_REGION"</span></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="none"><span class="NormalTextRun SCXW254787369 BCX0">:</span></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW254787369 BCX0"> </span></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="none"><span class="NormalTextRun SCXW254787369 BCX0">"us-east-1"</span></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="none"><span class="NormalTextRun SCXW254787369 BCX0">,</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW254787369 BCX0"><span class="SCXW254787369 BCX0"> </span><br class="SCXW254787369 BCX0" /></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW254787369 BCX0">     </span></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="none"><span class="NormalTextRun SCXW254787369 BCX0">"CLAUDE_CODE_USE_BEDROCK"</span></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="none"><span class="NormalTextRun SCXW254787369 BCX0">:</span></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW254787369 BCX0"> </span></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="none"><span class="NormalTextRun SCXW254787369 BCX0">"1"</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW254787369 BCX0"><span class="SCXW254787369 BCX0"> </span><br class="SCXW254787369 BCX0" /></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW254787369 BCX0">   </span></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="none"><span class="NormalTextRun SCXW254787369 BCX0">}</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW254787369 BCX0"><span class="SCXW254787369 BCX0"> </span><br class="SCXW254787369 BCX0" /></span><span class="TextRun SCXW254787369 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="none"><span class="NormalTextRun SCXW254787369 BCX0">}</span></span><span class="EOP SCXW254787369 BCX0" data-ccp-props="{&quot;335559739&quot;:200}"> 
</span></pre>
<p><span data-contrast="auto">These environment variables get loaded into the Claude Code process. So far, so normal. The issue is that Unix processes inherit environment variables from their parent. Every time Claude Code runs a shell command, spawns an MCP server, or launches any subprocess, those child processes get your AWS credentials too.</span><span data-ccp-props="{&quot;335559738&quot;:180,&quot;335559739&quot;:180}"> </span></p>
<p><span data-contrast="auto">That means any </span><span data-contrast="auto">AWS </span><span data-contrast="auto">CLI command executed through Claude Code authenticates as your IAM principal. Not just for Bedrock, but for everything that principal has permissions to do.</span><span data-ccp-props="{&quot;335559738&quot;:180,&quot;335559739&quot;:180}"> </span></p>
<h2><span data-contrast="none">How This Goes Wrong in Practice</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:160,&quot;335559739&quot;:80}"> </span></h2>
<p><span data-contrast="auto">The security boundary here is entirely on the IAM policy side, Claude Code itself applies no restriction. If your IAM user only has `AmazonBedrockLimitedAccess`, the blast radius is minimal. But in practice, credentials often have broader permissions than intended. None of the scenarios below require an attacker or a sophisticated exploit, they’re everyday mistakes that happen when AWS credentials are broader than they need to be.</span><span data-ccp-props="{&quot;335559738&quot;:180,&quot;335559739&quot;:180}"> </span></p>
<ol>
<li><strong> Reusing your everyday IAM user</strong></li>
</ol>
<p><span data-contrast="auto">You already have an IAM user you use for daily development, like deploying lambdas, reading S3, or managing EC2 instances. Instead of creating a dedicated user for Claude Code, you drop those same credentials into </span><span data-contrast="auto">settings.json</span><span data-contrast="auto"> because it’s faster. Now Claude Code has access to everything you do: production databases, customer data in S3, IAM itself. You meant to give it Bedrock access, but you actually gave it your entire AWS footprint.</span><span data-ccp-props="{&quot;335559738&quot;:180,&quot;335559739&quot;:180}"> </span></p>
<ol start="2">
<li><strong> Operating on the wrong environment</strong></li>
</ol>
<p><span data-contrast="auto">You’re working on a staging project, but the credentials in </span><span data-contrast="auto">settings.json</span><span data-contrast="auto"> belong to your production account. You ask Claude Code to “delete the old test data from S3” or “terminate the idle instances.” Claude Code generates the right AWS CLI commands for the task, but runs them against production. There’s no visual indicator in Claude Code telling you which AWS account or environment is active. The approval prompt shows </span><span data-contrast="auto">aws s3 rm,</span><span data-contrast="auto"> and you click accept because the command looks correct for what you asked.</span><span data-ccp-props="{&quot;335559738&quot;:180,&quot;335559739&quot;:180}"> </span></p>
<ol start="3">
<li><strong> Permissions drifting over time</strong></li>
</ol>
<p><span data-contrast="auto">You start with a tightly scoped IAM user for Bedrock only. Months later, someone on your team attaches </span><span data-contrast="auto">AmazonS3ReadOnlyAccess</span><span data-contrast="auto"> for a one-off migration script and forgets to remove it. Then </span><span data-contrast="auto">PowerUserAccess</span><span data-contrast="auto"> gets added during an incident for quick debugging. The Claude Code credentials silently gain more power over time, and nobody audits what it can actually do because “it’s just the Bedrock user.”</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:180,&quot;335559739&quot;:180,&quot;335559740&quot;:279}"> </span></p>
<ol start="4">
<li><strong> Shared credentials across a team</strong></li>
</ol>
<p><span data-contrast="auto">A team lead sets up an IAM user for Claude Code and shares the credentials in a wiki or Slack channel for the team to use. Now multiple developers are running Claude Code with the same identity. There’s no way to distinguish who did what in CloudTrail logs. If one developer’s session is compromised through prompt injection, the blast radius covers everyone using those credentials, and attribution is impossible.</span><span data-ccp-props="{&quot;335559738&quot;:180,&quot;335559739&quot;:180}"> </span></p>
<h2><span data-contrast="none">The Attack Scenarios</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:160,&quot;335559739&quot;:80}"> </span></h2>
<p><span data-contrast="auto">This isn’t just a theoretical concern. There are several realistic ways this can go wrong:</span><span data-ccp-props="{&quot;335559738&quot;:180,&quot;335559739&quot;:180}"> </span></p>
<p><b><span data-contrast="auto">Accidental over-provisioning</span></b><span data-contrast="auto"> is the most likely scenario. A developer uses Claude Code normally, unaware that a “clean up old files” prompt could generate AWS CLI commands touching production S3 buckets or EC2 instances.</span><span data-ccp-props="{&quot;335559738&quot;:180,&quot;335559739&quot;:180}"> </span></p>
<p><b><span data-contrast="auto">Prompt injection</span></b><span data-contrast="auto"> is more targeted. An attacker plants malicious instructions in a repository file: a README, a config file, a code comment. When Claude Code reads the file, the injected instruction can influence it to generate AWS CLI commands that exfiltrate data or create backdoor access keys. The user sees an approval prompt but might not catch the malicious intent among legitimate-looking operations.</span><span data-ccp-props="{&quot;335559738&quot;:180,&quot;335559739&quot;:180}"> </span></p>
<p><b><span data-contrast="auto">Compromised MCP servers</span></b><span data-contrast="auto"> inherit the full environment as subprocesses. A malicious or supply-chain-compromised MCP server can silently make AWS API calls using your credentials.</span><span data-ccp-props="{&quot;335559738&quot;:180,&quot;335559739&quot;:180}"> </span></p>
<h2><span data-contrast="none">What You Should Do</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:160,&quot;335559739&quot;:80}"> </span></h2>
<p><b><span data-contrast="auto">Scope your credentials tightly.</span></b><span data-contrast="auto"> The IAM user or role you configure for Claude Code should have the absolute minimum permissions needed, ideally only </span><span data-contrast="auto">bedrock:InvokeModel*</span><span data-contrast="auto"> and related Bedrock actions. Audit what’s attached right now. You might be surprised.</span><span data-ccp-props="{&quot;335559738&quot;:180,&quot;335559739&quot;:180}"> </span></p>
<p><b><span data-contrast="auto">Consider using Bedrock API keys instead of IAM credentials.</span></b><span data-contrast="auto"> Claude Code supports </span><span data-contrast="auto">AWS_BEARER_TOKEN_BEDROCK</span><span data-contrast="auto">, which is inherently scoped to Bedrock operations. API keys can’t be used by the AWS CLI for non-Bedrock operations. This is the most effective mitigation available today and requires no infrastructure changes.</span><span data-ccp-props="{&quot;335559738&quot;:180,&quot;335559739&quot;:180}"> </span></p>
<p><b><span data-contrast="auto">Use temporary credentials.</span></b><span data-contrast="auto"> If you must use IAM credentials, prefer STS temporary credentials or SSO-based authentication over long-lived access keys. They at least limit the exposure window.</span><span data-ccp-props="{&quot;335559738&quot;:180,&quot;335559739&quot;:180}"> </span></p>
<p><b><span data-contrast="auto">Pay attention to shell command approval prompts.</span></b><span data-contrast="auto"> When Claude Code asks permission to run a command &#8211;  read it. Look for </span><span data-contrast="auto">aws</span><span data-contrast="auto"> CLI commands that access services beyond what you’d expect. If you see </span><span data-contrast="auto">aws s3</span><span data-contrast="auto">, </span><span data-contrast="auto">aws ec2</span><span data-contrast="auto">, </span><span data-contrast="auto">aws iam</span><span data-contrast="auto">, or similar, think about whether that’s something you intended to allow.</span><span data-ccp-props="{&quot;335559738&quot;:180,&quot;335559739&quot;:180}"> </span></p>
<p><b><span data-contrast="auto">Audit your settings.json.</span></b><span data-contrast="auto"> Run </span><span data-contrast="auto">aws sts get-caller-identity</span><span data-contrast="auto"> with the configured credentials and check what policies are attached to that principal. If the answer is anything broader than Bedrock access, tighten it.</span><span data-ccp-props="{&quot;335559738&quot;:180,&quot;335559739&quot;:180}"> </span></p>
<h2><span data-contrast="none">The Bigger Picture</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:160,&quot;335559739&quot;:80}"> </span></h2>
<p><span data-contrast="auto">This is a classic example of the principle of least privilege being violated through environment inheritance, a well-understood Unix behavior that becomes a security issue when credentials meant for one purpose are implicitly available for all purposes.</span><span data-ccp-props="{&quot;335559738&quot;:180,&quot;335559739&quot;:180}"> </span></p>
<p><span data-contrast="auto">Claude Code’s shell command approval prompt provides some protection, but it’s a thin layer. Users lack context about which AWS credentials are active and what permissions they grant. Approval fatigue, the tendency to reflexively accept prompts after seeing enough of them, further erodes this safeguard.</span><span data-ccp-props="{&quot;335559738&quot;:180,&quot;335559739&quot;:180}"> </span></p>
<p><span data-contrast="auto">The ideal fix would be credential isolation: Bedrock credentials should be internal to Claude Code and never exposed to shell subprocesses through environment variables. Until that happens, and according to Anthropic, the responsibility falls on you to ensure your credentials are scoped as narrowly as possible.</span><span data-ccp-props="{&quot;335559738&quot;:180,&quot;335559739&quot;:180}"> </span></p>
<p>The post <a href="https://www.imperva.com/blog/using-bedrock-with-claude-code-your-aws-credentials-are-shared-with-every-subprocess/">Using Bedrock with Claude Code? Your AWS Credentials Are Shared With Every Subprocess</a> appeared first on <a href="https://www.imperva.com/blog">Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.imperva.com/blog/using-bedrock-with-claude-code-your-aws-credentials-are-shared-with-every-subprocess/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure type="image/jpg" url="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/05/claude_code_header-1.png" length="1774" />	</item>
		<item>
		<title>Why AI Agents Make API Security a CISO Priority</title>
		<link>https://www.imperva.com/blog/why-ai-agents-make-api-security-a-ciso-priority/</link>
					<comments>https://www.imperva.com/blog/why-ai-agents-make-api-security-a-ciso-priority/#respond</comments>
		
		<dc:creator><![CDATA[Rohit Kumar]]></dc:creator>
		<pubDate>Sun, 10 May 2026 11:13:40 +0000</pubDate>
				<category><![CDATA[Application Security]]></category>
		<guid isPermaLink="false">https://www.imperva.com/blog/?p=20921</guid>

					<description><![CDATA[<p>AI agents are not a future concern. They are already changing how enterprise systems are accessed, automated, and abused. And the security implication is clear: the more autonomous systems rely on APIs, the more important it becomes to know exactly which APIs exist, how they are being used, and whether they are being misused. If [&#8230;]</p>
<p>The post <a href="https://www.imperva.com/blog/why-ai-agents-make-api-security-a-ciso-priority/">Why AI Agents Make API Security a CISO Priority</a> appeared first on <a href="https://www.imperva.com/blog">Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><span style="font-weight: 400;">AI agents are not a future concern. They are already changing how enterprise systems are accessed, automated, and abused.</span></p>
<p><span style="font-weight: 400;">And the security implication is clear: the more autonomous systems rely on APIs, the more important it becomes to know exactly which APIs exist, how they are being used, and whether they are being misused.</span></p>
<p><span style="font-weight: 400;">If your organization cannot answer those questions, you have a visibility problem. And in an environment where AI can accelerate both legitimate automation and malicious abuse, visibility is the first step to control.</span></p>
<h2><b>Risk accelerating</b></h2>
<p><span style="font-weight: 400;">APIs have always been a target because they expose data and business logic. What has changed is pace.</span></p>
<p><span style="font-weight: 400;">AI can now help attackers discover endpoints faster, test more abuse paths, and automate attacks that once took much more effort. Meanwhile, AI agents inside the enterprise are generating more API traffic, often with broader privileges than anyone intended.</p>
<p><span style="font-weight: 400;">That means security teams are facing a harder problem: not just more traffic, but more uncertainty and adversaries with improved tools.</span></p>
<h2><b>What CISOs should be worried about</b></h2>
<p><span style="font-weight: 400;">The biggest risks are not always the loudest ones.</span></p>
<p><span style="font-weight: 400;">Whether it’s an over-permissioned agent, a forgotten or shadow API, or a “legitimate” request abused to enumerate data or chain unauthorized actions, the risk is real. It’s often compounded by API tokens with broad access and long expiration times.</span></p>
<p><span style="font-weight: 400;">These are the kinds of issues that can lead to evasive data exfiltration, unauthorized payments, compliance violations, and operational surprises that go undetected far too long.</span></p>
<p><span style="font-weight: 400;">If your API security program cannot spot abnormal behavior early, the business is exposed.</span></p>
<div id="upcoming-banner-marker"></div>
<div class="modal fade video-modal" id="upcoming-banner-modal" tabindex="-1" role="dialog" aria-modal="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-body">
                                                        <button type="button" class="close" data-dismiss="modal" data-gaq-value="Close lightbox" aria-hidden="true">×</button></p>
<div class="video-banner">
<div class="visual">
<div class="inner">
                                                                    <img data-src="https://www.imperva.com/blog/wp-content/uploads/sites/6/2026/04/bad-bot-report-2026.png" class="lazyload  lazyload" alt="bad bot report 2026" >                                                                    <a class="btn-play"  event-action="Click"  event-category="LC Webinar Popup"  event-label="Findings from the 2026 Bad Bot Report - Video Thumbnail"  gtm-track  target="_self" href="#"   data-toggle="modal" data-target="#video-modal-8209"data-dismiss-modal="upcoming-banner-modal" > </a>                                                                </div>
</p></div>
<div class="description">
                                                                <span class="date"><time>May 21</time> Upcoming Webinar</span></p>
<h3>
                                                                    <a class=""  target="_self" href="#"   data-toggle="modal" data-target="#video-modal-8209"data-dismiss-modal="upcoming-banner-modal" >Findings from the 2026 Bad Bot Report</a>                                                                </h3>
<p>                                                                <a class="link-arrow"  event-action="Click"  event-category="LC Webinar Popup"  event-label="Findings from the 2026 Bad Bot Report - Register Now"  gtm-track  target="_self" href="#"   data-toggle="modal" data-target="#video-modal-8209"data-dismiss-modal="upcoming-banner-modal" >Register Now</a>                                                            </div>
</p></div>
</p></div>
</p></div>
</p></div>
</p></div>
<div class="modal fade video-modal" id="video-modal-8209" tabindex="-1" role="dialog" aria-labelledby="modalid3124title" aria-modal="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-body">
                                            <button type="button" class="close" data-dismiss="modal" data-gaq-value="Close lightbox" aria-hidden="true">×</button></p>
<div class="iframe-holder">
<div class="jsBrightTALKEmbedWrapper " style="width:100%; height:100%; position:relative;background: #ffffff; text-align: center;">
                                                    <script class="jsBrightTALKEmbedConfig" type="application/json">
                                                        { "channelId" : 2037 , "language": "en-US", "commId" : 663616, "displayMode" : "standalone", "height" : "auto" }
                                                    </script><br />
                                                    <script src="https://www.brighttalk.com/clients/js/player-embed/player-embed.js" class="jsBrightTALKEmbed"></script>
                                                </div>
</p></div>
</p></div>
</p></div>
</p></div>
</p></div>
<h2><b>What good looks like</b></h2>
<p><span style="font-weight: 400;">CISOs need a practical model, not more noise.</span></p>
<p><span style="font-weight: 400;">That model should:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Continuously discover APIs across the environment.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Classify which ones are sensitive.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Establish baselines for normal behavior.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Detect abnormal or suspicious API activity.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Support least-privilege access for AI agents.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Help revoke risky permissions quickly.</span></li>
</ul>
<p><span style="font-weight: 400;">This is how security leaders turn AI agent activity from a blind spot into something measurable and governable.</span></p>
<h2><b>The board conversation has changed</b></h2>
<p><span style="font-weight: 400;">This is no longer just a technical issue for engineering or operations.</span></p>
<p><span style="font-weight: 400;">Boards care about risk, control, and business impact. They need to know how many AI agent-facing APIs are being monitored, how many anomalous calls have been detected, and how quickly the business can respond when something looks wrong.</span></p>
<p><span style="font-weight: 400;">That is the real opportunity for CISOs: to move API security into the center of the AI risk conversation.</span></p>
<h2><b>Download the guide now</b></h2>
<p><span style="font-weight: 400;">For CISOs, security leaders, and executives, this guide explains the new API security realities emerging with AI agents. We created </span><b><i>A CISO’s Guide to API Security in the Age of AI Agents</i></b> <span style="font-weight: 400;">to help you navigate the shift with clarity and confidence.</span></p>
<p><span style="font-weight: 400;">Inside, you will learn:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Why AI agents are increasing API risk rather than replacing it.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">How to connect API security to business and board-level concerns.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">What to look for in a practical CISO playbook for discovery, visibility, and control.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">How to govern agent-driven access before it becomes business exposure.</span></li>
</ul>
<p><span style="font-weight: 400;">AI agents may change how work gets done. But the organizations that understand their APIs first will be the ones best positioned to stay in control.</span></p>
<p><b><a href="https://www.imperva.com/resources/resource-library/reports/a-cisos-guide-to-api-security-in-the-age-of-ai-agents/">Download the CISO guide now</a></b></p>
<p>The post <a href="https://www.imperva.com/blog/why-ai-agents-make-api-security-a-ciso-priority/">Why AI Agents Make API Security a CISO Priority</a> appeared first on <a href="https://www.imperva.com/blog">Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.imperva.com/blog/why-ai-agents-make-api-security-a-ciso-priority/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure type="image/jpg" url="https://www.imperva.com/blog/wp-content/uploads/sites/9/2022/03/Modern-Database-Security-Solution-Cover-e1646919346226.png" length="845" />	</item>
		<item>
		<title>CVE-2026-23870: Imperva Customers Protected Against Critical React Server Components DoS Vulnerability</title>
		<link>https://www.imperva.com/blog/cve-2026-23870-imperva-customers-protected-against-critical-react-server-components-dos-vulnerability/</link>
					<comments>https://www.imperva.com/blog/cve-2026-23870-imperva-customers-protected-against-critical-react-server-components-dos-vulnerability/#respond</comments>
		
		<dc:creator><![CDATA[Gabi Sharadin]]></dc:creator>
		<pubDate>Sat, 09 May 2026 19:05:01 +0000</pubDate>
				<category><![CDATA[Imperva Threat Research]]></category>
		<guid isPermaLink="false">https://www.imperva.com/blog/?p=20917</guid>

					<description><![CDATA[<p>TL;DR: A newly disclosed denial-of-service vulnerability, CVE-2026-23870, impacts React Server Components and dependent frameworks, including Next.js App Router deployments. The flaw enables unauthenticated attackers to send specially crafted HTTP requests that trigger excessive CPU consumption during request deserialization, leading to potential service degradation or total unavailability. Imperva Threat Research Group has analyzed the vulnerability and associated [&#8230;]</p>
<p>The post <a href="https://www.imperva.com/blog/cve-2026-23870-imperva-customers-protected-against-critical-react-server-components-dos-vulnerability/">CVE-2026-23870: Imperva Customers Protected Against Critical React Server Components DoS Vulnerability</a> appeared first on <a href="https://www.imperva.com/blog">Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong><em>TL;DR: </em></strong><em>A newly disclosed denial-of-service vulnerability, CVE-2026-23870, impacts React Server Components and dependent frameworks, including Next.js App Router deployments. The flaw enables unauthenticated attackers to send specially crafted HTTP requests that trigger excessive CPU consumption during request deserialization, leading to potential service degradation or total unavailability. Imperva Threat Research Group has analyzed the vulnerability and associated attack patterns. Imperva Cloud WAF and On-Prem WAF customers are already protected against exploitation attempts targeting this issue.</em></p>
<h2>The Vulnerability</h2>
<p>Researchers recently disclosed <a href="https://nvd.nist.gov/vuln/detail/CVE-2026-23870" target="_blank" rel="noopener">CVE-2026-23870</a>, a high-severity denial-of-service vulnerability affecting React Server Components and downstream frameworks such as Next.js. The issue exists in how vulnerable React Server Component implementations deserialize attacker-controlled request payloads sent to Server Function endpoints.</p>
<p>The vulnerability stems from improper handling of cyclic or recursively referenced data structures during request processing. Specifically, vulnerable deserialization logic within the React Flight protocol can repeatedly consume maliciously crafted models before properly marking them as processed, resulting in excessive resource consumption.</p>
<p>In practical terms, an attacker can send a specially crafted HTTP request to exposed Server Function endpoints in applications using React Server Components. When the payload is processed, the server enters a high-CPU execution state that can persist for extended periods before eventually throwing an error. Because the error is catchable and the attack requires no authentication, attackers can repeatedly issue malicious requests to sustain denial-of-service conditions.</p>
<p>The issue primarily impacts:</p>
<ul>
<li>react-server-dom-webpack</li>
<li>react-server-dom-parcel</li>
<li>react-server-dom-turbopack</li>
</ul>
<p>Affected versions include:</p>
<ul>
<li>0.0 through 19.0.4</li>
<li>1.0 through 19.1.5</li>
<li>2.0 through 19.2.4</li>
</ul>
<p>Patched releases are available in:</p>
<ul>
<li>0.5</li>
<li>1.6</li>
<li>2.5</li>
</ul>
<p>Because React Server Components are heavily used in modern application architectures, particularly high-traffic ecommerce, SaaS, and API-driven environments, exploitation can have significant operational impact. Applications leveraging Next.js App Router deployments are especially exposed due to the widespread use of Server Function endpoints.</p>
<p>Some of the techniques observed or associated with exploitation include:</p>
<ul>
<li>Crafted cyclic model payloads designed to trigger recursive deserialization behavior</li>
<li>Repeated requests to Server Function endpoints to sustain CPU exhaustion</li>
<li>Abuse of React Flight protocol request parsing logic</li>
<li>Application-layer denial-of-service attacks targeting availability rather than data theft</li>
<li>Automated scanning of exposed React and Next.js deployments for vulnerable endpoints</li>
</ul>
<p>Unlike traditional volumetric DDoS attacks, CVE-2026-23870 enables low-bandwidth, application-layer denial of service by forcing disproportionate server-side computation. This makes the attack particularly attractive because relatively small numbers of malicious requests can create significant backend resource exhaustion.</p>
<h2>Bottom Line</h2>
<p>CVE-2026-23870 highlights the growing security risks associated with modern server-side rendering frameworks and component-driven architectures. By abusing request deserialization logic in React Server Components, attackers can trigger disproportionate backend resource consumption using relatively low-effort HTTP requests.</p>
<p>Since this vulnerability requires no authentication and targets exposed Server Function endpoints directly, exploitation is straightforward in unpatched environments. Organizations using React Server Components, Next.js App Router, or related server-side rendering frameworks should immediately upgrade affected packages and review exposed application endpoints.</p>
<p>Imperva Cloud WAF and On-Prem WAF customers are protected against related attack activity.</p>
<p>The post <a href="https://www.imperva.com/blog/cve-2026-23870-imperva-customers-protected-against-critical-react-server-components-dos-vulnerability/">CVE-2026-23870: Imperva Customers Protected Against Critical React Server Components DoS Vulnerability</a> appeared first on <a href="https://www.imperva.com/blog">Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.imperva.com/blog/cve-2026-23870-imperva-customers-protected-against-critical-react-server-components-dos-vulnerability/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Your Redis Server Looks Fine. That’s the Problem.</title>
		<link>https://www.imperva.com/blog/your-redis-server-looks-fine-thats-the-problem/</link>
					<comments>https://www.imperva.com/blog/your-redis-server-looks-fine-thats-the-problem/#respond</comments>
		
		<dc:creator><![CDATA[Ori Nakar]]></dc:creator>
		<pubDate>Wed, 06 May 2026 18:28:30 +0000</pubDate>
				<category><![CDATA[Imperva Threat Research]]></category>
		<guid isPermaLink="false">https://www.imperva.com/blog/?p=20911</guid>

					<description><![CDATA[<p>Introduction There’s an automated attack circulating right now that breaks into unprotected Redis servers, takes over the underlying machine, and then carefully puts everything back the way it found it. It restores the database filename. It deletes the tools it used. It detaches from the connections it opened. When it’s done, the server looks healthy. [&#8230;]</p>
<p>The post <a href="https://www.imperva.com/blog/your-redis-server-looks-fine-thats-the-problem/">Your Redis Server Looks Fine. That’s the Problem.</a> appeared first on <a href="https://www.imperva.com/blog">Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Introduction</h2>
<p>There’s an automated attack circulating right now that breaks into unprotected Redis servers, takes over the underlying machine, and then carefully puts everything back the way it found it. It restores the database filename. It deletes the tools it used. It detaches from the connections it opened. When it’s done, the server looks healthy. Logs look normal. Nothing appears to be wrong.</p>
<p>Except there’s a new line in /root/.ssh/authorized_keys that wasn’t there before.</p>
<p>We discovered this attack recently targeting a single Redis honeypot. Attacks came from 10 distinct source IPs across six countries, and over 1,200 attack attempts were recorded in a single month. Our <a href="https://github.com/ThalesGroup/dd-honeypot" target="_blank" rel="noopener">data-driven, AI-based honeypot</a> enabled us to detect and analyze this activity in detail.</p>
<h2>The Attack</h2>
<p>Redis was never designed to face the internet directly. But people expose it: a misconfigured security group, a container with the wrong port mapping, a developer who needs it reachable for a quick test. The default configuration has no password. Port 6379, open to the world.</p>
<p>When our Redis honeypot instance was exposed, the first visitors arrived within minutes. They connected, ran INFO, read the version string, and disconnected. That’s it. They aren’t trying to break in. They’re taking a census- cataloging what’s out there, how old it is, whether it’s protected. Thousands of these scans happen every day across the internet, quiet and mechanical.</p>
<p>Then a second wave showed up. These bots tried something: config set dbfilename backup.db. It’s a test. If Redis accepts the command, it means the server will let you write files to arbitrary paths on the host machine’s disk. The bot doesn’t exploit this. It just records the address and leaves. It’s building a list for someone else.</p>
<p><img class="lazyload alignnone size-full wp-image-20914 lazyload" alt="Screenshot 2026 05 06 at 11.25.46 AM" width="1936" height="1100" data-src="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/05/Screenshot-2026-05-06-at-11.25.46-AM.png" srcset="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/05/Screenshot-2026-05-06-at-11.25.46-AM.png 1936w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/05/Screenshot-2026-05-06-at-11.25.46-AM-300x170.png 300w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/05/Screenshot-2026-05-06-at-11.25.46-AM-1024x582.png 1024w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/05/Screenshot-2026-05-06-at-11.25.46-AM-768x436.png 768w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/05/Screenshot-2026-05-06-at-11.25.46-AM-1536x873.png 1536w" sizes="(max-width: 1936px) 100vw, 1936px" /></p>
<p>The real attack came as a single connection that tried five different methods of compromise in rapid sequence. The whole thing took a few seconds. It opened with FLUSHDB to wipe the database and clear the slate, and then worked through the following tricks:</p>
<p><strong>Cron injection:</strong> redirect Redis’s save directory to /var/spool/cron/, write a key whose value is a cron entry. Now the host downloads and runs a binary from a C2 server every minute, with a randomly generated filename to dodge signature detection.</p>
<p><strong>Lua sandbox escape:</strong> a Debian/Ubuntu packaging decision dynamically linked Redis’s Lua interpreter against the system library, breaking the sandbox. One EVAL command loads io.popen, leading to full RCE. <a href="https://nvd.nist.gov/vuln/detail/cve-2022-0543" target="_blank" rel="noopener">CVE-2022-0543</a> is four years old, yet still working.</p>
<p><strong>SSH key planting:</strong> same file-writing trick, pointed at /root/.ssh/authorized_keys. One line, and the operator has root access forever.</p>
<p><strong>Replication hijacking:</strong> SLAVEOF tells Redis to sync from the attacker’s server, which serves a malicious shared object disguised as a database dump. MODULE LOAD turns it into a Redis extension exposing system.exec. This trick leads to full RCE through Redis’s own replication protocol.</p>
<p><strong>Direct execution:</strong> use that module to download and run the binary through the shell.</p>
<p>Five methods, one connection, a few seconds- but attackers don’t need all five to work. They just need one.</p>
<p>Then the connection did something unexpected. It started cleaning up.</p>
<pre>SLAVEOF NO ONE
 system.exec "rm -rf /tmp/exp.so"
 MODULE UNLOAD system
 config set dbfilename dump.rdb</pre>
<p>It detached from the rogue replication server. It deleted the malicious shared library from the disk. It unloaded the module from Redis. It restored the original database filename. Redis is often used for ephemeral data, like sessions, queues, and rate limits, so a cleared database might not even raise an alarm. It just looks like a restart.</p>
<p>The attack was optimized for <strong>staying hidden after breaking in</strong>. Every forensic trace is reversed. The only artifact left behind is an SSH public key, one line in a file that most administrators never read, indistinguishable from a legitimate entry. Even if you find the malware, kill the process, and delete the cron entry, the key is still there. Root access, on demand, forever. Or until someone manually audits authorized_keys, which is rare.</p>
<h2>The Botnets</h2>
<p><strong>The SSH Key Operator: </strong>A sophisticated, single-operator attack that targets unprotected Redis servers. It attempts five different RCE methods. Over a single month, our single Redis honeypot recorded over 1,200 attack attempts from 10 distinct source IPs across six countries. The majority included RCE attempts: Lua sandbox exploits and replication hijacking aimed at arbitrary command execution on the host. Different C2 servers, different binary names, but the same sequence, the same Lua payload, the same SSH public key. One operator, rotating sources and randomizing filenames. The key is the only constant.</p>
<p>The traffic came in distinct waves. Baseline was roughly 15 to 20 attempts per day from two or three sources. Then, without warning, a wave would hit, with a single IP connecting hundreds of times in an afternoon, once every 69 seconds- in total, over 300 attempts in a few hours. We saw three to four waves per month, each lasting two to six hours, each from a different source IP. Then silence until the next wave.</p>
<p><img class="lazyload alignnone size-full wp-image-20913 lazyload" alt="Screenshot 2026 05 06 at 11.25.36 AM 1" width="1936" height="628" data-src="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/05/Screenshot-2026-05-06-at-11.25.36-AM-1.png" srcset="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/05/Screenshot-2026-05-06-at-11.25.36-AM-1.png 1936w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/05/Screenshot-2026-05-06-at-11.25.36-AM-1-300x97.png 300w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/05/Screenshot-2026-05-06-at-11.25.36-AM-1-1024x332.png 1024w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/05/Screenshot-2026-05-06-at-11.25.36-AM-1-768x249.png 768w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/05/Screenshot-2026-05-06-at-11.25.36-AM-1-1536x498.png 1536w" sizes="(max-width: 1936px) 100vw, 1936px" /></p>
<p><strong>MGLNDD Botnet:</strong> A separate operation that periodically connects to exposed Redis servers, sending a single command format (MGLNDD_54.147.241.42_6379) to perform a &#8220;roll call&#8221; &#8211; checking whether the Redis server is already part of their botnet. It operates from Azure VMs using AWS IP addresses, never repeating the same source twice.</p>
<p>The SSH key operator and the MGLNDD botnet share the same hunting ground but ignore each other completely. Two separate operations are working in the same territory. An exposed Redis port isn’t just targeted by an attacker, it’s targeted by an ecosystem.</p>
<h2>Takeaway</h2>
<p>The attack is silent. The window between &#8220;I&#8217;ll fix that config later&#8221; and the machine is silently compromised isn&#8217;t days or hours-it&#8217;s seconds. Everything looks fine afterward: the server is up, the application works, the dashboards are green. The only artifact is an SSH key, patient and persistent, waiting to be used.</p>
<p><strong>What You Must Do:</strong></p>
<ul>
<li>Never expose Redis to the internet. Restrict access via security groups, firewalls, or VPCs.</li>
<li>Set a strong Redis password. The default has none.</li>
<li>Regularly audit /root/.ssh/authorized_keys for unfamiliar keys-attackers hide persistence here.</li>
<li>Keep Redis patched. CVE-2022-0543 still works after 4 years.</li>
<li>Monitor for suspicious commands: CONFIG SET, MODULE LOAD, FLUSHDB, SLAVEOF.</li>
<li>Use file integrity monitoring on /root/.ssh/authorized_keys to detect tampering.</li>
<li>Don&#8217;t trust green dashboards. Assume you&#8217;ve been breached until verified otherwise.</li>
</ul>
<p>Imperva <a href="https://www.imperva.com/products/data-security/" target="_blank" rel="noopener">Data Security</a> solutions provide comprehensive protection for your data against a wide range of threats. These offerings enable security teams to identify the location of sensitive information, monitor access patterns, and detect misuse promptly to facilitate timely response.</p>
<p>The post <a href="https://www.imperva.com/blog/your-redis-server-looks-fine-thats-the-problem/">Your Redis Server Looks Fine. That’s the Problem.</a> appeared first on <a href="https://www.imperva.com/blog">Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.imperva.com/blog/your-redis-server-looks-fine-thats-the-problem/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure type="image/jpg" url="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/05/Screenshot-2026-05-06-at-11.25.58-AM.png" length="1862" />	</item>
		<item>
		<title>API Security Operations: How to Move from Visibility to Measurable Risk Reduction</title>
		<link>https://www.imperva.com/blog/api-security-operations-from-visibility-to-risk-reduction/</link>
					<comments>https://www.imperva.com/blog/api-security-operations-from-visibility-to-risk-reduction/#respond</comments>
		
		<dc:creator><![CDATA[Rohit Kumar]]></dc:creator>
		<pubDate>Wed, 06 May 2026 09:39:49 +0000</pubDate>
				<category><![CDATA[Application Security]]></category>
		<guid isPermaLink="false">https://www.imperva.com/blog/?p=20884</guid>

					<description><![CDATA[<p>A five-level operating model for turning API security visibility into measurable risk reduction, faster remediation, and confident digital growth — without slowing development. What is API security operationalization? API security operationalization is the process of converting API discovery and visibility into continuous, measurable risk reduction across discovery, vulnerability identification, prioritization, mitigation, and scaling. It moves [&#8230;]</p>
<p>The post <a href="https://www.imperva.com/blog/api-security-operations-from-visibility-to-risk-reduction/">API Security Operations: How to Move from Visibility to Measurable Risk Reduction</a> appeared first on <a href="https://www.imperva.com/blog">Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><em>A five-level operating model for turning API security visibility into measurable risk reduction, faster remediation, and confident digital growth — without slowing development.</em></p>
<h2>What is API security operationalization?</h2>
<p><strong>API security operationalization is the process of converting API discovery and visibility into continuous, measurable risk reduction across discovery, vulnerability identification, prioritization, mitigation, and scaling.</strong> It moves API security from a one-time assessment to a repeatable, outcome-driven program, with KPIs such as mean time to remediation (MTTR), high-risk API count, and exposed endpoint reduction.</p>
<p>Operationalization matters because APIs are the fastest-growing attack surface — and most organizations now have visibility into their APIs but cannot act on it consistently. Without operationalization, discovery becomes a catalog instead of a control.</p>
<h3> Why most API security programs stall after discovery</h3>
<p>Most organizations aren’t struggling to see their APIs anymore. They’re struggling to turn API security visibility into consistent, measurable outcomes. According to the OWASP API Security Top 10, the most damaging API risks — broken object-level authorization (BOLA), broken authentication, and unrestricted resource consumption — all exploit gaps that exist after discovery, not before it.</p>
<p>APIs are the fastest growing attack surface — Imperva research shows API-directed attacks now account for a meaningful share of the application threat landscape (see the 2025 Imperva Bad Bot Report for current bot-driven API abuse data). Yet many security programs stall after discovery: risks are identified but not prioritized. Findings are reported but not operationalized. Controls exist, but don’t scale.</p>
<p><strong>Imperva API Security closes that gap.</strong></p>
<p>It enables organizations to move beyond insight and into action, so API security becomes a repeatable, outcome-driven capability that reduces real risk, improves efficiency, and supports faster innovation.</p>
<p>Here’s how to operationalize it for impact.</p>
<div style="text-align: center;"><img class="lazyload size-full wp-image-20891 lazyload" alt="Imperva API security operational maturity model showing the five levels: Discover and Classify, Identify Vulnerabilities, Prioritize Risks, Mitigate and Measure, Optimize and Scale" width="624" height="936" data-src="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/05/API-Security-Operational-Steps.png" srcset="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/05/API-Security-Operational-Steps.png 624w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/05/API-Security-Operational-Steps-200x300.png 200w" sizes="(max-width: 624px) 100vw, 624px" /></div>
<p><em><strong>Figure 1:</strong> The Imperva API Security operational maturity model — five levels from Discover to Optimize. </em></p>
<h2>Level 1: API discovery and classification</h2>
<p>Building a complete, continuously updated inventory of every API</p>
<p><strong>API discovery is the continuous process of identifying every API endpoint — managed, unmanaged, shadow, and deprecated — across cloud, on-premises, and hybrid environments, then classifying each one by data sensitivity and business criticality.</strong></p>
<p>You can’t secure what you don’t fully understand, and classifying APIs by data sensitivity helps reduce the scope to a more manageable set. In dynamic environments, APIs are constantly changing, new ones spin up, old ones linger, and many remain undocumented.</p>
<p>Operationalization starts with <strong>continuous, accurate discovery and classification</strong>:</p>
<ul>
<li>Identify every API across cloud, on-premises, and hybrid environments — including REST, GraphQL, gRPC, and SOAP endpoints</li>
<li>Uncover shadow APIs, unmanaged endpoints, and deprecated/zombie APIs that bypass change-management controls</li>
<li>Classify APIs by data sensitivity (PII, PHI, PCI, financial), business criticality, and external exposure</li>
<li>Map authentication posture — which endpoints require auth, which use long-lived tokens, which are publicly accessible without auth</li>
</ul>
<p><strong>How Imperva delivers:</strong></p>
<p>Imperva API Security provides deep, continuous visibility into your API ecosystem, helping you uncover hidden APIs and automatically build a risk-aware inventory. This gives you not just a list of APIs, but the <strong>context needed to act on them</strong>.</p>
<p><strong>Outcome:</strong> Reduced API attack surface, an inventory you trust, and the foundation every later level depends on. Without trustworthy discovery, prioritization is guesswork.</p>
<div id="upcoming-banner-marker"></div>
<div class="modal fade video-modal" id="upcoming-banner-modal" tabindex="-1" role="dialog" aria-modal="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-body">
                                                        <button type="button" class="close" data-dismiss="modal" data-gaq-value="Close lightbox" aria-hidden="true">×</button></p>
<div class="video-banner">
<div class="visual">
<div class="inner">
                                                                    <img data-src="https://www.imperva.com/blog/wp-content/uploads/sites/6/2026/04/bad-bot-report-2026.png" class="lazyload  lazyload" alt="bad bot report 2026" >                                                                    <a class="btn-play"  event-action="Click"  event-category="LC Webinar Popup"  event-label="Findings from the 2026 Bad Bot Report - Video Thumbnail"  gtm-track  target="_self" href="#"   data-toggle="modal" data-target="#video-modal-8209"data-dismiss-modal="upcoming-banner-modal" > </a>                                                                </div>
</p></div>
<div class="description">
                                                                <span class="date"><time>May 21</time> Upcoming Webinar</span></p>
<h3>
                                                                    <a class=""  target="_self" href="#"   data-toggle="modal" data-target="#video-modal-8209"data-dismiss-modal="upcoming-banner-modal" >Findings from the 2026 Bad Bot Report</a>                                                                </h3>
<p>                                                                <a class="link-arrow"  event-action="Click"  event-category="LC Webinar Popup"  event-label="Findings from the 2026 Bad Bot Report - Register Now"  gtm-track  target="_self" href="#"   data-toggle="modal" data-target="#video-modal-8209"data-dismiss-modal="upcoming-banner-modal" >Register Now</a>                                                            </div>
</p></div>
</p></div>
</p></div>
</p></div>
</p></div>
<div class="modal fade video-modal" id="video-modal-8209" tabindex="-1" role="dialog" aria-labelledby="modalid3124title" aria-modal="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-body">
                                            <button type="button" class="close" data-dismiss="modal" data-gaq-value="Close lightbox" aria-hidden="true">×</button></p>
<div class="iframe-holder">
<div class="jsBrightTALKEmbedWrapper " style="width:100%; height:100%; position:relative;background: #ffffff; text-align: center;">
                                                    <script class="jsBrightTALKEmbedConfig" type="application/json">
                                                        { "channelId" : 2037 , "language": "en-US", "commId" : 663616, "displayMode" : "standalone", "height" : "auto" }
                                                    </script><br />
                                                    <script src="https://www.brighttalk.com/clients/js/player-embed/player-embed.js" class="jsBrightTALKEmbed"></script>
                                                </div>
</p></div>
</p></div>
</p></div>
</p></div>
</p></div>
<h2>Level 2: Identifying API vulnerabilities and business-logic abuse</h2>
<p><strong>Expose real-world risk, not just theoretical issues</strong></p>
<p>Modern API attacks don’t rely on obvious exploits. They leverage legitimate access in unintended ways — abusing business logic, over-permissioned tokens, and weak authorization. The OWASP API Security Top 10 ranks broken object-level authorization (BOLA) as the #1 API risk: an authenticated user manipulates an object identifier (user ID, account ID, document ID) to access another user&#8217;s data the API never intended to expose. Unlike SQL injection, BOLA produces no malformed payloads — every request looks legitimate.</p>
<p>To operationalize security, you need to detect:</p>
<ul>
<li>Broken object-level authorization (BOLA, OWASP API1:2023) and access-control gaps that grant cross-tenant data access</li>
<li>Broken authentication (OWASP API2:2023) — weak tokens, credential stuffing, missing MFA on sensitive flows</li>
<li>Unrestricted resource consumption (OWASP API4:2023) — missing rate limits, no quota enforcement</li>
<li>Excessive data exposure (OWASP API3:2023) — endpoints returning more fields than the client needs</li>
<li>Anomalous usage patterns and behavioral risks (account-takeover, scraping, slow-rate enumeration)</li>
<li>Business-logic abuse — checkout, refund, and gift-card workflows weaponized by legitimate-looking calls</li>
<li>Risky tokens — long-lived credentials, over-permissioned API keys, leaked secrets in client code</li>
</ul>
<p><strong>How Imperva delivers:</strong></p>
<p>Imperva analyzes API traffic and behavior to surface <strong>context-rich risk signals, </strong>so you can see not just what’s vulnerable, but <strong>how it can be exploited in practice</strong>.</p>
<p><strong>Outcome:</strong> Shift from static findings to actionable intelligence aligned with real attack paths.</p>
<h2>Level 3: Risk-based API prioritization (cutting through alert noise)</h2>
<p><strong>Focus on what actually matters to the business</strong></p>
<p>Not all API risks are equal and treating them that way slows teams down.</p>
<p>Operational maturity comes from <strong>risk-based prioritization</strong>:</p>
<ul>
<li>Which APIs are business-critical? — handle revenue-generating workflows, customer authentication, or core data</li>
<li>Which expose sensitive data? — return PII, PHI, payment data, or trade secrets</li>
<li>Which are externally accessible? — reachable from the public internet, partner networks, or third-party integrations</li>
<li>What is the real-world impact if exploited? — regulatory penalty, customer trust loss, downtime cost, blast radius</li>
</ul>
<p><strong>How Imperva delivers:</strong></p>
<p>Imperva brings together visibility, behavioral insight, and business context to help teams <strong>focus on the highest-impact risks first, </strong>cutting through noise and enabling faster, smarter decisions.</p>
<p><strong>Outcome:</strong> Align security effort with business risk, not alert volume.</p>
<h2>Level 4: API risk mitigation and measurable outcomes (KPIs that matter)</h2>
<p><strong>Turn insight into action, and prove it’s working</strong></p>
<p>Security only delivers value when risk is actively reduced, and that reduction is measurable.</p>
<p>Mitigation should be paired with clear KPIs:</p>
<ul>
<li>High-risk API count — number of APIs flagged as critical-severity, month over month (direct measure of attack-surface reduction)</li>
<li>Mean time to remediate (MTTR) — days from detection of an API risk to closure (proxy for security <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> engineering velocity)</li>
<li>Exposed/unmanaged endpoint count — public APIs without owner, doc, or auth control (catches drift between deploys)</li>
<li>Protection coverage — % of high-risk APIs with active mitigation policies (shows control density across the surface)</li>
<li>Inline-action rate — % of detected abuse stopped at session level (vs. IP block); differentiator vs. coarse-grained tools</li>
</ul>
<p><strong>How Imperva delivers:</strong></p>
<p>Imperva enables teams to detect and respond to malicious or risky API activity with precision, using inline actions at the client session level to stop abuse in real time, <strong>far more effective than coarse IP-based blocking</strong>. This turns API security into a <strong>measurable, outcome-driven function</strong>.</p>
<p><strong>Outcome:</strong> Demonstrate real risk reduction and tangible ROI.</p>
<h2>Level 5: Scaling API security through automation and DevOps integration</h2>
<p><strong>Embed API security into how your business operates</strong></p>
<p>Manual processes don’t scale in modern API environments. Optimization is about making API security <strong>continuous, automated, and integrated</strong>.</p>
<p>This means:</p>
<ul>
<li>Automating API discovery and risk assessment so every new endpoint is inventoried within minutes of deployment</li>
<li>Embedding API security into CI/CD pipelines — schema validation, OWASP-scoped tests, and policy-as-code at PR time</li>
<li>Integrating with the broader stack — SIEM, SOAR, ticketing, IAM, and the Imperva Web Application and API Protection (WAAP) platform</li>
<li>Repeatable remediation playbooks mapped to API risk class (BOLA, broken auth, excessive data exposure, business-logic abuse)</li>
</ul>
<p><strong>How Imperva delivers:</strong></p>
<p>Imperva helps operationalize API security at scale, reducing manual effort while improving consistency and coverage. It enables security teams to <strong>keep pace with development without becoming a bottleneck</strong>.</p>
<p><strong>Outcome:</strong> Scale protection without scaling complexity.</p>
<h2>The right + left operating model: balancing protection and enablement</h2>
<p>Sustainable API security is not just about stronger controls. It’s about balance.</p>
<ul>
<li><strong>Right (Protection):</strong> Visibility, detection, and enforcement to reduce risk</li>
<li><strong>Left (Enablement):</strong> Automation, scalability, and efficiency to support speed</li>
</ul>
<p>Too much focus on protection slows the business. Too much focus on speed increases exposure.</p>
<p><strong>Imperva API Security brings both together.</strong></p>
<p><strong>Right + Left = Optimum</strong>—where security doesn’t compete with the business; it <strong>accelerates it</strong>.</p>
<p><img class="lazyload aligncenter size-full wp-image-20892 lazyload" alt="building a sustainable strategy" width="936" height="434" data-src="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/05/building-a-sustainable-strategy.png" srcset="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/05/building-a-sustainable-strategy.png 936w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/05/building-a-sustainable-strategy-300x139.png 300w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/05/building-a-sustainable-strategy-768x356.png 768w" sizes="(max-width: 936px) 100vw, 936px" /><br />
<em><strong>Figure 2:</strong> Building a Sustainable Strategy – Right + Left = Optimum</em></p>
<h2><strong>Conclusion: Make API Security a Business Enabler</strong></h2>
<p>The difference between having API security and <strong>operationalizing it</strong> is the difference between insight and impact.</p>
<p>With Imperva API Security, organizations can:</p>
<ul>
<li>Continuously discover and understand their API landscape</li>
<li>Identify and contextualize real-world risks</li>
<li>Prioritize based on business impact</li>
<li>Mitigate and measure outcomes</li>
<li>Scale security through automation and integration</li>
</ul>
<p>The result is not just better security.</p>
<p>It’s <strong>faster innovation, stronger resilience, and confident digital growth</strong>.</p>
<p>If your API security program is stuck at visibility, it’s time to take the next step.</p>
<p><strong>Operationalize it. Measure it. Scale it.</strong></p>
<p>See how Imperva API Security can help you turn API security into a strategic advantage, </p>
<p><strong>and start driving real business value from day one.</strong></p>
<p><span class="TextRun SCXW137938619 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW137938619 BCX0">Want to see how Imperva API Security can be operationalized at scale? </span></span><a class="Hyperlink SCXW137938619 BCX0" href="https://www.brighttalk.com/webcast/2037/663930" target="_blank" rel="noreferrer noopener"><span class="TextRun Underlined SCXW137938619 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="none"><span class="NormalTextRun SCXW137938619 BCX0" data-ccp-charstyle="Hyperlink">Watch the detailed expert webinar for practical guidance and real-world insights</span></span></a><span class="TextRun SCXW137938619 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW137938619 BCX0">.</span></span><span class="EOP Selected SCXW137938619 BCX0" data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>
<h2>Frequently asked questions about API security operationalization</h2>
<p><strong>What&#8217;s the difference between API security and API security operationalization?</strong><br />
API security is the set of controls that protect APIs from abuse. API security operationalization is the practice of running those controls as a continuous, measurable program — with discovery, prioritization, KPIs, and automation rather than one-time scans.</p>
<p><strong>What are the most common API vulnerabilities?</strong><br />
The OWASP API Security Top 10 (2023 edition) ranks broken object-level authorization (BOLA), broken authentication, broken object-property-level authorization, unrestricted resource consumption, and broken function-level authorization as the highest-impact API risks. Most modern attacks combine two or more of these.</p>
<p><strong>How is API discovery different from API documentation?</strong><br />
API documentation describes what an API is supposed to do. API discovery finds every API that actually exists in your environment — including shadow, deprecated, and undocumented endpoints that documentation misses. Operationalized programs treat discovery as continuous, not one-time.</p>
<p><strong>How do you measure API security effectiveness?</strong><br />
Track high-risk API count, mean time to remediate (MTTR), exposed/unmanaged endpoint count, protection coverage, and inline-action rate. KPI movement over time is the proof that the program — not just the toolset — is working.</p>
<p><strong>Does Imperva API Security work with my existing WAF or WAAP?</strong><br />
Yes. Imperva API Security is part of the Imperva Web Application and API Protection (WAAP) platform and integrates with Imperva WAF, the Imperva CDN, and third-party SIEM/SOAR tooling. The same operational model spans web app and API protection.</p>
<p>→ Explore the Imperva API Security platform: <a href="https://www.imperva.com/products/api-security/">https://www.imperva.com/products/api-security/ </a> </p>
<p>The post <a href="https://www.imperva.com/blog/api-security-operations-from-visibility-to-risk-reduction/">API Security Operations: How to Move from Visibility to Measurable Risk Reduction</a> appeared first on <a href="https://www.imperva.com/blog">Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.imperva.com/blog/api-security-operations-from-visibility-to-risk-reduction/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure type="image/jpg" url="https://www.imperva.com/blog/wp-content/uploads/sites/9/2023/09/shutterstock_1071270287-13.jpg" length="845" />	</item>
		<item>
		<title>Imperva Customers Protected Against CVE-2026-41940 in cPanel &#038; WHM</title>
		<link>https://www.imperva.com/blog/imperva-customers-protected-against-cve-2026-41940-in-cpanel-whm/</link>
					<comments>https://www.imperva.com/blog/imperva-customers-protected-against-cve-2026-41940-in-cpanel-whm/#respond</comments>
		
		<dc:creator><![CDATA[Gabi Sharadin]]></dc:creator>
		<pubDate>Thu, 30 Apr 2026 17:38:05 +0000</pubDate>
				<category><![CDATA[Imperva Threat Research]]></category>
		<guid isPermaLink="false">https://www.imperva.com/blog/?p=20877</guid>

					<description><![CDATA[<p>What is CVE-2026-41940? CVE-2026-41940 is a critical authentication bypass vulnerability affecting cPanel &#38; WHM, including DNSOnly, in versions after 11.40. The flaw, discovered by WatchTowr Labs, exists in the login flow and allows unauthenticated remote attackers to gain unauthorized access to the control panel. The vulnerability carries a CVSS 3.1 score of 9.8 and is [&#8230;]</p>
<p>The post <a href="https://www.imperva.com/blog/imperva-customers-protected-against-cve-2026-41940-in-cpanel-whm/">Imperva Customers Protected Against CVE-2026-41940 in cPanel &amp; WHM</a> appeared first on <a href="https://www.imperva.com/blog">Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>What is CVE-2026-41940?</h2>
<p><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-41940" target="_blank" rel="noopener">CVE-2026-41940</a> is a critical authentication bypass vulnerability affecting cPanel &amp; WHM, including DNSOnly, in versions after 11.40. The flaw, discovered by <a href="https://labs.watchtowr.com/the-internet-is-falling-down-falling-down-falling-down-cpanel-whm-authentication-bypass-cve-2026-41940/" target="_blank" rel="noopener">WatchTowr Labs</a>, exists in the login flow and allows unauthenticated remote attackers to gain unauthorized access to the control panel. The vulnerability carries a CVSS 3.1 score of 9.8 and is classified under CWE-306: Missing Authentication for Critical Function.</p>
<p>cPanel &amp; WHM is widely used to manage web hosting environments. WHM provides administrative access to hosting infrastructure, while cPanel gives individual account holders control over their hosted sites. Because this vulnerability affects the authentication layer of a management interface, successful exploitation could give attackers access to high-value administrative functions across hosting environments. The issue affects all currently supported versions of cPanel &amp; WHM, and the flaw is tied to session loading and saving behavior.</p>
<p>cPanel has released patched versions and recommends immediate updates. Administrators should update a fixed version, verify the cPanel build, and restart the cPanel service. For environments that cannot immediately patch, cPanel recommends blocking inbound traffic on ports 2083, 2087, 2095, and 2096 or temporarily stopping affected services.</p>
<p><em>Imperva customers are protected out-of-the-box against CVE-2026-41940.</em></p>
<h2>Observations from Our Data</h2>
<p>Since the release of CVE-2026-41940, Imperva has observed nearly 4,000 attack requests targeting customer environments.</p>
<p>Our data shows:</p>
<ul>
<li>Attacks targeting sites across <strong>15 distinct industries</strong> and <strong>17 countries</strong>, indicating broad scanning and opportunistic exploitation rather than activity concentrated against a single vertical or geography.</li>
<li><strong>US-based sites accounted for almost 70% of observed attacks</strong>, followed by <strong>Barbados</strong> and <strong>Israel.</strong> The heavy concentration against US sites suggests attackers are prioritizing regions with large hosting and web infrastructure footprints, while the presence of smaller geographies indicates automated discovery across exposed internet-facing assets.</li>
</ul>
<p><img class="lazyload alignnone size-full wp-image-20878 lazyload" alt="Screenshot 2026 04 30 at 10.32.05 AM" width="1568" height="960" data-src="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/Screenshot-2026-04-30-at-10.32.05-AM.png" srcset="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/Screenshot-2026-04-30-at-10.32.05-AM.png 1568w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/Screenshot-2026-04-30-at-10.32.05-AM-300x184.png 300w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/Screenshot-2026-04-30-at-10.32.05-AM-1024x627.png 1024w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/Screenshot-2026-04-30-at-10.32.05-AM-768x470.png 768w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/Screenshot-2026-04-30-at-10.32.05-AM-1536x940.png 1536w" sizes="(max-width: 1568px) 100vw, 1568px" /></p>
<ul>
<li>The most frequently targeted industries were <strong>Business</strong>, <strong>Society</strong>, and <strong>Education</strong>. This distribution reflects the broad deployment of hosting control panels across organizations that maintain public-facing websites, portals, and distributed web infrastructure.</li>
</ul>
<p><img class="lazyload alignnone size-full wp-image-20880 lazyload" alt="Screenshot 2026 04 30 at 10.32.13 AM 1" width="1568" height="960" data-src="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/Screenshot-2026-04-30-at-10.32.13-AM-1.png" srcset="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/Screenshot-2026-04-30-at-10.32.13-AM-1.png 1568w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/Screenshot-2026-04-30-at-10.32.13-AM-1-300x184.png 300w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/Screenshot-2026-04-30-at-10.32.13-AM-1-1024x627.png 1024w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/Screenshot-2026-04-30-at-10.32.13-AM-1-768x470.png 768w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/Screenshot-2026-04-30-at-10.32.13-AM-1-1536x940.png 1536w" sizes="(max-width: 1568px) 100vw, 1568px" /></p>
<p>While observed volume remains limited compared to mass exploitation campaigns, the spread across industries and countries shows active probing for exposed cPanel and WHM instances. Given the vulnerability’s unauthenticated nature and impact on administrative access, even moderate request volumes warrant urgent attention, and attack volumes will likely grow.</p>
<h3><strong>Mitigation and Protection</strong></h3>
<p>The definitive remediation for CVE-2026-41940 is to update cPanel &amp; WHM to a patched version immediately. Organizations should also review cPanel’s detection guidance, inspect session files for indicators of compromise, and audit WHM access logs for unauthorized activity. cPanel’s advisory specifically recommends purging affected sessions, forcing password resets for root and WHM users, and checking for persistence mechanisms if indicators of compromise are found.</p>
<p>Imperva customers using Cloud WAF and WAF Gateway are protected against exploitation techniques associated with CVE-2026-41940. Imperva’s web application firewall inspects HTTP traffic for malicious patterns, helping block attempts to abuse authentication workflows and session-handling behavior before they reach vulnerable systems.</p>
<p><em>For customers with Cloud WAF, protection is automatically applied. Customers with WAF Gateway should refer to the manual mitigation guide sent by Imperva support teams and provided in the Imperva Community Guide. </em></p>
<h3><strong>Conclusion</strong></h3>
<p>CVE-2026-41940 represents a critical risk for organizations running exposed cPanel &amp; WHM infrastructure. Its combination of unauthenticated access, low attack complexity, and potential administrative impact makes it a high-priority vulnerability for patching, monitoring, and incident review.</p>
<p>Imperva customers are protected against exploitation attempts associated with this vulnerability through Imperva’s web application firewall protections and HTTP traffic inspection capabilities. Organizations running cPanel &amp; WHM should still apply vendor patches immediately, validate their deployed versions, and review available logs and session artifacts for signs of compromise.</p>
<p>The post <a href="https://www.imperva.com/blog/imperva-customers-protected-against-cve-2026-41940-in-cpanel-whm/">Imperva Customers Protected Against CVE-2026-41940 in cPanel &amp; WHM</a> appeared first on <a href="https://www.imperva.com/blog">Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.imperva.com/blog/imperva-customers-protected-against-cve-2026-41940-in-cpanel-whm/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Bad Bot Report 2026: The Internet Is No Longer Human and It’s Changing How Business Works</title>
		<link>https://www.imperva.com/blog/bad-bot-report-2026-bots-agentic-age/</link>
					<comments>https://www.imperva.com/blog/bad-bot-report-2026-bots-agentic-age/#respond</comments>
		
		<dc:creator><![CDATA[Tim Chang]]></dc:creator>
		<pubDate>Wed, 29 Apr 2026 07:03:24 +0000</pubDate>
				<category><![CDATA[Application Security]]></category>
		<guid isPermaLink="false">https://www.imperva.com/blog/?p=20868</guid>

					<description><![CDATA[<p>For decades, companies have operated on a simple assumption that most internet traffic came from people. That assumption no longer holds. The latest 2026 Bad Bot Report: Bad Bots in the Agentic Age reinforces a shift that is now impossible to ignore. Automated traffic continues to outpace human activity online, accounting for more than 53% [&#8230;]</p>
<p>The post <a href="https://www.imperva.com/blog/bad-bot-report-2026-bots-agentic-age/">Bad Bot Report 2026: The Internet Is No Longer Human and It’s Changing How Business Works</a> appeared first on <a href="https://www.imperva.com/blog">Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>For decades, companies have operated on a simple assumption that most internet traffic came from people. That assumption no longer holds.</p>
<p>The latest <a href="https://www.imperva.com/resources/resource-library/reports/2026-bad-bot-report/">2026 Bad Bot Report: Bad Bots in the Agentic Age</a> reinforces a shift that is now impossible to ignore. Automated traffic continues to outpace human activity online, accounting for more than 53% of all web traffic in 2025, up from 51% the year before. Human activity has declined to just 47% and continues to fall.</p>
<p>This is not a short-term spike driven by a specific attack cycle or technology trend. It reflects a structural change in how the internet operates. Increasingly, businesses are not serving customers alone. They are serving machines.</p>
<h2>Key Findings From the 2026 Bad Bot Report</h2>
<ul>
<li><strong>Bots now drive 53% of web traffic.</strong> Automated activity has officially overtaken humans online, up from 51% in 2024.</li>
<li><strong>27% of bot attacks target APIs.</strong> Attackers are bypassing user interfaces entirely to operate directly at machine speed.</li>
<li><strong>Financial services bear the brunt.</strong> The sector accounted for 24% of all bot attacks and 46% of account takeover incidents.</li>
<li><strong>AI agents are a new category of internet participant.</strong> They no longer just scan websites; they retrieve data, execute workflows, and act on behalf of users.</li>
</ul>
<h2>AI Agents and Bots Are Becoming the Default Internet User</h2>
<p>Automation has always existed on the internet in the form of search engine crawlers, scripts, and background processes. What has changed is the scale, sophistication, and purpose of that automation.</p>
<p>AI is accelerating this shift. AI-driven bots have surged dramatically, but more importantly, AI agents are now emerging as a new category of internet participant. These systems don’t just scan websites; they interact with them, retrieve data, execute workflows, and increasingly act on behalf of users.</p>
<p>In practice, this means that what looks like a customer interaction may not be a customer at all. It may be an AI system querying pricing data, completing a transaction, or testing application behavior. For businesses, this blurs a fundamental line. The distinction between legitimate and malicious traffic is becoming harder to define, because both now operate through the same systems, use the same interfaces, and follow the same logic.</p>
<div id="upcoming-banner-marker"></div>
<div class="modal fade video-modal" id="upcoming-banner-modal" tabindex="-1" role="dialog" aria-modal="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-body">
                                                        <button type="button" class="close" data-dismiss="modal" data-gaq-value="Close lightbox" aria-hidden="true">×</button></p>
<div class="video-banner">
<div class="visual">
<div class="inner">
                                                                    <img data-src="https://www.imperva.com/blog/wp-content/uploads/sites/6/2026/04/bad-bot-report-2026.png" class="lazyload  lazyload" alt="bad bot report 2026" >                                                                    <a class="btn-play"  event-action="Click"  event-category="LC Webinar Popup"  event-label="Findings from the 2026 Bad Bot Report - Video Thumbnail"  gtm-track  target="_self" href="#"   data-toggle="modal" data-target="#video-modal-8209"data-dismiss-modal="upcoming-banner-modal" > </a>                                                                </div>
</p></div>
<div class="description">
                                                                <span class="date"><time>May 21</time> Upcoming Webinar</span></p>
<h3>
                                                                    <a class=""  target="_self" href="#"   data-toggle="modal" data-target="#video-modal-8209"data-dismiss-modal="upcoming-banner-modal" >Findings from the 2026 Bad Bot Report</a>                                                                </h3>
<p>                                                                <a class="link-arrow"  event-action="Click"  event-category="LC Webinar Popup"  event-label="Findings from the 2026 Bad Bot Report - Register Now"  gtm-track  target="_self" href="#"   data-toggle="modal" data-target="#video-modal-8209"data-dismiss-modal="upcoming-banner-modal" >Register Now</a>                                                            </div>
</p></div>
</p></div>
</p></div>
</p></div>
</p></div>
<div class="modal fade video-modal" id="video-modal-8209" tabindex="-1" role="dialog" aria-labelledby="modalid3124title" aria-modal="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-body">
                                            <button type="button" class="close" data-dismiss="modal" data-gaq-value="Close lightbox" aria-hidden="true">×</button></p>
<div class="iframe-holder">
<div class="jsBrightTALKEmbedWrapper " style="width:100%; height:100%; position:relative;background: #ffffff; text-align: center;">
                                                    <script class="jsBrightTALKEmbedConfig" type="application/json">
                                                        { "channelId" : 2037 , "language": "en-US", "commId" : 663616, "displayMode" : "standalone", "height" : "auto" }
                                                    </script><br />
                                                    <script src="https://www.brighttalk.com/clients/js/player-embed/player-embed.js" class="jsBrightTALKEmbed"></script>
                                                </div>
</p></div>
</p></div>
</p></div>
</p></div>
</p></div>
<h2>The Rise of Uncontrolled Automation</h2>
<p>The real risk is not the presence of bots, but that much of this automation is unmanaged. In earlier phases of the internet, bot activity was episodic and often easier to identify. Today, automation is persistent. It operates continuously across digital services, often indistinguishable from legitimate use. This creates a new category of risk that many organizations are not yet equipped to handle. Uncontrolled automation can distort business metrics, inflate infrastructure costs, degrade performance, and expose sensitive workflows.</p>
<p>For example, bots can continuously query pricing or availability systems, creating artificial demand signals. They can interact with promotional systems at scale, exploiting business logic in ways that traditional security controls are not designed to detect. Even benign automation, when left unmanaged, can place sustained load on systems that were designed for human behavior.</p>
<p>The result is that companies are increasingly sharing their digital infrastructure with automated agents that they neither fully understand nor control.</p>
<h2>APIs and Identity Systems Sit at the Center of Modern Risk</h2>
<p>As automation evolves, so do attacker strategies. The traditional model of targeting websites at the surface level is giving way to a more direct approach.</p>
<p>Bots are increasingly interacting with the same APIs that power core business functions, including authentication, payments, search, and inventory systems. In 2025, 27% of bot attacks targeted API endpoints, allowing attackers to bypass user interfaces entirely and operate at machine speed. These interactions often appear legitimate, with well-formed requests and successful authentication, but the difference lies in intent and scale.</p>
<p>This is particularly visible in sectors where digital transactions are tightly linked to revenue. Financial services, for example, accounted for 24% of all bot attacks and 46% of account takeover incidents. The goal is not disruption for its own sake, but direct monetization.</p>
<p>In this environment, identity systems are no longer just a security layer. They are a primary point of exposure.</p>
<h2>How AI Agents Are Quietly Rewriting Business Models</h2>
<p>The shift toward machine-driven interaction is not only a security issue. It is beginning to reshape how businesses operate.</p>
<p>If a growing share of traffic is automated, then traditional metrics such as user engagement, conversion rates, and demand signals become harder to interpret. A spike in traffic may not indicate customer interest. A drop in performance may not be caused by user behavior.</p>
<p>At the same time, AI-driven systems are creating new forms of demand. Companies are beginning to consider how and whether to allow AI agents to access their services, and under what conditions. This raises questions about access control, pricing, and even monetization.</p>
<p>Some organizations are exploring models where AI-driven access is authenticated, measured, and potentially governed as a distinct channel. While still early, this points to a future in which businesses must actively manage not just who accesses their systems, but what.</p>
<h2>From Bot Detection to Automation Control</h2>
<p>For years, cybersecurity strategies have focused on detecting and blocking malicious activity. That approach is increasingly insufficient in a world where automation is both pervasive and often legitimate. The more important question is no longer whether traffic is automated, but whether it aligns with business intent.</p>
<p>This shift, from blocking bad bots to governing all automation based on intent, requires a new approach. Organizations must move from viewing bots as anomalies to viewing automation as a fundamental part of their operating environment. That means implementing controls that can distinguish between acceptable and harmful automation, applying governance to how systems are accessed, and designing defenses that can adapt as behavior changes.</p>
<p>In effect, the challenge is becoming one of control rather than detection.</p>
<h2>A Machine-Driven Internet</h2>
<p>The internet is entering a new phase that’s defined less by human interaction and more by machine-to-machine activity. Automation is no longer a layer on top of digital infrastructure but embedded within it, with significant implications for businesses. Trust, performance, and revenue are increasingly shaped by how well organizations manage automated interaction.</p>
<p>Companies that continue to operate under the assumption that users are human risk misreading their own systems. Those that adapt by understanding, governing, and controlling automation will be better positioned to compete in an internet where machines are not just participants, but the majority.</p>
<p>The shift is already underway. The question for businesses is not whether it will happen, but how they will respond.</p>
<h2>Download the Full 2026 Bad Bot Report</h2>
<p>Get the complete data, sector breakdowns, and defense recommendations in Imperva’s <a href="https://www.imperva.com/resources/resource-library/reports/2026-bad-bot-report/"><strong>2026 Bad Bot Report: Bad Bots in the Agentic Age</strong></a>.</p>
<h2>Frequently Asked Questions</h2>
<h3>What is the Imperva Bad Bot Report?</h3>
<p>The Imperva Bad Bot Report is an annual industry research report analyzing global automated bot traffic, attack trends, and the impact of malicious bots on websites, APIs, and applications. The 2026 edition focuses on the rise of AI agents and agentic automation.</p>
<h3>How much of internet traffic is bots in 2025?</h3>
<p>According to Imperva’s 2026 Bad Bot Report, automated bot traffic accounted for more than 53% of all web traffic in 2025, up from 51% the year before. Human traffic has fallen to 47% and continues to decline.</p>
<h3>Why are AI agents a cybersecurity concern?</h3>
<p>AI agents act on behalf of users, retrieving data, executing workflows, and completing transactions through the same interfaces as humans. This blurs the line between legitimate and malicious traffic, makes traditional bot detection insufficient, and exposes APIs and identity systems to automation that organizations cannot easily distinguish from real users.</p>
<h3>Which industries are most affected by bot attacks?</h3>
<p>Financial services experience the highest impact, accounting for 24% of all bot attacks and 46% of account takeover incidents in 2025. APIs are the dominant attack surface, with 27% of bot attacks targeting API endpoints across all industries.</p>
<p>The post <a href="https://www.imperva.com/blog/bad-bot-report-2026-bots-agentic-age/">Bad Bot Report 2026: The Internet Is No Longer Human and It’s Changing How Business Works</a> appeared first on <a href="https://www.imperva.com/blog">Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.imperva.com/blog/bad-bot-report-2026-bots-agentic-age/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure type="image/jpg" url="https://www.imperva.com/blog/wp-content/uploads/sites/9/2021/02/Grinch-Bots-e1612210754973.png" length="824" />	</item>
		<item>
		<title>Why PoP Count Isn’t the Real Measure of Application Security Performance</title>
		<link>https://www.imperva.com/blog/why-pop-count-isnt-the-real-measure-of-application-security-performance/</link>
					<comments>https://www.imperva.com/blog/why-pop-count-isnt-the-real-measure-of-application-security-performance/#respond</comments>
		
		<dc:creator><![CDATA[Tim Ayling]]></dc:creator>
		<pubDate>Sun, 26 Apr 2026 18:47:10 +0000</pubDate>
				<category><![CDATA[Application Security]]></category>
		<guid isPermaLink="false">https://www.imperva.com/blog/?p=20865</guid>

					<description><![CDATA[<p>When evaluating cloud security platforms, one question comes up again and again: “How many Points of Presence do you have?” At first glance, the logic seems sound. More locations should mean lower latency, faster response times, and better protection. The assumption is simple: if security is delivered at the edge, then more edge locations must [&#8230;]</p>
<p>The post <a href="https://www.imperva.com/blog/why-pop-count-isnt-the-real-measure-of-application-security-performance/">Why PoP Count Isn’t the Real Measure of Application Security Performance</a> appeared first on <a href="https://www.imperva.com/blog">Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>When evaluating cloud security platforms, one question comes up again and again:</p>
<p><strong>“How many Points of Presence do you have?”</strong></p>
<p>At first glance, the logic seems sound. More locations should mean lower latency, faster response times, and better protection. The assumption is simple: if security is delivered at the edge, then more edge locations must automatically translate into stronger application security.</p>
<p>That assumption, however, is largely inherited from the content delivery world — and it does not hold up when applied to real‑time application and API protection.</p>
<p><strong>The Common Assumption: More PoPs Means Better Security</strong></p>
<p>In content delivery networks (CDNs), PoP count is a meaningful metric. Static content benefits directly from being cached as close as possible to end users. The more locations you have, the more likely content can be served locally, reducing latency and improving page load times.</p>
<p>Application security operates under a very different set of constraints.</p>
<p>Web Application and API Protection (WAAP) platforms are not simply delivering content. They must inspect every request, enforce security policies, analyze behavior, detect abuse, and mitigate attacks in real time — all while maintaining visibility across global traffic flows.</p>
<p>In this context, <strong>proximity alone is not the primary driver of security effectiveness</strong>.</p>
<p><strong>Not All PoPs Are Created Equal</strong></p>
<p>A Point of Presence is a physical location where traffic is processed — but PoPs vary widely in capability.</p>
<p>Some platforms emphasize deploying a very large number of small, highly distributed PoPs optimized for caching and proximity. Others prioritize fewer, high‑capacity PoPs placed at major internet exchange points and backbone hubs.</p>
<p>These high‑connectivity locations sit directly on global networks, allowing traffic to reach them efficiently from broad geographic regions. In practice, users are often only a few milliseconds away from a well‑connected PoP, even if it is not located in the same city or country.</p>
<p>For security workloads, <strong>network connectivity, inspection depth, and capacity matter far more than raw geographic density</strong>.</p>
<p><strong>Anycast Routing Changes the Equation</strong></p>
<p>Modern security platforms rely on Anycast routing, which automatically directs traffic to the optimal PoP based on real‑time network conditions rather than simple physical distance.</p>
<p>With Anycast routing:</p>
<ul>
<li>Traffic follows the most efficient network path</li>
<li>Performance remains consistent even during outages</li>
<li>Failover happens automatically without user intervention</li>
</ul>
<p>A well‑architected Anycast network can deliver predictable performance and resilience without requiring a PoP in every location where users reside.</p>
<p><strong>Security Is Not the Same as Content Delivery</strong></p>
<p>The most important distinction to understand is this:</p>
<p><strong>CDNs scale by distributing copies of static content.<br />
Security platforms scale by performing stateful inspection and coordinated decision‑making on live traffic.</strong></p>
<p>Security inspection is computationally intensive and context‑dependent. Every request must be evaluated against behavioral models, threat intelligence, and policy logic. This work is fundamentally different from serving cached files.</p>
<p>As PoP counts increase, security platforms must make architectural trade‑offs around:</p>
<ul>
<li>How much inspection can be performed locally</li>
<li>How much capacity is available per location</li>
<li>How security intelligence is synchronized globally</li>
<li>How attacks spanning regions are detected and mitigated</li>
</ul>
<p>These trade‑offs define security outcomes far more than the number of locations alone.</p>
<p><strong>What “Security in Every PoP” Really Means</strong></p>
<p>Some modern platforms advertise that they run security services in every PoP, enabling them to deliver cached content and secure application traffic in the same location.</p>
<p>This approach offers clear advantages for <strong>latency‑sensitive use cases</strong> and environments where performance and security must be tightly coupled at the edge.</p>
<p>However, delivering security everywhere requires security capabilities to be <strong>highly distributed and lightweight by design</strong>. As PoP counts grow into the hundreds or thousands, platforms must balance:</p>
<ul>
<li>Inspection depth versus per‑location footprint</li>
<li>Local decision‑making versus global coordination</li>
<li>Uniformity of protection versus operational complexity</li>
</ul>
<p>In practice, “security in every PoP” often prioritizes <strong>speed and proximity</strong> over <strong>inspection depth, per‑location capacity, and attack absorption strength</strong>. While this model performs well under normal traffic conditions, it does not inherently guarantee stronger protection during large, sustained, or highly coordinated attacks.</p>
<p><strong>Concentrated Capacity vs. Distributed Presence</strong></p>
<p>Highly distributed security architectures excel at minimizing latency and handling everyday traffic efficiently.</p>
<p>Security‑first architectures, by contrast, are designed to concentrate <strong>capacity, intelligence, and mitigation power</strong> at strategically connected locations.</p>
<p>This concentration enables:</p>
<ul>
<li>Immediate absorption of large volumetric attacks without traffic redirection</li>
<li>Deep, stateful inspection even under extreme load</li>
<li>Faster detection of coordinated attack patterns</li>
<li>Predictable performance during worst‑case scenarios</li>
</ul>
<p>For application and API security, the most critical moments are not normal operations, but peak attack conditions. It is during these moments that <strong>per‑PoP capacity and global visibility matter more than sheer geographic density</strong>.</p>
<p><strong>When PoP Density Does Matter</strong></p>
<p>PoP count does play an important role in specific scenarios:</p>
<ul>
<li>Global delivery of static content</li>
<li>Ultra‑low‑latency applications such as gaming or live streaming</li>
<li>Environments heavily reliant on edge caching</li>
</ul>
<p>Many enterprises address this by separating concerns — using one platform optimized for content delivery and another purpose‑built for inline application and API security.</p>
<p><strong>Architecture Over Optics</strong></p>
<p>PoP count makes for an impressive slide, but it does not tell the full story.</p>
<p>The true measure of an application security platform lies in its <strong>network design, routing intelligence, inspection depth, per‑location capacity, and ability to perform under attack</strong> — not in how many dots appear on a map.</p>
<p>Some platforms optimize for being everywhere.<br />
Others optimize for being strong where it matters most.</p>
<p><strong>PoP count measures proximity.<br />
Security performance measures resilience.</strong></p>
<p>In application security, architecture — not optics — determines outcomes.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The post <a href="https://www.imperva.com/blog/why-pop-count-isnt-the-real-measure-of-application-security-performance/">Why PoP Count Isn’t the Real Measure of Application Security Performance</a> appeared first on <a href="https://www.imperva.com/blog">Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.imperva.com/blog/why-pop-count-isnt-the-real-measure-of-application-security-performance/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure type="image/jpg" url="https://www.imperva.com/blog/wp-content/uploads/sites/9/2025/05/server-room.jpg" length="845" />	</item>
		<item>
		<title>Hacking Safari with GPT 5.4 </title>
		<link>https://www.imperva.com/blog/hacking-safari-with-gpt-5-4/</link>
					<comments>https://www.imperva.com/blog/hacking-safari-with-gpt-5-4/#respond</comments>
		
		<dc:creator><![CDATA[Ron Masas]]></dc:creator>
		<pubDate>Thu, 23 Apr 2026 18:58:54 +0000</pubDate>
				<category><![CDATA[Imperva Threat Research]]></category>
		<guid isPermaLink="false">https://www.imperva.com/blog/?p=20832</guid>

					<description><![CDATA[<p>When Anthropic unveiled Mythos and Project Glasswing, the reaction was immediate and polarized. Some dismissed it as fear-driven marketing, while others treated it as a credible shift in the threat landscape. Like with many things, the truth is probably somewhere in the middle. I wanted to test that for myself, and since I recently got [&#8230;]</p>
<p>The post <a href="https://www.imperva.com/blog/hacking-safari-with-gpt-5-4/">Hacking Safari with GPT 5.4 </a> appeared first on <a href="https://www.imperva.com/blog">Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>When Anthropic unveiled Mythos and Project Glasswing, the reaction was immediate and polarized. Some dismissed it as fear-driven marketing, while others treated it as a credible shift in the threat landscape.</p>
<p>Like with many things, the truth is probably somewhere in the middle. I wanted to test that for myself, and since I recently got access to OpenAI’s Trusted Access for Cyber program, I decided to take it for a spin.</p>
<p>GPT-5.4 identified the bugs and helped assemble a working exploit chain, but it wasn’t a simple “build me an exploit” prompt. Guiding it required domain knowledge, iterative probing, and knowing which paths were actually exploitable.</p>
<p>On modern browsers like Safari, exploitation is less about finding bugs and more about finding bugs that still matter after multiple layers of defense.</p>
<p>The bug I&#8217;m going to talk about today sits in a more interesting category. The bug itself looked contained, and in many ways it was. It did not provide a path to RCE or a sandbox escape. What it did instead was cross a different boundary entirely: it broke the Same-Origin Policy.</p>
<p>If you visited a malicious page from any Apple device, it could read authenticated cross-origin data from other sites you use, including access tokens and other sensitive data, making account takeover trivial.</p>
<p>The video below shows the PoC we sent Apple, demonstrating leakage of sensitive data from both Apple Connect and iCloud / Apple ID endpoints. Although this demo focuses on Apple services, the issue affects all websites. This means that by visiting a malicious website, sensitive data from other domains is at risk of being leaked.</p>
<p><div style="width: 1832px;" class="wp-video"><video class="wp-video-shortcode" id="video-20832-1" width="1832" height="1080" preload="metadata" controls="controls"><source type="video/mp4" src="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/safariexploit.mp4?_=1" /><a href="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/safariexploit.mp4">https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/safariexploit.mp4</a></video></div><br />
</br></p>
<h3>The Sandbox Russian Doll</h3>
<p>Browser exploitation in 2026 is a lot like being trapped in a Russian doll.</p>
<p>You start in the smallest doll, and every time you escape one layer you discover you are still trapped inside another one.</p>
<p>Finding a low-level memory bug is not the same thing as finding an exploit. Most of these bugs die in the gap between &#8220;memory corruption happened&#8221; and &#8220;something meaningful crossed a security boundary.&#8221;</p>
<p>On the outside you have the browser process model. Even if renderer code goes wrong, the browser is trying very hard to keep that damage inside the web content process.</p>
<p><img data-src="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/infographic.png" alt="infographic" width="610" height="610" class="lazyload aligncenter size-full wp-image-20848 lazyload" srcset="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/infographic.png 610w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/infographic-300x300.png 300w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/infographic-150x150.png 150w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/infographic-36x36.png 36w" sizes="(max-width: 610px) 100vw, 610px" /></p>
<p>Inside that you have the web security model: Same-Origin Policy, CORS, opaque responses, cookie scoping, and credential modes. Even if a page can trigger a cross-origin request, the renderer, and especially the <a href="https://phakeobj.netlify.app/posts/gigacage/" target="_blank">Gigacage</a>, should not be able to access the response bytes. Right?&#8230;</p>
<h3>The Bug</h3>
<p>The original bug lives in the refresh logic for non-shared resizable WebAssembly memory.</p>
<p>When a non-shared WebAssembly.Memory grows in BoundsChecking mode, JavaScriptCore can replace the underlying memory handle. That part is not the bug. The bug is what happens after that to the JS-visible resizable buffer returned by memory.toResizableBuffer().</p>
<p><img data-src="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/diagram.png" alt="diagram" width="936" height="520" class="lazyload aligncenter size-full wp-image-20850 lazyload" srcset="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/diagram.png 936w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/diagram-300x167.png 300w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/diagram-768x427.png 768w" sizes="(max-width: 936px) 100vw, 936px" /></p>
<p>The bug is simple enough that once I saw it, it was hard to unsee it. Safari&#8217;s grow path effectively does this:</p>
<p><img data-src="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code1.png" alt="code1" width="936" height="206" class="lazyload aligncenter size-full wp-image-20851 lazyload" srcset="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code1.png 936w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code1-300x66.png 300w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code1-768x169.png 768w" sizes="(max-width: 936px) 100vw, 936px" /></p>
<p>And the refresh step effectively does this:</p>
<p><img data-src="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code2.png" alt="code2" width="936" height="238" class="lazyload aligncenter size-full wp-image-20852 lazyload" srcset="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code2.png 936w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code2-300x76.png 300w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code2-768x195.png 768w" sizes="(max-width: 936px) 100vw, 936px" /></p>
<p>After memory.grow(), WebKit updates the buffer metadata, but leaves m_data pointing at the old freed allocation.</p>
<p>So after a grow, JavaScript can hold a buffer whose reported size is new, whose handle is new, but whose actual data pointer still references the old freed Primitive Gigacage allocation.</p>
<p>That turns into a stale typed-array window over freed memory.</p>
<p>On its own, this is already a real bug. But we’re still stuck inside the JavaScriptCore gigacage, effectively sandboxed. Without a second bug to break out into the renderer, it doesn’t chain into anything meaningful. What we have is a solid first-stage primitive, but no real security impact on its own.</p>
<h3>Why it did not look exploitable at first</h3>
<p>The stale window is confined to the Primitive Gigacage, which immediately limits what you can do with it. Many typical targets either never land there, lack useful structure, or fail to produce any cross-boundary effect.</p>
<p>So early on, it had all the hallmarks of a bug that looks promising but rarely goes the distance:</p>
<ul>
<li>easy source-level root cause  </li>
<li>visible stale memory behavior  </li>
<li>real reclaim  </li>
<li>no clean escape path  </li>
</ul>
<p>This is where a lot of low-level browser bugs die.</p>
<p>What changed the problem was a very different framing: maybe I did not need to escape the cage at all.</p>
<p>Maybe I just needed the browser to place something valuable inside it.</p>
<h3>The Pivot</h3>
<p>Instead of asking “how do I get from my stale WASM view to some protected browser state?” I started asking a better question:</p>
<p>“What browser code takes data that JavaScript is not allowed to read, but still copies that data into normal renderer memory?”</p>
<p>Because that is all I need.</p>
<p>I don’t need to break the abstraction.</p>
<p>I just need the browser to break it for me.</p>
<p>That naturally narrows the search space to subsystems that:</p>
<ul>
<li>handle sensitive cross-origin data, and  </li>
<li>still allocate ArrayBuffer-backed memory as part of their internal pipeline  </li>
</ul>
<p>That points straight at Fetch. The <a href="https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch" target="_blank">Fetch API</a> clearly indicates that the response is opaque, meaning that its headers and body are not available to JavaScript.</p>
<p><strong>Opaque Responses Are Supposed to Be Opaque</strong></p>
<p>At the API level, the Fetch model here is straightforward.</p>
<p>If I do a cross-origin request with:</p>
<p>fetch(url, { mode: &#8220;no-cors&#8221;, credentials: &#8220;include&#8221; });</p>
<p>The browser may send the request, including cookies depending on context, but JavaScript receives an opaque response.</p>
<p>That means:</p>
<ul>
<li>I can hold the Response object  </li>
<li>but I cannot read the body bytes  </li>
</ul>
<p>And WebKit enforces that in the obvious place:</p>
<p>FetchBodyOwner::readableStream() blocks opaque bodies via isBodyNullOrOpaque().</p>
<p>So at first glance, everything looks fine. The body is hidden. The policy is enforced. Same-Origin Policy survives another day.</p>
<p>Except it does not.</p>
<h3>The Fetch Behavior that Broke the Modal</h3>
<p>The surprising part is Response.clone().</p>
<p>If FetchResponse::clone() is called while the response is still loading, WebKit will internally create a readable stream so it can tee the body between the original response and the clone.</p>
<p>That internal path does not apply the same opaque-body check first.</p>
<p>And once that happens, hidden response bytes start becoming very real renderer objects.</p>
<p>This is the part that made me stop and stare at the source, because the mismatch is right there.</p>
<p>The normal body path blocks opaque responses:</p>
<p><img data-src="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code3.png" alt="code3" width="936" height="376" class="lazyload aligncenter size-full wp-image-20854 lazyload" srcset="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code3.png 936w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code3-300x121.png 300w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code3-768x309.png 768w" sizes="(max-width: 936px) 100vw, 936px" /></p>
<p>But FetchResponse::clone() does this while the response is still loading:</p>
<p><img data-src="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code4.png" alt="code4" width="936" height="456" class="lazyload aligncenter size-full wp-image-20855 lazyload" srcset="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code4.png 936w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code4-300x146.png 300w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code4-768x374.png 768w" sizes="(max-width: 936px) 100vw, 936px" /></p>
<p>That is why it works.</p>
<p>The visible accessor path says &#8220;opaque bodies do not get a stream.&#8221; The clone path says &#8220;if it is still loading, create a stream so both clones can tee it.&#8221;</p>
<p>That second path is exactly what I needed.</p>
<p>The data flows through normal ArrayBuffer creation paths:</p>
<ul>
<li>buffered chunks go through tryCreateArrayBuffer()  </li>
<li>later chunks go through takeAsArrayBuffer()  </li>
<li>shared buffer data gets copied into ordinary ArrayBuffer allocations inside the renderer  </li>
</ul>
<p>So the policy ends up split in two:</p>
<ul>
<li>the public Fetch API says the body is opaque  </li>
<li>the renderer still materializes the opaque body into readable byte arrays during clone-time streaming </li>
</ul>
<p>Combined with the stale WASM window, it becomes a SOP break.</p>
<h3>The Chain</h3>
<p>At a high level, the exploit became:</p>
<ol>
<li>Force the target WASM memory into the BoundsChecking path.  </li>
<li>Call memory.toResizableBuffer().  </li>
<li>Grow the memory.  </li>
<li>Keep the stale resizable buffer whose pointer still targets freed Primitive Gigacage pages.  </li>
<li>Trigger a cross-origin fetch(&#8230;, { mode: &#8220;no-cors&#8221;, credentials: &#8220;include&#8221; }).  </li>
<li>Call response.clone() while the response is still loading.  </li>
<li>Let Fetch internals materialize the hidden body bytes into ordinary renderer ArrayBuffers.  </li>
<li>Reclaim the stale WASM-covered pages with those allocations.  </li>
<li>Read the cross-origin bytes through the stale view.  </li>
</ol>
<p>That is the entire trick.</p>
<p>I never needed response.text(). I never needed response.arrayBuffer(). I never needed the public API to hand me the body.</p>
<p>The browser copied the body into memory for its own internal bookkeeping, and the stale WASM view read it directly.</p>
<p>That is why this bug stopped being &#8220;some weird WASM UAF&#8221; and became &#8220;this completely breaks the Same-Origin Policy.&#8221;</p>
<p>The file:// Detour</p>
<p>One of the weirdest parts of the research was that the request side behaved differently depending on where I launched it from.</p>
<p>In my testing, cross-origin requests were much easier to get moving from file:// than from a normal https attacker page.</p>
<p>That sounds backwards until you look at WebKit&#8217;s handling of local origins.</p>
<p>Document.cpp has explicit special-casing around local documents and settings like:</p>
<ul>
<li>allowUniversalAccessFromFileURLs  </li>
<li>allowFileAccessFromFileURLs  </li>
</ul>
<p>MiniBrowser exposes those knobs too, which made file:// very useful as a research environment. It let me focus on the memory side and confirm the leak path before I had a clean web-facing story.</p>
<p>But I did not want a local-file party trick.</p>
<p>I wanted a real web exploit.</p>
<p>And from a normal https page, the same request pattern was not giving me the reliability I wanted.</p>
<p>That is where about:blank saved me.</p>
<h3>Why about:blank saved the final POC</h3>
<p>The final PoC opens an about:blank popup and performs the fetches from there:</p>
<p><img data-src="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code5.png" alt="code5" width="936" height="326" class="lazyload aligncenter size-full wp-image-20856 lazyload" srcset="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code5.png 936w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code5-300x104.png 300w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code5-768x267.png 768w" sizes="(max-width: 936px) 100vw, 936px" /></p>
<p>This ended up mattering a lot.</p>
<p>At first I thought this was just an origin-inheritance trick. That part is real:</p>
<p><img data-src="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code6.png" alt="code6" width="936" height="178" class="lazyload aligncenter size-full wp-image-20857 lazyload" srcset="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code6.png 936w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code6-300x57.png 300w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code6-768x146.png 768w" sizes="(max-width: 936px) 100vw, 936px" /></p>
<p>So about:blank does inherit the opener&#8217;s origin.</p>
<p>But that alone does not explain why the popup path behaved differently.</p>
<p>What actually seems to matter is Safari&#8217;s cookie / first-party bookkeeping. Fetch subresource requests copy document->firstPartyForCookies() into the request:</p>
<p><img data-src="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code7.png" alt="code7" width="936" height="94" class="lazyload aligncenter size-full wp-image-20858 lazyload" srcset="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code7.png 936w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code7-300x30.png 300w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code7-768x77.png 768w" sizes="(max-width: 936px) 100vw, 936px" /></p>
<p>And WebKit&#8217;s cookie blocking logic bails out immediately if that first-party domain is empty:</p>
<p><img data-src="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code8.png" alt="code8" width="936" height="168" class="lazyload aligncenter size-full wp-image-20859 lazyload" srcset="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code8.png 936w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code8-300x54.png 300w, https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/code8-768x138.png 768w" sizes="(max-width: 936px) 100vw, 936px" /></p>
<p>That is a very different path from a normal attacker-controlled https page. From a regular https://attacker.example origin, the first party is the attacker site, so a request to the victim site looks third-party and Safari&#8217;s tracking-prevention logic can suppress cookies.</p>
<p>From the about:blank popup path, the security origin still comes from the opener, but the popup&#8217;s top-level URL / first-party context is no longer a normal registrable https site in the same way. In practice, that was enough to make credentials: &#8220;include&#8221; requests behave differently and get me the authenticated traffic pattern I needed.</p>
<p>So the important point is not &#8220;about:blank disabled CORS.&#8221; It did not. The important point is:</p>
<ul>
<li>the popup kept the opener&#8217;s origin  </li>
<li>the request still went through normal Fetch/CORS code  </li>
<li>Safari&#8217;s first-party cookie logic treated that popup context differently </li>
</ul>
<p>That was the difference between &#8220;cross-origin request happens but is useless&#8221; and &#8220;cross-origin request comes back with authenticated bytes worth stealing.&#8221;</p>
<h3>Why this was fun</h3>
<p>This is my favorite kind of browser bug.</p>
<p>Not because the root cause was complicated. It was not. The WASM bug was almost embarrassingly direct.</p>
<p>And not because the final chain was huge. It was not.</p>
<p>It was fun because it is exactly the kind of bug modern browser architecture is supposed to suppress.</p>
<p>A stale pointer inside a cage is supposed to stay a stale pointer inside a cage.</p>
<p>An opaque response is supposed to stay opaque.</p>
<p>Those are both reasonable assumptions.</p>
<p>The exploit works because both assumptions were true only locally.</p>
<p>JavaScriptCore gave me a stale view that looked hard to use. WebCore Fetch gave me sensitive bytes that looked impossible to read.</p>
<p>Put them together and Safari&#8217;s Same-Origin Policy fell apart.</p>
<h3>Disclosure</h3>
<p>We reported our findings to Apple. Shortly after, a fix shipped, suggesting the issue was already known internally.</p>
<p>The vulnerability (CVE-2026-20664) is addressed in iOS 26.4 and iPadOS 26.4 (23E6254 and later), and macOS Tahoe 26.4 (25E253 and later). Make sure your systems are up to date.</p>
<h3>Closing Thoughts</h3>
<p>The biggest thing on my mind after working with these models is the leverage they provide, and what that means for N-days. A security patch in popular software used to hide the underlying exploit behind time, effort, and expertise. Now that you can scale tokens instead of effort, that barrier is mostly gone.</p>
<p>This doesn’t turn exploitation into a trivial task. You still need someone who understands what they are looking at, can filter noise, and can steer the process when it stalls. But AI changes the unit of work. Instead of deep, sequential effort, you get parallel exploration and rapid iteration. The constraint shifts from raw effort to how effectively an operator can guide multiple lines of inquiry at once.<br />
`</p>
<p>The post <a href="https://www.imperva.com/blog/hacking-safari-with-gpt-5-4/">Hacking Safari with GPT 5.4 </a> appeared first on <a href="https://www.imperva.com/blog">Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.imperva.com/blog/hacking-safari-with-gpt-5-4/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure type="image/jpg" url="https://www.imperva.com/blog/wp-content/uploads/sites/9/2026/04/GPT-5.4.png" length="936" />	</item>
	</channel>
</rss>
