Vulnerability (computer security)

From Wikipedia, the free encyclopedia
(Redirected from Software vulnerability)

Template:Short description Lua error in package.lua at line 80: module 'Module:Sidebar/configuration' not found. In computer security, vulnerabilities are flaws or weaknesses in a system's design, implementation, or management that can be exploited by a malicious actor to compromise its security.

Despite a system administrator's best efforts to achieve complete correctness, virtually all hardware and software contain bugs where the system does not behave as expected. If the bug could enable an attacker to compromise the confidentiality, integrity, or availability of system resources, it can be considered a vulnerability. Insecure software development practices as well as design factors such as complexity can increase the burden of vulnerabilities.

Vulnerability management is a process that includes identifying systems and prioritizing which are most important, scanning for vulnerabilities, and taking action to secure the system. Vulnerability management typically is a combination of remediation, mitigation, and acceptance.

Vulnerabilities can be scored for severity according to the Common Vulnerability Scoring System (CVSS) and added to vulnerability databases such as the Common Vulnerabilities and Exposures (CVE) database. As of April 2026, more than 327,000 vulnerabilities had been recorded in the CVE database.[1]

A vulnerability is initiated when it is introduced into hardware or software. It becomes active and exploitable when the software or hardware containing the vulnerability is running. The vulnerability may be discovered by the administrator, vendor, or a third party. Publicly disclosing the vulnerability (through a patch or otherwise) is associated with an increased risk of compromise, as attackers can use this knowledge to target existing systems before patches are implemented. Vulnerabilities will eventually end when the system is either patched or removed from use.

Causes

Despite a system administrator's best efforts, virtually all hardware and software contain bugs.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. If a bug creates a security risk, it is called a vulnerability.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Software patches are often released to fix identified vulnerabilities, but zero-days are still liable for exploitation.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Vulnerabilities vary in their ability to be exploited by malicious actors, and the actual risk is dependent on the nature of the vulnerability as well as the value of the surrounding system.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Although some vulnerabilities can only be used for denial-of-service attacks, more dangerous ones allow the attacker to perform code injection without the user's awareness.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Only a minority of vulnerabilities allow for privilege escalation, which is typically necessary for more severe attacks.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Without a vulnerability, an exploit typically cannot gain access.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. It is also possible for malware to be installed directly, without an exploit, through social engineering or poor physical security such as an unlocked door or exposed port.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.

Design factors

Vulnerabilities can be worsened by poor design factors, such as:

  • Complexity: Large, complex systems increase the possibility of flaws and unintended access points.[2]
  • Familiarity: Using common, well-known code, software, operating systems, and/or hardware increases the probability an attacker has or can find the knowledge and tools to exploit the flaw.[3] However, using well-known software, particularly free and open-source software, comes with the benefit of having more frequent and reliable software patches for any discovered vulnerabilities.[citation needed]
  • Connectivity: any system connected to the internet can be accessed and compromised. Disconnecting systems from the internet can be extremely effective at preventing attacks, but it is not always feasible.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.
  • Legacy software and hardware is at increased risk by nature.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. System administrators should consider upgrading from legacy systems, but this is often prohibitive in terms of cost and downtime.[citation needed]

Development factors

Poor software development practices can affect the likelihood of introducing vulnerabilities to a code base. Lack of knowledge or training regarding secure software development, excessive pressure to deliver, or an excessively complex code base can all allow vulnerabilities to be introduced and left unnoticed. These factors can also be exacerbated if security is not prioritized by the company culture.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Inadequate code reviews can also lead to missed bugs, but there are also static code analysis tools that can be used during the code review process to help find some vulnerabilities.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.

DevOps, a development workflow that emphasizes automated testing and deployment to speed up the deployment of new features, often requires that many developers be granted access to change configurations, which can lead to deliberate or inadvertent inclusion of vulnerabilities.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Compartmentalizing dependencies, which is often part of DevOps workflows, can reduce the attack surface by paring down dependencies to only what is necessary.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. If software as a service is used, rather than the organization's own hardware and software, the organization is dependent on the cloud services provider to prevent vulnerabilities.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.

National Vulnerability Database classification

Page Module:Message box/ambox.css has no content.

The National Vulnerability Database classifies vulnerabilities into eight root causes that may be overlapping, including:Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.

  1. Input validation vulnerabilities exist when input checking is not sufficient to prevent the attacker from injecting malicious code. Buffer overflow exploits, buffer underflow exploits, and boundary condition exploits typically take advantage of this category.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.
  2. Access control vulnerabilities enable an attacker to access a system that is supposed to be restricted to them, or engage in privilege escalation.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.
  3. When the system fails to handle and exceptional or unanticipated condition correctly, an attacker can exploit the situation to gain access.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.
  4. Configuration vulnerability come into existence when configuration settings cause risks to the system security, leading to such faults as unpatched software or file system permissions that do not sufficiently restrict access.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.
  5. A race condition—when timing or other external factors change the outcome and lead to inconsistent or unpredictable results—can cause a vulnerability.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.

Vulnerabilities by component

Hardware

