A vulnerability is a weakness in software or a system that unintended use can exploit to cause unauthorized harm. It commonly arises from poorly developed code, inadequate testing, or well-intentioned features whose complexity creates unforeseen security holes. section 12.1 section 12.7.1
Manage vulnerabilities as an ongoing organizational responsibility:
- Keep third-party software and libraries on a regular patch schedule, and test and schedule updates rather than treating patching as a single action. section 12.1 section 12.10
- Use recent penetration testing, developer education, code review, logging, alerts, and kill switches to reduce exposure and contain breaches. section 12.10 section 12.11
- Treat user input as untrusted and recognize that language design, such as manual memory management, can change the kinds of weaknesses developers must control. section 12.7.1
SQL injection through an ordinary lookup
A name-search feature concatenates user input into a database statement. An attacker submits crafted input that turns one intended query into multiple statements, potentially emptying a table without special network or database privileges. section 12.7.1
stmt = “SELECT id, email FROM table X WHERE name='” + inputFromUser + “'“;
Inspect the vulnerable statement pattern that places user input directly inside a database query. section 12.7.1















