Understanding the known OWASP A9 using components with known vulnerabilities

c0c0n 2015

20 August 2015

Talk

Abstract

OWASP Top 10 introduced A9: Usage of known vulnerable component. Although one of the important issue however still highly ignored. This talk will focus on various aspects of This issue and what could be done at various level’s of Information technology flow. We are not going to stress more on the impact rather the focus of this presentation would be on what can be done to reduce the effect. How a developer or a tester or a administrator find out about A9 issues and work towards mitigating it. This talk will not just look at various existing tools that can be use but also how to integrate them in environment as well as how to craft your component usage policy to counter the effect of A9 issues.

As part of the presentation we will also be sharing automation techniques and various technological solutions on how to counter A9 issues.

AI Generated Summary

AI Generated Content Disclaimer

Note: This summary is AI-generated and may contain inaccuracies, errors, or omissions. If you spot any issues, please contact the site owner for corrections. Errors or omissions are unintended.

This presentation at c0c0n 2015 examines OWASP A9: Using Components with Known Vulnerabilities, arguing that the problem extends far beyond traditional web application libraries to encompass everything from programming language packages (Python, Ruby, .NET) to WordPress plugins, Cisco network appliances, and the Android OTA update chain. Anant Shrivastava breaks down the complex patch lifecycle, identifies the three key stakeholders (component developers, application developers, and end users/sysadmins), and provides actionable guidance for each role in managing third-party dependency risk.

Key Topics Covered

Actionable Takeaways

  1. Maintain a comprehensive inventory of all third-party components used in your projects — including transitive dependencies, server software, and firmware — as the first step toward managing A9 risk.
  2. Monitor vulnerability feeds and security advisories for every component in your dependency tree, and never ignore updates for shared libraries even if they appear to be minor.
  3. As a component developer, be transparent about support status and security issues — publish clear advisories when vulnerabilities are fixed and update version metadata to reflect end-of-life status when maintenance stops.
  4. Recognize that the patch lifecycle involves multiple stakeholders with competing priorities — build update processes that can handle dependency updates quickly when security advisories are released, despite backward compatibility and regression concerns.
  5. Use automated dependency scanning tools to identify known vulnerable components, but understand that manual tracking is still required for comprehensive coverage across all library types.
  6. When performing security assessments, always check the versions of all third-party components against known vulnerability databases as a standard part of the testing methodology.