Script error: No such module "Labelled list hatnote". Deliberate security bugs can be introduced during or after manufacturing and cause the integrated circuit not to behave as expected under certain specific circumstances. Testing for security bugs in hardware is quite difficult due to limited time and the complexity of twenty-first century chips,Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. while the globalization of design and manufacturing has increased the opportunity for these bugs to be introduced by malicious actors.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.

Operating system

Script error: No such module "Labelled list hatnote". Although operating system vulnerabilities vary depending on the operating system in use, a common problem is privilege escalation bugs that enable the attacker to gain more access than they should be allowed. Open-source operating systems such as Linux and Android have a freely accessible source code and allow anyone to contribute, which could enable the introduction of vulnerabilities. However, the same vulnerabilities also occur in proprietary operating systems such as Microsoft Windows and Apple operating systems.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. All reputable vendors of operating systems provide patches regularly.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.

Client–server applications

Client–server applications are downloaded onto the end user's computers and are typically updated less frequently than web applications. Unlike web applications, they interact directly with a user's operating system. Common vulnerabilities in these applications include:Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.

  • Unencrypted data that is in permanent storage or sent over a network is relatively easy for attackers to steal.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.
  • Process hijacking occurs when an attacker takes over an existing computer process.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.

Web applications

Web applications run on many websites. Because they are inherently less secure than other applications, they are a leading source of data breaches and other security incidents.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. They can include:

Attacks used against vulnerabilities in web applications include:

  • Cross-site scripting (XSS) enables attackers to inject and run JavaScript-based malware when input checking is insufficient to reject the injected code.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. XSS can be persistent, when attackers save the malware in a data field and run it when the data is loaded; it can also be loaded using a malicious URL link (reflected XSS).Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Attackers can also insert malicious code into the domain object model.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.
  • SQL injection and similar attacks manipulate database queries to gain unauthorized access to data.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.
  • Command injection is a form of code injection where the attacker places the malware in data fields or processes. The attacker might be able to take over the entire server.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.
  • Cross-site request forgery (CSRF) is creating client requests that do malicious actions, such as an attacker changing a user's credentials.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.
  • Server-side request forgery is similar to CSRF, but the request is forged from the server side and often exploits the enhanced privilege of the server.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.
  • Business logic vulnerability occurs when programmers do not consider unexpected cases arising in business logic.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.

Taxonomy

Security bugs generally fall into a fairly small number of broad categories that include:[5]

Management

Script error: No such module "Labelled list hatnote".

There is little evidence about the effectiveness and cost-effectiveness of different cyberattack prevention measures.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Although estimating the risk of an attack is not straightforward, the mean time to breach and expected cost can be considered to determine the priority for remediating or mitigating an identified vulnerability and whether it is cost effective to do so.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Although attention to security can reduce the risk of attack, achieving perfect security for a complex system is impossible, and many security measures have unacceptable cost or usability downsides.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. For example, reducing the complexity and functionality of the system is effective at reducing the attack surface.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.

Successful vulnerability management usually involves a combination of remediation (closing a vulnerability), mitigation (increasing the difficulty, and reducing the consequences, of exploits), and accepting some residual risk. Often a defense in depth strategy is used for multiple barriers to attack.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Some organizations scan for only the highest-risk vulnerabilities as this enables prioritization in the context of lacking the resources to fix every vulnerability.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Increasing expenses is likely to have diminishing returns.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.

Remediation

Remediation fixes vulnerabilities, for example by downloading a software patch.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Vulnerability scanners are typically unable to detect zero-day vulnerabilities, but are more effective at finding known vulnerabilities based on a database. These systems can find some known vulnerabilities and advise fixes, such as a patch.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. However, they have limitations including false positives.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.

Vulnerabilities can only be exploited when they are active-the software in which they are embedded is actively running on the system.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Before the code containing the vulnerability is configured to run on the system, it is considered a carrier.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Dormant vulnerabilities can run, but are not currently running. Software containing dormant and carrier vulnerabilities can sometimes be uninstalled or disabled, removing the risk.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Active vulnerabilities, if distinguished from the other types, can be prioritized for patching.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.

Vulnerability mitigation is measures that do not close the vulnerability, but make it more difficult to exploit or reduce the consequences of an attack.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Reducing the attack surface, particularly for parts of the system with root (administrator) access, and closing off opportunities for exploits to engage in privilege exploitation is a common strategy for reducing the harm that a cyberattack can cause.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. If a patch for third-party software is unavailable, it may be possible to temporarily disable the software.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.

Testing

A penetration test attempts to enter the system via an exploit to see if the system is insecure.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. If a penetration test fails, it does not necessarily mean that the system is secure.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Some penetration tests can be conducted with automated software that tests against existing exploits for known vulnerabilities.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Other penetration tests are conducted by trained hackers. Many companies prefer to contract out this work as it simulates an outsider attack.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.

Vulnerability lifecycle

Vulnerability timeline

