Security+ SY0-801 Vulnerability Types and Attack Surfaces
Vulnerabilities are weaknesses an attacker can exploit, and the attack surface is every place those weaknesses can be reached. Security+ objective 2.4 asks you to name each kind on its list from a short description: systems that are unsupported, unpatched, obsolete or unmanaged; open ports and services; application and code flaws such as race conditions and hardcoded secrets; OS, virtualization and cryptographic weaknesses; zero-days; stale credentials, rogue devices and shadow IT; and exposed platforms from wireless sensors and mobile phones to LLMs, identity providers, public repositories and public storage buckets. This lesson groups them by the one fact that tells near twins apart.
On this page10 sections
- What vulnerabilities and attack surfaces are
- Unsupported, unpatched, obsolete and zero-day: telling the fix-status twins apart
- Unmanaged systems, rogue devices, shadow IT and stale credentials
- Ports, services and misconfiguration
- Application and code flaws: race conditions, malicious updates, hardcoded secrets and exception handling
- OS-based and virtualization vulnerabilities
- Cryptographic vulnerabilities
- Wireless, low-powered communications and mobile devices
- Identity providers and large language models: components with a large blast radius
- Public repositories and public object storage
- Distinguish zero-day, unpatched, unsupported and obsolete systems by whether a fix exists and what the technology can do
- Tell unmanaged systems, rogue devices, shadow IT and unmanaged/stale credentials apart by approval and management status
- Explain how open ports, unnecessary services and misconfiguration enlarge the attack surface, and why removing a service beats hiding it
- Describe race conditions (TOC/TOU), malicious updates, hardcoded secrets and unsafe exception handling, and the fix for each
- Classify OS-based, virtualization and cryptographic vulnerabilities by where the weakness lives
- Explain the exposure created by wireless and low-power links, mobile devices, LLM applications and identity providers
- Explain the risks of public repositories and public object storage and the right first response to a leaked secret
What vulnerabilities and attack surfaces are
A vulnerability is a weakness that a threat can exploit, and the attack surface is the sum of every place an attacker can try to exploit one: each reachable service, account, device, interface, data store and integration. Security+ objective 2.4 lists the kinds of weakness and exposure you must be able to name from a short description. Most items give you one or two observable facts (is a fix available? did IT approve this? can the setting be changed?) and ask which label fits.
The list is easier to hold if you group it by the question each entry answers:
| Group | Question that decides it | Entries on the 2.4 list |
|---|---|---|
| Fix and lifecycle status | Does a fix exist, and has it been applied? | Unsupported products, unpatched systems, obsolete systems, zero-day |
| Visibility and authorization | Does IT know about it, approve it and manage it? | Unmanaged systems, rogue devices, shadow IT, unmanaged/stale credentials |
| Exposure by configuration | Is sound software set up insecurely or running more than it needs? | Ports and services, misconfiguration |
| Flaws in software | Where in the stack does the defect live? | Applications (race conditions TOC/TOU, malicious update), code (hardcoded secrets, unsafe exception handling), OS-based, virtualization, cryptographic vulnerabilities |
| Exposed platforms and data | What can be reached through this component? | Wireless and low-powered communications, mobile devices, large language models (LLMs), identity providers, public repositories, public object storage |
Scope matters. Objective 2.4 is about what is weak or exposed. How an attack is delivered (email, Bluetooth, supply chain as a vector) belongs to objective 2.3, the evidence that an attack is happening belongs to 2.5, and AI-specific attacks such as prompt injection belong to 2.6. When a scenario describes a weakness and asks what kind it is, you are in 2.4.
Unsupported, unpatched, obsolete and zero-day: telling the fix-status twins apart
These four are separated by one question: does a fix exist for this system, and has it been installed? Read the scenario for that fact before anything else.
- Zero-day: a flaw that is being exploited (or is known to attackers) before the vendor has released a fix. Defenders have had zero days to patch. The label describes the flaw's disclosure status, not the age of the system.
- Unpatched system: a fix exists and is available, but it has not been applied. The vulnerability is the gap between release and installation, which is why patch management targets that window.
- Unsupported product: the vendor has ended support (end of life / end of support), so no further fixes will be issued for that version. A fully updated unsupported system is not "unpatched": there is nothing left to install, and every flaw found from now on stays open until the system is upgraded, replaced or isolated. A vendor that fixes a flaw only in newer versions while stating older ones get no more updates is telling you the older version is unsupported.
- Obsolete system: technology so outdated that it cannot meet current security requirements, for example a discontinued platform that cannot run modern encryption or the endpoint protection agent. Obsolete is about capability, not patch status: a system can still be receiving fixes and still be obsolete if its design cannot do what current policy requires, such as a controller whose processor is too limited to support certificate-based authentication.
| Label | Fix exists? | Typical evidence | Remedy |
|---|---|---|---|
| Zero-day | Not yet | Exploitation reported in the wild; advisory with no patch | Compensating controls (isolate, filter, monitor) until a fix ships |
| Unpatched | Yes, not installed | Scanner shows a missing update released weeks or months ago | Apply the update through patch management |
| Unsupported | Never, for this version | Vendor has ended support; fixes only in newer versions | Upgrade, replace, or isolate with compensating controls |
| Obsolete | May still be patched | Outdated or discontinued technology that cannot run current controls | Replace; meanwhile segment and add compensating controls |
The status of one flaw changes over time. A flaw that attackers use in spring, before the vendor has shipped anything, is a zero-day; once the vendor publishes a fix in summer, every system that has not installed it becomes an unpatched system. When attacks started does not decide the label; whether a fix exists at the moment you are asked about does.
Unmanaged systems, rogue devices, shadow IT and stale credentials
These four describe assets and accounts that security cannot see or control, and they are separated by two facts: was it approved, and is it under central management?
- Unmanaged system: a known, approved asset (it may even be listed in the asset inventory) that sits outside the central configuration, patching and monitoring tools, either because it was never onboarded or because it later dropped out, for example when someone uninstalls the management agent. Its security state is unknown and it is missing from compliance reports. Unmanaged is often the cause of unpatched: installing today's missing updates by hand clears the scan, but the gap reopens with the next release until the system is brought back under management.
- Rogue device: unauthorized hardware attached to the network, such as a home-grade Wi-Fi router someone connects to an office port, or a small travel router bridged to the wired network. A rogue access point or modem can give an outsider a path that bypasses the perimeter. Network access control (NAC) and wireless scans are how they are found.
- Shadow IT: technology or services that staff adopt without IT approval or knowledge, usually to get work done faster: a marketing team collecting customer sign-ups through an online form builder nobody reviewed, or staff syncing meeting notes to a personal note-taking app. IT cannot secure, back up or monitor what it does not know exists.
- Unmanaged/stale credentials: accounts and secrets nobody is actively governing. Stale credentials outlive their purpose (enabled accounts of people who left, unused service accounts, passwords never rotated). Unmanaged credentials live outside the central identity system, such as a shared login for a vendor support portal kept in a spreadsheet; because the identity system does not know the credential exists, disabling a departing user there does not revoke it, so offboarding misses it.
| Label | Approved? | Known to IT? | Under management? |
|---|---|---|---|
| Unmanaged system | Yes | Yes | No |
| Shadow IT | No | No | No (adopted by staff for a business purpose) |
| Rogue device | No | No (until discovered) | No (unauthorized hardware on the network, possibly planted) |
| Stale/unmanaged credential | Was, once (or created outside central control) | Often not | No (not disabled, rotated or reviewed) |
Defences follow from the definitions: an accurate asset inventory reconciled against management-tool enrollment (unmanaged), NAC and wireless surveys (rogue), discovery tools such as a cloud access security broker plus an easy approval path (shadow IT), and access reviews, automated deprovisioning and SSO-only sign-in (credentials).
Ports, services and misconfiguration
Every listening port and running service is attack surface, so a system should run only the services its role needs. A database server that also runs a web-based admin console and an SNMP agent nobody uses has two extra listeners an attacker can probe. The lasting fix is to remove or disable what the role does not need, because a service that is not running has no flaws to exploit. Anything that only limits who can reach a running service, or makes it harder to spot, reduces exposure without removing it: the code still runs, its flaws are unchanged, and a later change can expose it again. Treat those as compensating steps when a service genuinely cannot be removed, and when something still depends on an unneeded service, change the dependency so the service can go.
Misconfiguration is sound, supported, fully patched software set up insecurely. Common forms include default credentials left in place, a cloud security group allowing administrative traffic from every address when only the admin network needed it, management interfaces exposed to the internet, permissive file or share permissions, sample pages and test endpoints left enabled after installation, and storage set to public. When the software is current and supported, look for the setting that allowed the attack before reaching for a rarer label.
Misconfiguration has a near twin in the code group. The test is whether the customer can change it:
| Default password (misconfiguration) | Hardcoded secret (code flaw) | |
|---|---|---|
| Where it lives | A setting with a published default value | Embedded in source code, binary or firmware |
| Can the customer change it? | Yes, through normal settings | No; only a new build or firmware from the vendor removes it |
| Fix | Change it at installation (and enforce that in the build standard) | Vendor removes it; meanwhile restrict access to the interface |
Application and code flaws: race conditions, malicious updates, hardcoded secrets and exception handling
Objective 2.4 names two application weaknesses and two code weaknesses. Each describes a different mistake, so classify by what goes wrong.
Race conditions: time-of-check to time-of-use (TOCTOU)
A race condition is a flaw where the result depends on the timing of events. The tested form is TOCTOU: a program checks a condition at the time of check (TOC) and acts on it at a later time of use (TOU), and an attacker changes the resource in between. Examples: a ticketing site confirms a seat is free and reserves it in a separate step, so two buyers who click at the same instant are both sold the same seat; or a driver validates a length value in shared memory and then reads it again to use it, and another process changes it between the two reads (a "double fetch"). The fix is to make check and use one atomic operation (a lock, a transaction, a conditional update, or opening the file and then checking the open handle). Controls that inspect what a request contains, or how often requests arrive, leave the gap between check and use in place; only atomicity removes it.
Malicious update
A malicious update is attacker code delivered through a trusted update channel. It happens when a vendor's build or update infrastructure is compromised, or when control of a trusted component passes to an attacker (a widely used code library whose maintainer's publishing account is hijacked, so the next release carries a backdoor). Because systems install the update as designed, the victims are fully up to date, which is what separates it from an unpatched system. A valid digital signature proves who published the update, not that its contents are safe. Mitigations include vendor risk assessment, staged rollouts, monitoring for changed behaviour after updates and controlling which plug-ins, packages and auto-updating components are allowed.
Hardcoded secrets
A hardcoded secret is a password, API key, token or private key embedded in source code, a compiled app or firmware. Anyone who obtains the code can extract it: a desktop client's installer can contain a database connection string with its password, and every unit of a network appliance can share the same embedded SSH private key. Store secrets in a secrets manager or vault, inject them at run time, scan code for secrets before it is committed, and rotate any secret that was ever embedded.
Unsafe exception handling
Exception handling is what code does when something fails. It is unsafe in two ways:
- Information leakage: showing users internal details such as framework versions, database error text or internal paths. Errors should be logged in detail on the server and answered with a generic message.
- Failing open: treating an error as success, for example an order pipeline that ships the order when the fraud-scoring call throws an exception. Security checks must fail closed: if a check cannot complete, the answer is deny.
The tell is the error path itself: the weakness appears only when something the code depends on fails, and the code's response to that failure decides the outcome.
OS-based and virtualization vulnerabilities
Classify these by where the flaw lives. An OS-based vulnerability is a flaw in the operating system itself: the kernel, a built-in service or a system library. Because the component ships with the OS, exposure follows the OS version rather than the software installed on top of it. Typical impact is local privilege escalation (a standard user gains root or SYSTEM) or remote code execution through a built-in network service. Patching, removing unneeded OS features and least privilege reduce it.
A virtualization vulnerability is a flaw in the hypervisor or the isolation it provides between virtual machines. The main forms are:
- VM escape: code in a guest breaks out to the host, and from there can reach every other guest on it. In a multi-tenant cloud that means other customers' instances.
- Resource reuse: memory or disk blocks passed from one VM to another without being wiped, so a new tenant can read fragments of the previous tenant's data.
- Hypervisor and management-plane flaws: compromising the hypervisor or its console controls every VM it hosts.
The deciding detail is the boundary that failed. A kernel flaw inside one guest is OS-based; a flaw that lets one guest reach the host or another guest is virtualization. A well-configured tenant cannot fix a broken isolation boundary with settings, which is also why these are not misconfigurations. Keep hypervisors patched, restrict management interfaces, and separate sensitive workloads onto dedicated hosts where the risk justifies it.
Cryptographic vulnerabilities
A cryptographic vulnerability is a weakness in how cryptography is chosen or used that lets an attacker read, forge or crack protected data. A strong cipher name does not guarantee strong protection; the weakness is often around it. The main forms are:
- Weak or deprecated algorithms: MD5 and SHA-1 for integrity or signatures, DES and 3DES, RC4, and old protocol versions such as SSL and early TLS.
- Poor password storage: storing passwords with fast, unsalted hashes such as MD5. Without a salt, identical passwords produce identical hashes and precomputed (rainbow table) lookups work. Use a slow, salted password-hashing function (bcrypt, scrypt, Argon2 or PBKDF2).
- Weak randomness: keys, IVs or nonces from a predictable generator. Password-reset tokens generated from a pseudo-random function seeded with the current time can be recreated by an attacker who knows roughly when they were issued. Keys must come from a cryptographically secure random number generator.
- Short keys and poor key management: insufficient key length, keys reused across systems, never rotated, or stored next to the data they protect.
Call it cryptographic when the algorithm, the key strength or the randomness is the weak point. Two near twins: a key fixed in code is a hardcoded secret (the problem is where it is stored), and a sound key stolen from the system that issues sign-ins is an identity provider exposure (the problem is control of a trust anchor).
Wireless, low-powered communications and mobile devices
Wireless and low-powered communications are radio links anyone in range can listen to or try to join, and constrained devices often trade security for battery life. Smart-lighting controllers, wireless door locks, asset tags and other IoT radios frequently ship with shared factory network keys, weak or no encryption and limited ability to update. The exposure is the radio link itself, whether or not the devices were properly authorized: an attacker nearby can eavesdrop, inject commands or join the network with the factory key. Defences are unique keys at install, encryption enabled wherever the protocol supports it, segmenting these devices from business systems, and choosing devices that can receive updates. (Radio-based delivery methods such as Bluetooth, RF and NFC are threat vectors under objective 2.3.)
Mobile devices carry corporate data and rely on the platform's security model: app sandboxing, store review and OS updates. Weaknesses come from removing or bypassing that model:
| Term | What it is | Why it matters |
|---|---|---|
| Jailbreaking | Removing iOS restrictions to gain privileged control of the device | Defeats the sandbox; allows unsigned apps |
| Rooting | Gaining root (administrator) access on Android | Defeats the sandbox, so any app granted root can reach other apps' data and the per-app protections no longer hold |
| Sideloading | Installing an app from outside the official store (on Android, by allowing unknown sources) | Skips store review; needs no root; a common route for spyware |
| Carrier unlocking | Letting the phone work on another mobile network | Not a security bypass; does not remove OS restrictions |
Devices that no longer receive OS updates are a further mobile risk. Mobile device management (MDM) can detect jailbroken or rooted devices, block sideloading and enforce minimum OS versions before granting access to corporate data.
Identity providers and large language models: components with a large blast radius
Some components are dangerous because of how much they can reach. An identity provider (IdP) authenticates users once and issues signed assertions or tokens that every federated application trusts. Whoever controls the IdP, or steals its token-signing key, can mint sign-ins for any user in any connected app, with no password or MFA needed, because the forged assertions are validly signed. Protect the IdP as a tier-zero system: hardened servers or a managed service, signing keys in an HSM, tightly limited administrators, and monitoring of signing-key and federation-trust changes. The reverse also holds: any credential created outside the IdP is invisible to it (see unmanaged credentials).
A large language model (LLM) application becomes an attack surface as soon as it is connected to data and actions. A support assistant connected to the ticketing system that can read customer records and issue refunds is a new path to those records and that refund function for anyone who can influence what the model reads or is asked. Its attack surface is everything it can read plus every action it can take, so limit both: least-privilege access to data sources, narrow tool and API permissions, human approval for consequential actions, and logging of what the model retrieved and did. The specific AI attacks (such as prompt injection, poisoning, jailbreaking and code execution) are objective 2.6; 2.4 asks you to recognise the LLM as the exposure.
Public repositories and public object storage
Both entries are data made reachable by anyone, but the container differs. A public repository is a source code repository (for example on a code-hosting platform) that anyone can read. It leaks more than secrets: deployment templates and configuration files reveal server names, IP addressing and security-group design, which together form a reconnaissance map. Version control also keeps history: every earlier commit stays retrievable, so a secret removed from the latest version is still in the repository. Public repositories are scraped by automated tools almost immediately, so any token or key that was ever public must be treated as compromised. The first step is to revoke or rotate it, because that makes every copy already taken worthless; cleanup of the repository comes afterwards, along with secret scanning so it does not happen again.
Public object storage is a cloud bucket, container or blob store whose access policy allows anonymous access. Anonymous read publishes everything in it (database backups, documents). Anonymous write is just as serious: if the bucket that hosts the installer customers download accepts uploads from anyone, an attacker can replace it with a trojanized copy that every new customer then runs. Block public access by default at the account level, grant access to named identities only, and monitor for policy changes.
| Public repository | Public object storage | |
|---|---|---|
| What is exposed | Source code, configuration and its full history | Files and objects in a bucket or container |
| Typical harm | Leaked secrets; infrastructure details for reconnaissance | Data download; tampering with objects others load (anonymous write) |
| First response | Revoke or rotate any exposed secret, then clean up the repository | Remove anonymous access, then check what was read or changed |
Tip. Objective 2.4 is tested mainly with short scenarios that describe one weakness through an observable detail (a scan result, an access review finding, a code review note, a cloud permission) and ask which vulnerability type or attack surface it represents. The options are usually sibling entries from the same 2.4 list, so the decision rests on one fact: whether a fix exists and is installed, whether the asset was approved and is managed, whether a setting can be changed, or which layer (application, OS, hypervisor, cryptography) holds the flaw. Harder items combine two facts, such as a timeline that moves a flaw from zero-day to unpatched, an outdated system that still receives fixes, or an error path that grants access. Some ask for the most effective fix or first response rather than the label, such as making a check atomic, disabling an unneeded service, or rotating a leaked secret.
- No fix yet = zero-day; fix available but not installed = unpatched; no fix ever for this version = unsupported; can't meet current requirements even if patched = obsolete
- Approved but outside management tools = unmanaged system; never approved hardware on the network = rogue device; unapproved service adopted by staff = shadow IT
- Accounts that outlive their owners are stale; credentials created outside the central identity system are unmanaged, and offboarding there never reaches them
- Remove or disable services the role does not need; limiting reach to a running service reduces exposure but leaves its flaws in place
- A changeable default password is a misconfiguration; a secret only a new build can change is hardcoded
- Fix TOCTOU race conditions by making check and use atomic, and make security checks fail closed when they error
- A valid signature on an update proves who shipped it, not that it is safe: malicious updates reach fully up-to-date systems
- A strong cipher is undone by weak randomness, unsalted fast hashes or deprecated algorithms
- An IdP signing key and an LLM's connected data and tools are high-value surfaces: everything that trusts them is exposed with them
- A secret that was ever in a public repository is burned: revoke or rotate it first, then clean up; public buckets risk tampering (write) as well as leaks (read)
Frequently asked questions
What is the difference between a zero-day and an unpatched system?
A zero-day is a flaw that is exploited before the vendor has released a fix, so there is nothing to install. An unpatched system is missing a fix that already exists. The same flaw moves from zero-day to unpatched the moment the vendor publishes its patch, and any system that has not installed it from then on is unpatched.
What is the difference between an unsupported product and an obsolete system?
An unsupported product is one whose vendor has ended support, so no more security fixes will be released for it. An obsolete system is outdated technology that cannot meet current security requirements, such as a platform that cannot run modern encryption. A system can still receive fixes and still be obsolete; obsolete describes capability, unsupported describes the vendor's fixes.
How is shadow IT different from an unmanaged system or a rogue device?
Shadow IT is technology or a service that staff adopt without IT approval, such as an online form builder a department signs up for on its own. An unmanaged system is a known, approved asset that was never enrolled in management and patching tools. A rogue device is unauthorized hardware attached to the network, such as an unapproved wireless access point. Approval and IT's knowledge are the deciding facts.
What is a TOCTOU race condition?
A time-of-check to time-of-use (TOCTOU) race condition happens when a program checks a condition, such as file ownership or an account balance, and acts on it a moment later, and an attacker changes the resource in that gap. It is fixed by making the check and the use a single atomic operation, for example with a lock, a transaction or a conditional update.
Is a default password a misconfiguration or a hardcoded secret?
A default password that the customer can change through normal settings, but did not, is a misconfiguration. A password or key embedded in code or firmware that no setting can change or disable is a hardcoded secret, and only the vendor can remove it with a new build.
What does unsafe exception handling mean?
Unsafe exception handling is code that mishandles errors in a way that weakens security. The two common forms are showing users internal details such as framework versions and database error text, and failing open, where an error during a security check lets the request proceed as if the check had passed. Safe handling logs details on the server, shows a generic message and denies when a check cannot complete.
What should you do first if a secret is exposed in a public repository?
Revoke or rotate the exposed token, password or key immediately. Public repositories are copied and scraped quickly, and version control keeps earlier commits, so the secret must be treated as compromised wherever it has gone. Repository cleanup and secret scanning follow once the secret no longer works.
Why are identity providers and LLMs listed as attack surfaces?
Both reach far beyond themselves. An identity provider's signing key is trusted by every federated application, so stealing it lets an attacker forge sign-ins anywhere without passwords or MFA. An LLM application exposes everything it can read and every action its tools allow to anyone who can influence its input, so its data access and permissions should be kept to the minimum.
Source
This lesson covers the "Threats, Vulnerabilities, and Attacks" domain of the official SY0-801 exam guide. Vendors revise their guides — check the source for the current version.
Sign up free to mark lessons complete, bookmark topics and track your exam readiness.