TechKnowSurge
NIST NICE K0688 NIST CSF ID.RA-01 Cisco CCST Cybersecurity 1.2 ISC2 CC 1.1 NIST NICE K0723 NIST CSF ID.RA-08 NIST 800-53 RA-5 Cisco CCST Cybersecurity 4.1
VideoSecurityFree

Threats - Common Software Vulnerabilities

Software vulnerabilities exist across operating systems, applications, and web platforms, with common threats including buffer overflows, race conditions, SQL injection, cross-site scripting, and zero-day exploits. Understanding the vulnerability life cycle and resources like the CVE database are essential for maintaining a strong security posture.

Complete this video to capture a CTF flag worth 1 point.

About this video

Software vulnerabilities are a persistent reality across every layer of a computing environment, from the operating system that manages hardware resources to the applications users interact with daily. Operating systems are particularly high-value targets because of their central role in system function; each new release or feature update introduces new code that may contain undiscovered flaws. Applications carry similar risk, and unpatched software, combined with unchanged default credentials, creates openings that attackers can reliably exploit. Keeping both operating systems and applications current with security patches is one of the most effective controls available against these threats. At the application level, buffer overflows occur when a program writes data beyond its allocated memory space, potentially corrupting adjacent processes and enabling memory injection attacks. Race conditions arise from the time gap between a permission check and the actual use of a resource, allowing an attacker to exploit a briefly valid state that should no longer be accessible. Malicious updates present another vector, where software designed to look like a legitimate patch delivers harmful code instead. In web environments, SQL injection attacks manipulate database queries by inserting unauthorized commands through input fields, potentially exposing entire datasets, while cross-site scripting allows attackers to plant code on web servers that executes in the browsers of unsuspecting visitors. Vulnerabilities follow a defined life cycle. A flaw enters the zero-day stage the moment vulnerable code is deployed, before developers are even aware of its existence. Once discovered, it is cataloged in the Common Vulnerabilities and Exposures database, a publicly accessible repository that currently contains tens of thousands of reported entries and grows significantly each year. Developers then work to produce and distribute a patch, but the interval between zero-day discovery and patch deployment, known as the window of vulnerability, is the period during which systems face the greatest risk with the fewest available defenses.

What you'll learn

What's covered

Common Software Vulnerabilities

Aligned to

NIST NICE
K0688 Knowledge of common application vulnerabilities
K0723 Knowledge of vulnerability data sources
NIST CSF
ID.RA-01 Vulnerabilities in assets are identified, validated, and recorded.
ID.RA-08 Processes for receiving, analyzing, and responding to vulnerability disclosures are established.
Cisco CCST Cybersecurity
1.2 Explain common threats and vulnerabilities
4.1 Explain vulnerability management
ISC2 CC
1.1 Understand cybersecurity concepts
NIST 800-53
RA-5 Vulnerability Monitoring and Scanning

Key terms

Vulnerability
A weakness in a system, application, or process that can be exploited by a threat actor.
Buffer Overflow
A software vulnerability that occurs when a program writes more data to a fixed-size memory buffer than it can hold, overwriting adjacent memory. Attackers exploit buffer overflows to crash programs or execute arbitrary malicious code.
Race Condition
A software vulnerability that occurs when a system's behavior depends on the timing or sequence of events — an attacker who can manipulate the window between a time-of-check and a time-of-use can alter the outcome in their favor.
SQL Injection
SQLi
An attack that inserts malicious SQL code into a query to manipulate a database.
Cross-Site Scripting
XSS
Cross-Site Scripting is a web application attack in which malicious scripts are injected into trusted web pages and executed in the browsers of unsuspecting users, enabling session hijacking, credential theft, and unauthorized actions on behalf of the victim.
Zero-Day
A vulnerability that is unknown to the vendor and has no available patch at the time of exploitation.
Window of Vulnerability
The period of time between the discovery or release of a vulnerability and the availability and deployment of a patch to fix it.
Common Vulnerabilities and Exposures
CVE
Common Vulnerabilities and Exposures is a publicly maintained dictionary that assigns unique identifiers to known software and hardware vulnerabilities, providing a common reference point for vulnerability tracking, disclosure, and remediation.
Patch Management
The process of acquiring, testing, and installing software updates to fix vulnerabilities and improve functionality.

Topics

Software Vulnerabilities Web Security Sql Injection Cross Site Scripting Buffer Overflow Zero Day Exploits Cve

Transcript

Operating systems

Perhaps one of the things most known for vulnerabilities are operating systems. They're a pretty significant part of a computer and how a computer functions, and so they're very susceptible to these vulnerabilities. There'll be new releases that come out for operating systems to give it more functionality, but as these new items and new functionality are released, what happens is that code has vulnerabilities to it, and so then we open up holes within our operating system. Which is one reason why we want to make sure that our machine gets patched, at least with security updates.

Applications

Similarly, we also want to make sure that we have all of our applications patched on a regular basis. The problem is that these applications also open up vulnerabilities to our computer, and so we need to make sure that these are patched in a timely manner, especially when it comes to security updates.

Never use default credentials. A lot of times when we roll out new software, new operating systems or new hardware, it has default credentials on it. This is a vulnerability because it never gets changed, so make sure you change those right away.

