The top classes of vulnerabilities for 2019 indicate that developers still don't correctly sanitize inputs, nor protect passwords and keys as they should.

4 Min Read

Open-source software projects continue to struggle with handling sensitive information, according to automated scans of hundreds of millions of commits to code repositories.

Software-security toolmaker DeepCode found that four of the seven vulnerabilities classes with the greatest impact on the security of software projects had to do with failures to protect data. The categories of Missing Input Data Sanitization and Insecure Password Handling laid claim to the top-two slots on the company's list of important vulnerability classes. Two other data security issues — Weak Cryptography and Lack of Information Hiding — came in No. 6 and No. 7 on the list, which was published this week.

The issues underscore that developers need to continue to focus on producing secure code in 2020, says Boris Paskalev, CEO and co-founder of the company. "We believe that any developer who has these issues should want to take care of them," he says, adding the developers should continue to learn about security. "In at least every other other major repository, we see a security vulnerability."

Driven by increased research into software security, more software under development, companies' greater openness to vulnerability reporting, and perhaps most of all - improvements to the process of recording vulnerability reports - the number of software security issues published in the National Vulnerability Database rose to the highest recorded level in 2019, surpassing 17,300 issues reported during the year.

This continues a trend that started in 2017, when the number of vulnerabilities reported annually jumped to 14,645, more than doubling the prior year's tally.

Focusing on all the issues is impossible, so security teams and developers have to be selective about where they invest their security effort and training. The Common Weakness Enumeration (CWE) list of most dangerous software errors, for example, points at different classes of vulnerabilities based on their relative frequency of occurrence over the past two years. 

Yet, developers have trouble closing security holes in a timely manner. In a report based on tests of more than 85,000 applications, software security firm Veracode found that companies only manage to fix 56% of vulnerabilities between the first and last scans.

From its scans of open-source repositories and the commits — changes made by the developers — to those projects, the company can track the ebb and flow of vulnerabilities as they are deployed to code, caught, and then fixed. The list of the most important security vulnerabilities can act as a cheat sheet for developers, Paskalev says.

"Almost any large open-source framework has these issues, so it's good to know what to look out for," he says. 

The list created by DeepCode does not count just the most common vulnerabilities, but instead what the company considers the most important. The top category of defect is malformed date-time values and the mishandling of those variables, but those bugs typically do not have a major impact on programs, Paskalev says. The company categorizes vulnerabilities into 200 categories and focuses on the most impactful for the list.

"A bug could be anything from an unsanitized input to broken pipes," he says. "Most of them result in performance degradation or a resource or memory leak, things like that."

Automated tools are critical to finding vulnerabilities and catching coding errors before the software is deployed, especially as software is produced with increasing velocity, Paskalev says.

"A set of tools — automated tools — are needed to make sure they catch these issues," he says. "You want to check as often as possible. I almost see a continuous checking like a debugger."

Yet, corporate management also needs to create an environment where security is a focus for developers. While seven in ten developers are expected to write secure code in their jobs, half of developers only find coding errors after applications are deployed to a test environment or to a later stage, according to a July report by DevOps service provider GitLab

Related Content

Check out The Edge, Dark Reading's new section for features, threat data, and in-depth perspectives. Today's top story: "What Tools Will Find Misconfigurations in My AWS S3 Cloud Buckets?"

About the Author(s)

Robert Lemos, Contributing Writer

Veteran technology journalist of more than 20 years. Former research engineer. Written for more than two dozen publications, including CNET News.com, Dark Reading, MIT's Technology Review, Popular Science, and Wired News. Five awards for journalism, including Best Deadline Journalism (Online) in 2003 for coverage of the Blaster worm. Crunches numbers on various trends using Python and R. Recent reports include analyses of the shortage in cybersecurity workers and annual vulnerability trends.

Keep up with the latest cybersecurity threats, newly discovered vulnerabilities, data breach information, and emerging trends. Delivered daily or weekly right to your email inbox.

You May Also Like


More Insights