Vulnerability Scanning in Go With Govulncheck
Blog post from Semaphore
Govulncheck is a newly introduced official vulnerability scanner for Go projects, designed to outperform third-party tools by providing warnings about known vulnerabilities in Go modules and the standard library. Released by the Go security team in September 2022, this open-source command-line tool leverages a curated Go vulnerability database to deliver smart, comprehensive, and official security assessments. Unlike other tools, govulncheck provides warnings only for vulnerabilities in code actually used by the project, reducing noise compared to tools like npm audit, which scan only package manifests. The database integrates multiple sources, including internal reports, the National Vulnerability Database, and GitHub Advisory Database, and is expected to become part of the Go distribution itself. Despite being experimental, govulncheck can be integrated into CI/CD pipelines to enhance security by preventing the release of vulnerable software. However, it has some limitations, such as issues with projects using C extensions and high memory usage in large projects. Its integration into the CI pipeline enables teams to detect and address security issues proactively, ensuring safer software releases.