The vulnerability lifecycle begins when vulnerabilities are introduced into hardware or software.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Detection of vulnerabilities can be by the software vendor, or by a third party. In the latter case, it is considered most ethical to immediately disclose the vulnerability to the vendor so it can be fixed.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Government or intelligence agencies buy vulnerabilities that have not been publicly disclosed and may use them in an attack, stockpile them, or notify the vendor.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. As of 2013, the Five Eyes (United States, United Kingdom, Canada, Australia, and New Zealand) captured the plurality of the market and other significant purchasers included Russia, India, Brazil, Malaysia, Singapore, North Korea, and Iran.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Organized criminal groups also buy vulnerabilities, although they typically prefer exploit kits.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.

Even vulnerabilities that are publicly known or patched are often exploitable for an extended period.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Security patches can take months to develop,Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. or may never be developed.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. A patch can have negative effects on the functionality of softwareLua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. and users may need to test the patch to confirm functionality and compatibility.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Larger organizations may fail to identify and patch all dependencies, while smaller enterprises and personal users may not install patches.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Research suggests that risk of cyberattack increases if the vulnerability is made publicly known or a patch is released.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Cybercriminals can reverse engineer the patch to find the underlying vulnerability and develop exploits,Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. often faster than users install the patch.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.

Vulnerabilities become deprecated when the software or vulnerable versions fall out of use.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. This can take an extended period of time; in particular, industrial software may not be feasible to replace even if the manufacturer stops supporting it.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.

Assessment, disclosure, and inventory

Assessment

A commonly used scale for assessing the severity of vulnerabilities is the open-source specification Common Vulnerability Scoring System (CVSS). CVSS evaluates the possibility to exploit the vulnerability and compromise data confidentiality, availability, and integrity. It also considers how the vulnerability could be used and how complex an exploit would need to be. The amount of access needed for exploitation and whether it could take place without user interaction are also factored in to the overall score.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.

Disclosure

Someone who discovers a vulnerability may disclose it immediately (full disclosure) or wait until a patch has been developed (responsible disclosure, or coordinated disclosure). The former approach is praised for its transparency, but the drawback is that the risk of attack is likely to be increased after disclosure with no patch available.[6] Some vendors pay bug bounties to those who report vulnerabilities to them.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Not all companies respond positively to disclosures, as they can cause legal liability and operational overhead.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. There is no law requiring disclosure of vulnerabilities.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. If a vulnerability is discovered by a third party that does not disclose to the vendor or the public, it is called a zero-day vulnerability, often considered the most dangerous type because fewer defenses exist.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.

Vulnerability inventory

The most commonly used vulnerability dataset is Common Vulnerabilities and Exposures (CVE), maintained by Mitre Corporation.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. As of April 2026, it has over 327,000 entries.[1] This information is shared into other databases, including the United States' National Vulnerability Database,Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. where each vulnerability is given a risk score using Common Vulnerability Scoring System (CVSS), Common Platform Enumeration (CPE) scheme, and Common Weakness Enumeration.[citation needed] CVE and other databases typically do not track vulnerabilities in software as a service products.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Submitting a CVE is voluntary for companies that discovered a vulnerability.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.

Liability

The software vendor is usually not legally liable for the cost if a vulnerability is used in an attack, which creates an incentive to make cheaper but less secure software.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Some companies are covered by laws, such as PCI, HIPAA, and Sarbanes-Oxley, that place legal requirements on vulnerability management.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.

See also

References

Page Template:Reflist/styles.css has no content.

  1. ^ a b Page Module:Citation/CS1/styles.css has no content."CVE Program Mission". www.cve.org. Retrieved 2026-04-14.
  2. ^ Page Module:Citation/CS1/styles.css has no content.Kakareka, Almantas (2009). "23". In Vacca, John (ed.). Computer and Information Security Handbook. Morgan Kaufmann Publications. Elsevier Inc. p. 393. ISBN 978-0-12-374354-1.
  3. ^ Page Module:Citation/CS1/styles.css has no content.Krsul, Ivan (April 15, 1997). Technical Report CSD-TR-97-026. The COAST Laboratory Department of Computer Sciences, Purdue University. CiteSeerX 10.1.1.26.5435.
  4. ^ Page Module:Citation/CS1/styles.css has no content."CWE/SANS TOP 25 Most Dangerous Software Errors". SANS. Retrieved 13 July 2012.
  5. ^ Page Module:Citation/CS1/styles.css has no content.Alhazmi, Omar H.; Woo, Sung-Whan; Malaiya, Yashwant K. (Jan 2006). "Security vulnerability categories in major software systems". Proceedings of the Third IASTED International Conference on Communication, Network, and Information Security.
  6. ^ Page Module:Citation/CS1/styles.css has no content."Ask an Ethicist: Vulnerability Disclosure". Association for Computing Machinery's Committee on Professional Ethics. 17 July 2018. Retrieved 3 May 2024.

Sources

Page Template:Refbegin/styles.css has no content.

  • Page Template:Sister-inline/styles.css has no content.Script error: No such module "Sister project logo". Media related to Script error: No such module "Commons link". at Wikimedia Commons

Lua error in package.lua at line 80: module 'Module:Navbox/configuration' not found.

Lua error in package.lua at line 80: module 'Module:Authority control/config' not found.