Introduction: “XSS? Still?”
In the middle of 2025, are we still talking about XSS? Yes, we still are. Even with the use of modern frameworks, intelligent WAFs and a plethora of articles explaining how to mitigate this threat, Cross-Site Scripting (XSS) is still present, sneaky, persistent and often overlooked.
XSS is one of the first vulnerabilities covered in introductory courses on offensive security and web application penetration testing. With a simple payload, instructors demonstrate how trivial this flaw is to exploit, highlighting the danger and ease of its exploitation.
XSS is one of the first vulnerabilities covered in introductory courses on offensive security and web application penetration testing. With a simple payload, instructors demonstrate how trivial this flaw is to exploit, highlighting the danger and ease of its exploitation.
But what is XSS anyway? According to OWASP, Cross-Site Scripting attacks are a type of injection in which malicious scripts are inserted into vulnerable websites. These attacks occur when an attacker uses a web application to send malicious code, usually scripts executed in the browser, to another user. The flaws that make these attacks possible are quite common and arise whenever a web application incorporates user input into the generated output without carrying out appropriate validation or coding.
Also according to OWASP, the victim's browser has no mechanism for distinguishing legitimate scripts from malicious ones. Thus, when it receives and executes the code, it trusts that it came from a secure source. As a result, the attacker can access cookies, session tokens and other sensitive information stored by the browser, as well as rewriting the content of the page or redirecting the user to malicious sites disguised as legitimate ones.
CVE-Hunters vs XSS
The CVE-Hunters group was created in November 2024 as a joint initiative between students and a teacher, with a clear objective: to identify vulnerabilities (CVEs) in open source projects. The proposal was to give students practical experience in searching for flaws in real environments, going beyond controlled labs or Capture The Flag (CTF) challenges.
Since then, the group has analyzed a wide range of projects, from small community systems to applications widely used in the public and educational sectors. Along the way, one pattern has stood out: the frequency with which Cross-Site Scripting (XSS) vulnerabilities have been found.
This recurrence raises an important question: have developers stopped treating XSS seriously enough? Despite being a widely documented and known flaw for years, it still appears frequently. Even in organizations with mature development processes, XSS vulnerabilities continue to appear due to the complexity of input and output flows, the use of legacy libraries or the lack of contextualized testing.
Currently, the group has 135 reported vulnerabilities, 53 of which have already been officially registered as CVEs. Of the total number of vulnerabilities discovered, 104 are of the XSS type, which represents a significant and worrying proportion.
62 occurrences of the stored type and 42 of the reflected type were identified, revealing a relatively even distribution.
This statistics alone reinforces the idea that XSS is still a real problem, often overlooked during development, and that it continues to deserve attention, both from the technical community and from developers responsible for applications in production.
Practical experience
You may now be thinking: "OK, the CVE-Hunters group has found a lot of XSS in open source projects, but who's to say that large companies are also vulnerable?"
Let's do a quick experiment, with one of the most recent XSS disclosed during the writing of this article: CVE-2025-0133. An XSS reflected in the GlobalProtect gateway and portal products, features of Palo Alto Networks' PAN-OS, published on May 14, 2025.
With a simple query on Shodan, we can check the estimated amount of use of this product in the world.
However, this doesn't mean that everyone is vulnerable. Let's go through the experiment for this article.
First, we extract some results from Shodan, a small sample of the total amount:
|
|
After that, we can use Nuclei
to test for this vulnerability and automate the test:
|
|
Template used for scanning: CVE-2025-0133.
|
|
We obtained a significant number of vulnerable hosts. Next, we tried to identify, among these results, any hosts that had a public VDP, so that we could notify them of the vulnerability. This step is a bit complex to do manually, so we used artificial intelligence to cross-reference the domains extracted from Shodan
with information available on the internet about companies that have bug bounty programs or open VDPs.
During this research, we found only two domains with public VDPs - one a large private sector company, the other a government agency. Both are based in the United States: one with a VDP hosted on BugCrowd and the other with a private VDP, accessible via email.
We reported both vulnerabilities to the companies responsibly.
It is important to note that the sample tested represents only a fraction of the systems exposed.
More numbers
If you're still not convinced by the amount of XSS we have out there, we can do another simple search in the GitHub Advisory Database where we get a return of over 31,611 XSS-related occurrences.
A search in the CVE (Common Vulnerabilities and Exposures) database also reveals a significant number of registered vulnerabilities related to XSS, demonstrating its recurrence in different systems, applications and contexts over the years.
In addition, a search carried out on the HackerOne platform, widely recognized in the Bug Bounty ecosystem, results in a total of 2,225 public reports involving Cross-Site Scripting vulnerabilities. This data reinforces not only the prevalence of XSS, but also the security community's continued interest in exploiting and reporting it, even in environments with high security standards.
What can you do with an XSS besides alert(1)?
The famous alert(1) is often the first example used to demonstrate an XSS flaw. However, the real impacts of this vulnerability go far beyond a simple alert window. Below, we list some classic and well-known malicious actions that can be carried out by an attacker when exploiting a Cross-Site Scripting flaw:
- Cookie Theft, (if the cookie is not protected with the HttpOnly flag);
- Session Hijacking, assuming the victim's identity in authenticated applications;
- Keylogging, capturing everything the user types on the compromised page;
- Malicious Redirects to fake pages, with the aim of applying scams;
- Performing actions on behalf of the user, such as sending messages, changing settings or deleting data;
- Remote Code Execution, although rare and depending on the specific context, it may be possible to gain remote access to the system from an XSS.
These examples show that even though XSS is an often underestimated vulnerability, it can have serious consequences, especially when exploited in applications with sensitive data or with a high level of privilege for the affected user.
Conclusion
XSS is not dead, perhaps it has just been ignored in the face of new, more 'glamorous' threats. But its silent presence continues to offer an exploitable attack surface, often with critical impact.
Despite often being classified as a vulnerability of medium or even low severity, XSS should not be underestimated. Its impact can be significant, especially when it involves stealing cookies, session hijacking or redirecting to malicious pages. And what's more dangerous: traditional protections are not always enough to prevent the user from being tricked into clicking on that phishing site that is using a legitimate URL with an XSS vulnerability.
After all, XSS often depends on a single click, and in this scenario, the weakest link is usually the user themselves. It doesn't matter how robust your framework is or how well configured your WAF is: if the attacker manages to create a convincing malicious link, all it takes is one inattentive action by the victim for the attack to materialize.
While we rely on frameworks and WAFs, the attacker relies on our carelessness and the user's curiosity.
Despite often being classified as a vulnerability of medium or even low severity, XSS should not be underestimated. Its impact can be significant, especially when it involves stealing cookies, session hijacking or redirecting to malicious pages. And what’s more dangerous: traditional protections are not always enough to prevent the user from being tricked into clicking on that phishing site that is using a legitimate URL with an XSS vulnerability.
After all, XSS often depends on a single click, and in this scenario, the weakest link is usually the user themselves. It doesn’t matter how robust your framework is or how well configured your WAF is: if the attacker manages to create a convincing malicious link, all it takes is one inattentive action by the victim for the attack to materialize.
While we rely on frameworks and WAFs, the attacker relies on our carelessness and the user’s curiosity.
Written by
Contributor
Partnership
This post was made in partnership with Hacktiba for Pulse 07.
Por: CVE-Hunters