Buffer overflow and memory injection

Another vulnerability in software is a buffer overflow. That's when a computer program is using more memory than it's allocated. So let's say this is the total amount of memory, or RAM, that's on this machine right here, and it's allocated a certain section of this for program A. And there are other programs running on here, so program B, C and D all have their memory allocation as well. Well, what happens with a buffer overflow is when program A uses more memory than it should and overwrites the sections of a different program, causing a problem with the way this computer is running. So that's the buffer overflow. And what can be leveraged with this is something like a memory injection attack, where a program is injecting more memory and using more memory than it's allocated.

Race conditions

Another vulnerability that you could find in software is called a race condition. The idea behind a race condition is you have some sort of check, and then you have a use based off of that check, and there's this time that is elapsed. That time could be a very short period of time, or it could be a very long period of time. But essentially you have something that gets checked — maybe it's permissions into a resource, perhaps it's a bank account balance — there's something that gets checked. So you've got this TOC, time elapses, and then you've got this TOU, time of use, and the difference between these two is the time of check to time of use.

So a good example of this is when you log into a Windows system, you get the permissions to these different resources. Well, if it doesn't check along the way, what could happen is you could get permission to a resource at this time of check, and then it could be taken away somewhere along this process, and then later on you still have access to it because you're still signed in and you haven't got an update to the permission level.

Malicious updates

We've already mentioned that you need to update software, whether it's the operating system or applications that are running on your machine. But there are times when there are malicious updates, when your computer pops up and says you need to install this new updated software, and it's actually some sort of trick, trying to get you to install some sort of software that looks like an update to a legitimate application but is actually malicious code.

Web-based vulnerabilities

There's also web-based vulnerabilities. These are web servers right here, and code or software gets installed on these web servers so that way it can deliver services to end users. But that's only half of the picture. A lot of the data that actually gets sent to the end user comes from a database, and there's a lot of different data that is on this database. What will happen is the user is not supposed to interact directly with that database. Instead, the user makes a request to the servers, and then the servers take the code and figure out what the request should look like and send that, via a language called SQL, back to the database. And then the database sends back to the servers the information that it needs to form the website and the data that the user is requesting, and sends it back to them. And this all happens in a very controlled environment right here.

Well, what a SQL injection, or a structured query language injection, is, is the user — instead of submitting the request, like maybe their username and password, or maybe their address or something to that effect, instead of submitting that into the fields that get sent back over to the server — they submit SQL injections, or SQL language, into those fields. It goes through the server, those commands get passed, the requests get passed to the database server, the database server executes that, and then this user ends up getting a lot more information than they should have. Maybe it lists out not just their address but all of the addresses that they put in the request for, or all of the usernames and passwords that are on the system. That could be very problematic.

The other problem is this cross-site scripting. I'm not going to get heavy into the details of it, and there's different types of cross-site scripting, but essentially the attacker would then put some sort of code on the web servers — that's one example of this — and so when somebody goes and visits the web server, they'll end up sending a lot of data directly to the attacker.

The software vulnerability life cycle

Vulnerabilities have a life cycle. They have a beginning, middle and end, and it starts out with a vulnerability getting released out there. Now why does a vulnerability get released? Well, software is constantly being developed and constantly being changed. Sometimes they need to release patches to fix something that was broken before; sometimes they need to release new features out there. So they're releasing some sort of code, not realizing that it has a vulnerability in it. So they release it, it goes out there, it gets installed on everybody's machine, and at this point in time it's called, or considered, zero day. The idea is that zero day is that the developers have had zero days to do anything about it. They probably don't even know about it. And so that's zero day right there.

Now what happens is at some point in time that vulnerability gets discovered, and it's going to go on the common vulnerabilities and exposures list, the CVE. The CVE is a big database of all of these vulnerabilities that show all of what's wrong out there. And then we go into the developers creating some sort of patch, because they're aware of it now — they create a patch and they send out a patch. Now the problem is that between this zero day and things getting patched, things are vulnerable. There is this level of vulnerability, and we call that the window of vulnerability between these two times.

The CVE database

I wanted to take a quick look into this common vulnerabilities and exposures. It's just as it sounds: this is a database that has all of the vulnerabilities and exposures that have been found and reported up until now. I'm sure there's quite a bit more that are out there, but this is what is known to this database. And they post everything, so it's all displayed. You can actually download a list of all of the exposures, and it's reported in a JSON format.

So if I go to this About and click on this Metrics, I just want to show you one of the cool things about this. This is showing you how much is part of this database, and there's thousands and thousands of records as part of this database. We have the years across the top, the quarters, and the total for each of the years. So we can see that last year — at the time of this recording — was 2023, and there were 28,961 vulnerabilities that were reported here, and 25,000 the year before that, and then 20,000, then 18,000. So it's a significant database, it's very large. But this is the common vulnerabilities and exposures.

About TechKnowSurge

TechKnowSurge builds IT and cybersecurity professionals through hands-on, concept-first training built around real understanding — not memorization. Free interactive tools, structured programs, and 25+ years of real-world experience, all in one place.

Explore free tools and programs →