Why Are We Still Finding XSS in 2026?

Why Are We Still Finding XSS in 2026?

“What is the most common vulnerability you still find in 2026?”

It is a question we ask our penetration testers regularly.

While Cross-Site Scripting (XSS) may not necessarily be the most common vulnerability we find, it is one that continues to stand out — both because of its potential impact and because, with the maturity of modern web application frameworks, we arguably shouldn’t still be finding it as often as we do.

Yet, in 2026, we still do.

What are the different types of XSS? - Blog Detectify

What is Cross-Site Scripting?

Cross-Site Scripting, better known as XSS, occurs when an application allows untrusted content to be interpreted and executed within a user’s browser.

The impact can vary enormously.

At the lower end, a finding such as self-XSS may have little practical security impact. At the other end of the spectrum, XSS can allow an attacker to execute malicious code in another user’s session, impersonate that user, access information available to them or perform actions with their privileges. OWASP notes that successful XSS attacks can result in account impersonation, sensitive-data theft and other serious consequences.

This becomes particularly concerning within authenticated web applications.

If a low-privileged user can exploit an XSS vulnerability in a way that targets an administrator or another highly privileged user, the consequences can become significantly more serious. PortSwigger similarly notes that when the compromised user has elevated privileges, XSS can potentially allow an attacker to compromise the application and its users.

In the right circumstances, what initially appears to be a client-side vulnerability can therefore become a pathway to privilege escalation and broader application compromise.

So why are we still finding it?

This is perhaps the most surprising part.

Modern web application frameworks have been around for well over a decade, and many provide developers with built-in mechanisms that make safely handling dynamic content considerably easier.

OWASP specifically recommends modern frameworks such as React, Vue, Angular and Svelte because of the protections they provide when handling dynamic data – while warning that developers still need to avoid unsafe APIs and implementation patterns that can reintroduce XSS risk.

React is a good example.

By default, developers have safer mechanisms for rendering content. However, React also provides an escape hatch called dangerouslySetInnerHTML, which allows raw HTML to be inserted directly into the DOM.

The name is fairly telling.

React’s own documentation warns that the feature should be used with “extreme caution” because passing untrusted data to it can introduce an XSS vulnerability.

In other words, in many modern applications, developers may actually need to bypass or work around protections already provided by the framework before certain XSS vulnerabilities become possible.

That is what makes continuing to find them so frustrating.

CSP is improving – but implementation matters

There has been another positive change: we are increasingly seeing applications implement Content Security Policy (CSP) headers.

A well-designed CSP provides an additional layer of defence against XSS by controlling which scripts and other resources a browser is permitted to execute or load. OWASP recommends CSP as a defence-in-depth control alongside secure development practices rather than as a replacement for them.

However, simply having a CSP header doesn’t necessarily mean an application has strong protection.

We still regularly see policies containing directives such as:

'unsafe-inline'

and

'unsafe-eval'

These directives permit behaviours that CSP is often intended to restrict. OWASP’s current Web Security Testing Guide specifically warns that unsafe-inline significantly weakens XSS protections, while unsafe-eval permits dynamic code evaluation and increases the risk of CSP bypass.

So while seeing CSP implemented more frequently is encouraging, the strength of the policy matters just as much as its presence.

Security flaws in Network Time Protocol make other (security) protocols vulnerable | Cybersecurity | SIDN

Could XSS eventually disappear?

Hopefully.

Modern frameworks already provide developers with many of the tools required to prevent XSS. Strong Content Security Policies can add another important defensive layer. Secure coding practices, appropriate output encoding and sanitisation can further reduce the attack surface.

The technology exists.

The challenge is using it correctly and consistently.

XSS vulnerabilities can have some of the most significant impacts we encounter during web application penetration testing, particularly when privileged users can be targeted.

And in 2026, we are still finding them far too often.

Our hope is that, as secure framework usage and CSP implementation continue to mature, XSS becomes a vulnerability we eventually stop finding altogether.

 

More Blogs

May 31, 2021

Upgrading from AppLocker to Windows Defender Application Control (WDAC)

Windows Defender Application Control (WDAC), formerly known as Device Guard, is a Microsoft Windows secure feature that restricts executable code, including scripts run by enlightened Windows script hosts, to those that conform to the device code integrity policy. WDAC prevents the execution, loading and running of unwanted or malicious code, drivers and scripts. WDAC also… Continue reading Upgrading from AppLocker to Windows Defender Application Control (WDAC)

Read More
cyber security companies | penetration testing | managed security service provider | cyber security consultant
June 22, 2021

Bypassing LSA Protection (aka Protected Process Light) without Mimikatz on Windows 10

Starting with Windows 8.1 (and Server 2012 R2) Microsoft introduced a feature termed LSA Protection. This feature is based on the Protected Process Light (PPL) technology which is a defense-in-depth security feature that is designed to “prevent non-administrative non-PPL processes from accessing or tampering with code and data in a PPL process via open process… Continue reading Bypassing LSA Protection (aka Protected Process Light) without Mimikatz on Windows 10

Read More
cyber security companies | penetration testing | managed security service provider | cyber security consultant
June 7, 2020

Using Zeek to detect exploitation of Citrix CVE-2019-19781

Using the tool Zeek, formally known as bro, is a high-level packet analysis program. It originally began development in the 1990s and has a long history. It does not directly intercept or modify traffic, rather it passively observes it and creates high-level network logs. It can be used in conjunction with a SIEM to allow… Continue reading Using Zeek to detect exploitation of Citrix CVE-2019-19781

Read More